1

我使用Java上的Selenium來自動測試網頁,該頁面的腳本在加載頁面後立即調用window.close()如何使Selenium忽略/跳過或覆蓋w​​indow.close()

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

在IE9中,它彈出一個確認對話框"The webpage you are viewing is trying to close the window disable"與是/否選項。按是將關閉網頁。

我不想要關閉(保持會話),也不要彈出。你可以請我建議一個解決方案忽略或覆蓋window.close()腳本。

在此先感謝。

回答

1

您可以簡單地用JavaScript覆蓋window.close函數。

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上,它顯示alert hello,但在IE9上,它關閉了網頁標籤 –

+0

該死的IE。呼叫是否在功能中關閉?如果是這樣,你可以嘗試代理窗口對象並忽略'close()'調用或regexp替換掉調用。 – 0xcaff