2008-10-02 77 views
11

我正在嘗試爲使用onbeforeunload事件在離開前提示用戶的網頁編寫Selenium測試。 Selenium似乎無法識別出現的確認對話框,或者提供點擊「確定」或「取消」的方法。有沒有辦法做到這一點?如果這是相關的,我使用Java Selenium驅動程序。從Selenium測試onbeforeunload事件

回答

3

你可以編寫一個測試window.onbeforeunload的用戶擴展(或只是storeEval中的一些JavaScript),然後用null替換它然後再從該頁面繼續。醜,但應該讓你離開頁面。

+0

我沒有最終做到這一點(我的要求發生了變化,因此無論如何我都最好使用常規警報),但是看起來這樣做會很有用,並且接近於Selenium如何處理其他警報的測試。 – 2008-11-27 03:36:54

0

當我面對使用Selenium的瀏覽器的有限控制時,我轉向MozLab插件,這個插件解決了我的問題,只適用於一個瀏覽器平臺。

0

我剛剛爲我的應用程序執行此操作,如果用戶在文檔處於未保存狀態時離開頁面,onbeforeunload處理程序會提示提示。 Python代碼:

driver.switch_to.alert.accept() 

相當於Java中的是:

driver.switchTo().alert().accept(); 

如果警報不存在,上面的代碼將失敗,NoAlertPresentException所以沒有需要單獨的測試,以檢查在接受提示之前存在。

我正在運行Selenium 2.43.0,但我認爲這已經可以使用一段時間了。

如果我不想提示出現,因爲這不是我正在測試的內容,我在瀏覽器中運行自定義JavaScript,在離開頁面之前將window.onbeforeunload設置爲null。我把這個放在測試拆解代碼中。