1

JavaでSeleniumを使用してWebページの自動テストを行っていますが、このページのスクリプトではページが読み込まれた直後にwindow.close()が呼び出されます。Seleniumを無視する/スキップする、window.closeを上書きする方法

  window.opener='whatever'; 
      window.open('','_parent',''); 
      window.close(); 

IE9では、確認ダイアログ["The webpage you are viewing is trying to close the window disable"]に[はい/いいえ]オプションがポップアップします。はいを押すと、Webページが閉じます。

私はこの閉鎖(セッションを維持する)とポップアップを望んでいません。 window.close()スクリプトを無視または上書きする方法を提案してください。

ありがとうございます。

答えて

1

window.closeの機能をJavaScriptで上書きすることができます。

String disableCloseScript = "window.close = function() { }"; 
((JavascriptExecutor)driver).executeScript(disableCloseScript); 

チェックアウトの詳細情報については、これらの答え:あなたの答えのための

+0

感謝。私はその方法で 'window.close()'メソッドをオーバーライドしようとしました。これはChrome上で動作し、IE9では動作しません。 'window.close = function(){ \t \t \t \t \t alert(" hello "); \t \t \t \t}; \t \t \t \t window.opener = 'whatever'; window.open( ''、 '_ parent'、 ''); window.close(); ' Chromeでは「hello」というアラートが表示されますが、IE9ではウェブページのタブが閉じます –

+0

Damn IE。コールは関数内で閉じますか?そうであれば、ウィンドウオブジェクトのプロキシ処理を試み、 'close()'呼び出しを無視するか、regexp呼び出しを置き換えることができます。 – 0xcaff

関連する問題