0

PHP(5.3.15)でSelenium(サーバー2.31.0)テストを作成しています。このテストでは、ポップアップウィンドウが閉じるかどうかをテストする必要があります。ポップアップウィンドウは、jQueryUIダイアログウィジェットを使用して実装されます。HelloWorldポップアップ自体には、ポップアップの外部には表示されない単純なテキスト( )が含まれています。

ポップアップの外観の検出は、を使用して問題ありませんisTextPresent("HelloWorld");。次に、clickAt("//a[contains(@class, 'ui-dialog-titlebar-close')]");(動作を確認できます)でウィンドウを閉じてから、で閉じているポップアップをテストし!isTextPresent("HelloWorld");ます。ポップアップが開閉する時間を与えられていることを確認するために、私は適切なことをしていることを付け加えなければなりません。一時停止とチェックのサイクルが繰り返され、明示的なスリープで問題を強制した場合の影響も確認できます。

これはFirefox(19.0.2)では正常に機能しますが、Chrome(25.0.1364.172)では失敗します。つまり、ウィンドウは閉じられていますが、Seleniumではこれを検出していません。これは、SeleniumがisTextPresentチェックを実行する方法や、ポップアップが閉じられているのではなく非表示になっているためだと思います。

Chromeで動作する終了ポップアップを検出する方法を探しています。クロスブラウザは素晴らしいでしょうが、今のところ、私はさまざまなブラウザでさまざまなテストを実行することができます。

4

1 に答える 1

0

isVisibleポップアップ ( isVisible("//a[contains(@class, \'ui-dialog-titlebar-close\')]");) を使用して、ポップアップを閉じた後に対応する否定的なテストを使用して、同等のテスト (テストが設計されているという点で、チェックされた特定の以前の動作とは対照的に) を生成できます。これは、Chrome (25.0.1364.172) と Firefox (19.0.2) の両方で機能します。

これは、ポップアップのコンテンツに対して同じチェックを行っているわけではありませんが、目的の効果はポップアップの存在をテストすることなので、これで十分です。

于 2013-03-20T09:47:43.790 に答える