18

watir-webdriverを使用して、リンクをクリックした後にページが読み込まれるのを待つにはどうすればよいですか?

現時点で私は使用しています:

sleep n

しかし、ページの応答は大きく異なるため、これは理想的ではありません。

ページの準備ができているかどうか、またはページに特定の要素があるかどうかをテストする方法はありますか? 通常の Watir gem にはWatir::Waiter.wait_until、またはそれに類似したものがあることは理解していますが、webdriver バージョンではこれが見られません。

4

7 に答える 7

11

それらが最善の方法であるかどうかはわかりませんが、更新divがクリアされるのを待つためにこれを処理する方法は次のとおりです。

while browser.div(:id=>"updating_div").visible? do sleep 1 end

これは、何かが表示されるのを待つ方法です。

until browser.div(:id=>"some_div").exists? do sleep 1 end
于 2010-08-18T07:40:17.247 に答える
7

本日のリリースでは、要素を待機するためのヘルパーを導入するオプションの require が追加されています。これらは (現時点では) Watir 1.6 では利用できないため、両方のライブラリを並べて使用する場合は注意してください。

詳細については、Watir-webdriver Wiki の「AJAX と要素の待機」を確認してください。

于 2010-08-31T19:44:18.950 に答える
4

最良の要約は「待機中」にあります。

これは一言で言えばそれです:

require 'watir-webdriver'
b = Watir::Browser.start 'bit.ly/watir-webdriver-demo'
b.select_list(:id => 'entry_1').wait_until_present
b.text_field(:id => 'entry_0').when_present.set 'your name'
b.button(:value => 'Submit').click
b.button(:value => 'Submit').wait_while_present
Watir::Wait.until { b.text.include? 'Thank you' }
于 2014-07-24T00:19:44.067 に答える
1

browser.wait_untilに使える。

()次のように、パラメーター ( ) で何を待機するかを定義できるため、より便利です。

browser.wait_until(browser.text.include("some text"))
于 2012-11-05T11:12:35.617 に答える
0

wait_untilまたはwaituntilExistsメソッドを使用できます。

于 2010-08-27T12:57:57.550 に答える