私の会社は、JBehave と Selenium を使用して「ビジュアル」GUI スタイルの BDD 関数を開発することを望んでいます。これは、javascript アラート/確認ポップアップ ウィンドウを使用して、実行中のテストが到達する正確なステップをユーザーに促します。たとえば、次のようになります。
- 「www.google.com」に移動した場合
- ログインすると
そこで、自動化テスト中にポップアップする Javascript 警告ウィンドウを追加したいと思います。ポップアップ ウィンドウには「OK」ボタンがあり、ユーザーが [OK] ボタンをクリックすると、テストは次のステップに進みます。
私の問題は次のとおりです。ポップアップ警告ウィンドウを呼び出す Selenium の executeScript API を使用して JavaScript 関数を作成しました。
public void stepText(String step) {
executeScript("alert('"+step+"');");
}
OKボタンをクリックすると、ポップアップウィンドウが消え、テストが次のステップに進むと思います...しかし、私がショックを受けたのは、それをクリックすると、テストが例外をスローしてクラッシュしたことです...
例外は次のとおりです。selenium.WebDriverException
しかし、次のコードを追加して、テストでアラートウィンドウを自動的に検出し、次の通常のセレンアラートハンドル関数を使用してそれを受け入れるようにするとわかりました。
Alert alert=switchTo().alert();
alert.accept();
これにより、テストがうまく実行されるため、アラートを手動でクリックすることはできないようです (手動でクリックした後、セレンはまだブラウザーに戻ることができません...ブラウザーへの接続が失われましたか?) が、自動化アラートはコードを処理します作品...
もちろん、オートメーション ハンドル アラートではなく、ユーザーがアラート ウィンドウを手動でクリックしてテストの実行を制御できるようにしたいと考えています。
私はしばらくここで立ち往生し、グーグルで検索しましたが、オンラインで同様の例を見つけることができませんでした.JBehaveとSeleniumの私よりもはるかに優れているので、あなたが私に光を当ててくれることを願っています.
あなたが私を助けることができれば、私はとても感謝しています.