0

使用中の宝石:

  • watir-webdriver-0.6.2
  • selenium-webdriver-2.27.2

すべてのシステムでFirefox16.0.2を使用する。

状況:実行後に閉じるモーダルウィンドウがあります

link(:text, 'Continue').click

システム1:ハードウェアの概要:

  • モデル名:MacBook Air
  • モデル識別子:MacBookAir4,2
  • プロセッサー名:Intel Core i5
  • プロセッサ速度:1.7 GHz
  • プロセッサの数:1
  • コアの総数:2
  • メモリ:4 GB
  • OS:OS X 10.8.2

システム1の結果:常に成功

システム2:

  • モデル名:MacBook Pro
  • モデル識別子:MacBookPro10,1
  • プロセッサー名:Intel Core i7
  • プロセッサー速度:2.3 GHz
  • プロセッサの数:1
  • コアの総数:4
  • メモリ:16 GB
  • OS:OS X 10.8.2

システム2の結果:クリックを実行し、指定された時間が経過するとTimeout::Errorがスローされます。

ミドルシステム(申し訳ありませんが、完全な仕様を利用できません)は、MountainLionを搭載した新しいMacMiniです。このシステムは、これを追跡しようとしている間、タイムアウトを生成した特定の呼び出しでputsステートメントを追加するまで失敗していました。もちろん、これは常に成功状態につながり、これは私たちが愛情を込めてハイゼンエラーと呼んでいることを示しています。

putsステートメントは、lib / selenium / webdriver / remote / bridge.rbの行613の周りのselenium-webdriverコードに追加され、次のようになりました。

puts "-> #{verb.to_s.upcase} #{path}" if verb.to_s.upcase == 'POST'

これにより、ブラウザに対して行われたすべての投稿リクエストが出力されます。タイムアウトする特定のPOSTリクエストは、クリックリクエストの1つです。フルパスはありませんが、必要に応じて月曜日に追加します。

誰かがwatir/seleniumでシステム依存のタイムアウトを回避する方法を知っていますか?

4

1 に答える 1

1

ページのロードを待つためにwait_untilメソッドを使用するかもしれません

wait_until(:timeout => 20) { page.current_url =~ /some_url/ }

http://rubydoc.info/github/moredip/Frank/master/Frank/Cucumber/WaitHelper.wait_until

その後

find(".some_class").find('a', :text => /Continue/).click
于 2013-01-20T00:00:38.450 に答える