2016-08-11 8 views
2

要素がページに存在する場合は、キーワードを実行します。Robot Framework:セレンライブラリのキーワードがtrueまたはfalseを返すまで待ち​​ます

私はSeleniumライブラリのWait Until Page Contains Elementキーワードを使用しようとしましたが、要素が存在するかどうかに関わらず、常に "None"を返します。私は、カスタムエラーを設定しようとしたが、それはどちらか動作しません:私は、条件「$ {条件を}」作るとき

${condition} =  Wait Until Page Contains Element ${locator} timeout=5 error=false 
Run Keyword if '${condition}'=='false'  click element ${some_refreshButton_locator} 

キーワードのクリック要素$ {ロケータは}にのみ実行されます==「なし」

間違ったことをしていますか?Selenium Library Wait until ...キーワードがtrueまたはfalseを返すようにするにはどうしたらいいですか?

ありがとうございます!

答えて

4

ページが含まれるまで待機する要素は返されませんが、要素が見つからない場合はエラーが発生します。回避策の1つは、キーワードを実行し、エラーを無視することです。

*** Settings *** 
Library Selenium2Library 

*** Test Cases *** 
Test wait 
    Open Browser  http://www.google.com/ gc 
    ${result} ${condition}= Run Keyword And Ignore Error Wait Until Page Contains Stackoverflow timeout=2 error=false 
    Run Keyword if '${condition}'=='false'  Log clicking 
    Close All Browsers 
+0

こんにちはペッカ、これはページ上に存在しない要素を持つ素晴らしい作品しかし、私の要素はツリービューの既存ではあるが可視ではないチェックボックスです。上記のコードスニペットを使用すると、「ElementNotVisibleException:Message:Elementは現在表示されていないため、やりとりされない可能性があります」スローされたときにそれをキャッチしてキーワードを実行するにはどうすればよいですか? – emi

+0

こんにちはPekka、私はロボットと初心者であり、まだ学習しています。 "Wait Until Element is Visible"というキーワードで非常に同じコンセプトに従いました。今は完全にうまく動作します。どうもありがとう! – emi

3

「ファイル名を指定して実行キーワードとリターン・ステータス」は、以下のように真/偽のステータスを取得するためにも使用することができます:

${condition} =  Run keyword And Return Status Wait Until Page Contains Element ${locator} timeout=5 error=false 
関連する問題