以下のように、または時々使用sleep(10)
します。
wait = Selenium::WebDriver::Wait.new(:timeout => 10) # seconds
element = wait.until { driver.find_element :name => "search" }
element = driver.find_element :name => "search"
私によるとwait
、最大タイムアウトを設定しました。その間に要素が見つかった場合 ( <10 seconds
)、次の行に移動するか、再び見つからない場合も次の行に移動しますが、前に設定したように 10 秒後に移動します。
しかし、その期間内に目的の要素がロードされたかどうかsleep()
をプログラムが待たなければならないのを待つ必要があります。10 seconds
どちらもelement not found
基本的にエラーを防ぐために一般的に使用されます。
今私の質問は -
と の間にこれ以上の違いは
wait
ありsleep
ますか?エラーの可能性を減らすためのより良い設計はどれですか?
element not found
プログラムを失敗させることなく、このようなエラーを効率的に処理できるような状況を処理するためのより良い実装はありますか?
編集
最後の質問では、以下のような最小限のリスク コードが 1 つ見つかりました。
while true
# do nothing
next if !(driver.title.include? "Buyer Home")
driver.find_element(:link, "search").click
break
end