2015-08-13 40 views
1

環境: 我必須使用Selenium測試Web應用程序。在訪問首頁之前,會引發Windows安全警報。導致警報/驗證彈出在os級別,它不能由selenium alert-api處理。接受Windows安全警報Selenium

解決方法: 要訪問該頁面,我寫了一個腳本,填充用戶名和密碼,然後單擊輸入(腳本代碼來自:https://automationtestingsimplified.wordpress.com/2011/08/11/how-to-handle-window-based-pop-up-using-selenium-and-autoit/)。

需要解決的問題: Selenium會拋出「UnhandledAlertException:模態對話框存在」,儘管模態對話框已經被接受。

我想:

  • 通過警報的API訪問模態對話框。這裏的問題是,我無法在用戶名中填寫 。即使我使用機器人。 「driver.switchTo()。alert()。accept();」也不起作用。
  • 讓驅動程序等待,直到警報不存在 「wait.until(ExpectedConditions.not(ExpectedConditions.alertIsPresent()));」
  • 要接受對話,事件是否已被接受。

可能的解決方案: 忽略對話框或將其設置爲不存在於驅動程序中。但我找不到解決方案。

+0

是它可以提供一個鏈接,該網頁 – Madhan

+0

既然是公司使用內部頁面而已,我不能提供任何鏈接。但它運行在JBoss EAP 6.2上,並使用老式的JSF 1.2以及seam和其他一些技術。 – Ore

回答

0

Im遇到同樣的問題。直到我找到一個更好的解決辦法我使用機器人按鍵發送到警報接受它

private void acceptAlert() { 
    try { 
     Robot robot = new Robot(); 
     robot.keyPress(KeyEvent.VK_TAB); 
     robot.keyPress(KeyEvent.VK_ENTER); 
    } catch (AWTException e) { 
     e.printStackTrace(); 
    } 
}