5

セレンでonload javascriptアラートを処理するには?

Selenium IDE でキャプチャされておらず、getAlert() 関数によって処理されていません。

4

2 に答える 2

5

私も同じ問題に直面しました。セレンで数時間過ごした後、java スクリプトのアラートとポップアップを処理するためのソリューションを見つけました。

セレンの keyPressNative を使用して、セレン RC からの Java スクリプト アラートを処理できます。

メソッドの使用方法key*Native()は次のとおりです。

    selenium.keyPressNative("27"); // Escape
    selenium.keyPressNative("10"); // Enter    
    selenium.keyDownNative("16"); // Press and do not relase the shift key, so that
    selenium.keyPressNative("79"); // this character will be capitals
    selenium.keyUpNative("16"); // Release the shift key, as we don't need it for the 
    selenium.keyPressNative("67");

それはお勧めできませんが、セレンの失敗のいくつかを処理するのに役立ちました。

于 2012-05-22T05:37:24.837 に答える
0

それはできません。Seleniumのドキュメントに記載されているように

Seleniumは、これらのダイアログを(window.alert、window.confirm、window.promptを置き換えて)隠そうとし、ページの実行を停止しないようにします。アラートポップアップが表示されている場合は、ページの読み込みプロセス中に発生した可能性があります。これは通常、ページを保護するには時期尚早です。

これは、Selenium RC(したがって、Selenium IDEも)の既知の制限であり、Selenium 2(WebDriver)が開発された理由の1つです。onloadJSアラートをキャッチしたい場合は、 WebDriver アラート処理を使用する必要があります。

回避策として、Robot任意のテキストを入力し、Enterキーを押して、ダイアログを盲目的に確認するために使用できます。これは最もクリーンな方法ではありませんが、機能する可能性があります。alertただし、メッセージを受信することはできません。

于 2012-05-21T11:01:22.807 に答える