Watir-Webdriverでリンクなどをクリックした後に、更新されるのを sleep して待っていたのですが、ちゃんと更新を確認出来るメソッドがありました(当然ですよね
ブロック内が真/偽になるまで待機する、というメソッドです。
(なお PhantomJS で ReactJS のサイトだと 1.9.8 では働かず、2.0.0 にしないとダメでした…)
Watir::Wait.until(timeout = nil, message = nil) ⇒ Object
Waits until the block evaluates to true or times out.
Examples:Watir::Wait.until { browser.text_field(name: "new_user_first_name").visible? }Watir::Wait.while(timeout = nil, message = nil) ⇒ Object
Wait while the block evaluates to true or times out.
Examples:Watir::Wait.while { browser.text_field(name: "abrakadbra").present? }Module: Watir::Wait — Documentation for watir-webdriver (0.9.1)
いずれも返値はブロック内の値です。メソッド内で
result = yield(self) return result if result
のように返してます。