私は、XP および Win7 32/64 ビット マシンで長期間にわたって非常にうまく機能した、かなり大きな Selenium テスト セット (約 180) を持っています。
最近、Windows 7 の更新後 (偶然かもしれません)、テストが信頼できなくなりました。それらはランダムに失敗しますが、常に同じ問題が発生します。予期した画面が表示されますが、WaitForPageToLoad() メソッドはこれを確認するために戻りません。これは XP マシンでは発生せず、最近更新された Win7 マシンでのみ発生します。
プラットフォーム: Win7、32 および 64 ビット、Selenium 1.0 および 2.33.0 (動作に違いはありません)、VS2008、ブラウザー IE9。
シナリオ: テストは、最初に 1 つのボタンを含む「再起動」画面を表示し、ログイン画面を起動するボタンをクリックします (すべてのテストは、これを行うために同じコードを使用します)。ブラウザにログイン画面が表示されるがテストライン
selenium.WaitForScreenToDisplay(30000);
戻らないため、テストはエラー メッセージでタイムアウトします。このように、テストは完全に無作為に失敗します - それらの約半分は失敗しますが、一貫して同じものではありません。
人間がブラウザと対話するとき、アプリケーション自体は完全に動作します。セレンのログは手がかりをあまり与えません - 最後の行は常に「ページを待っています」、例えば「....コマンド要求:waitForPageToLoad [30000、... ]」です。
VS デバッガーでテストをステップ実行しても、問題が再現されることはありません。
問題が発生する実際のコードは次のとおりです。
selenium.Open(GetRestartPageURL());
selenium.WaitForPageToLoad("30000");
selenium.Click("Button");
selenium.WaitForPageToLoad("30000"); <-- this is where it times out even though the expected screen that is launched by "Button" is now displayed in the browser
既知の問題、またはこれに対する回避策はありますか? IE9 と Selenium 1.0 の問題ですか? それは重要な時期に突然現れます。