実際には、使用sleep
は推奨されません。ブラウザーと JavaScript コードがアクションを実行するのにかかる時間によっては、競合状態に陥り、時々しか機能しないテストになる可能性があります。
スリープの使用を検討している場合は、代わりに wait_until を使用してください。実際に使用する必要がある場合に、タイミングの問題に対するテスト コードの回復力が高まります。
@JustinKo が推奨するように、おそらく Watir の待機メソッドを使用して、要素がページに表示されるまで待機する必要があります。
あなたの場合、次の例のようなものを試してみてください:
# Assuming your browser object is named: $b
#Ex: $b = Watir::Browser.new :chrome
$b.button(:id => 'my_button').wait_until_present
Watir::Waiter::wait_until { $b.button(:id => 'my_button').visible? }
ページで要素が見つからない場合は、FireBug のソース コードまたは Chrome の開発者ツール コンソール ( Shift+Ctrl+I
) を参照してください。id
そのボタンの識別属性、または、class
、name
またはその他の識別属性を持つコンテナ要素を見つけてみてください。
ただし、現時点では、JavaScript によって要素が生成されたか、DOM に追加されたかを検出する方法があるかどうかはわかりません。