2016-02-25 53 views
0

代碼運行在所有的瀏覽罰款,但警報不能處理當我運行在Safari瀏覽器的情況下。警報沒有顯示在Safari瀏覽器後,我得到了預期。如何處理警惕硒webdriver的Safari瀏覽器?

「org.openqa.selenium.UnhandledAlertException:。一個模式對話框被打開 的SafariDriver不支持與模態對話框 交互爲了避免掛您的測試,該警報已被解僱 更多信息,看到 http://code.google.com/p/selenium/issues/detail?id=3862:請 提供一個有效的電子郵件地址「。

我把時間等待,但也沒有用。

回答

0

您可以使用下面的方法來處理野生動物園警報之前執行任何動作: -

JavascriptExecutor js = (JavascriptExecutor) webDriver; 
js.executeScript("window.alert = function(){ return true;}"); 

該Java腳本覆蓋在那裏您自動您測試情況對網頁上的警告框的功能。

你需要那些你正在UnhandledAlertException

對於如行動之前執行它: - 假設你有一個WebElement el,當你點擊el,你然後讓UnhandledAlertException你需要爲執行: -

JavascriptExecutor js = (JavascriptExecutor) webDriver; 
js.executeScript("window.alert = function(){ return true;}"); 
el.click(); 
-1

我在Selenium WebDriver中處理Safari瀏覽器的JavaScript警報,我在這裏共享。

public static boolean isAlertPresent(WebDriver driver) { 
     try { 
      //driver.switchTo().alert(); 
      WebDriverWait wait = new WebDriverWait(driver, 2); 
      wait.until(ExpectedConditions.alertIsPresent()); 
      return true; 
     } // try 
     catch (Exception e) { 
      return false; 
     } // catch 
    } 

if(isAlertPresent(driver)) { 
    Alert alert = driver.switchTo().alert(); 
    Thread.sleep(3000); 
    System.out.println("Alert Text : "+alert.getText()); 
    alert.accept(); 
    driver.switchTo().defaultContent(); 
} 

注意:確保在點擊生成模式對話框(彈出)的選項卡/按鈕後立即添加這些代碼行。

相關問題