2016-03-31 8 views
3

私は最初の簡単なテストケースを作りますが、私には1つの問題があります。 RF中に書き込みループが発生する可能性はありますか? 私は、アドレスと変更された変数 "i"のアドレスから値を取得したいと考えています。テーブルの行なので、そのアドレスが存在するまで実行したい。ロボットフレームワークでループを書く方法

${f1}  A 
${f_temp} B 

While ${f1} != ${f_temp} 
or 
While elemtent xpath=//${i} is visible 


\  ${F_temp}    Get Text   xpath=//${i} 
\  ${i}     ${i}+1 
\  Run Keyword And Continue On Failure   Should be equal      ${f_temp}    ${f1} 

答えて

11

ロボットフレームワークにはwhileループがありません。 FORループと「exit for loop if」キーワードを使用して終了する必要があります。それは有限回実行されますが、範囲内で十分に大きな数を選択すると、実用上十分です。

*** Test Cases *** 
For Test 
    :FOR ${i} IN RANGE 999999 
    \ Exit For Loop If ${i} == 9 
    \ Log ${i} 
    Log Exited 
+0

答えのためのthx。私は2番目の質問があります。 $ {i} 2や$ {link} xpath = // div/div [$ {i}]/table ...のような書き込みコードが可能ですか? xpathの途中にある変数を別の変数に代入することはできません。 RFは私にxpath = // div/div [$ {i}]/tableという名前のキーワードがないのと同じエラーを返します... – grandecalvo

+0

"Set Variable"キーワードを使う必要があると思います。これを試してください: "$ {link} =変数の設定xpath = // div/div [$ {i}]/table"これでうまくいかない場合は、新しい質問をしてください。 – Pekka

+0

Big thx。テストケースの動作。 – grandecalvo

1

あなたは、あなたがwhileループ同様の構成を行うことができますWait Until Keyword Succeedsキーワード、のためにはるかに優れて読みやすい条件エキサイティングでサイクルよりも見ている可能性があります。

「ループ」を終了する必要があるときに失敗するカスタムキーワードを使用します。

関連する問題