【问题标题】:Unable to handle alerts in chromedriver using selenium webdriver 3.1无法使用 selenium webdriver 3.1 处理 chromedriver 中的警报
【发布时间】:2018-01-19 12:52:15
【问题描述】:

无法处理 ChromeDriver 2.33 和 Selenium Webdriver 3.1 中的警报。尝试过 driver.switchTo().alert(),即使有 alert,该函数也会返回 false。

编辑:请在下面找到代码试用版...

try { driver.switchTo().alert(); return true; }
catch(NoAlertPresentException ex) { return false; } catch(Exception e) { return false; } 

即使网页中有用于登录凭据的警报弹出窗口,此代码也会在 chromedriver 中返回 false。

【问题讨论】:

  • 请您的代码试验和错误堆栈跟踪。
  • 使用您的代码试验 (not as a comment) 更新问题以进行有效分析。

标签: google-chrome selenium alert


【解决方案1】:

要处理AlertWebDriver,您可以使用以下任何代码块:

  • 等待并接受:

    new WebDriverWait(driver, 5).until(ExpectedConditions.alertIsPresent()).accept();
    
  • 等待,切换​​并接受:

    new WebDriverWait(driver, 5).until(ExpectedConditions.alertIsPresent());
    driver.switchTo().alert().accept();
    

【讨论】:

  • 嗨,Deb,感谢您的回复,driver.switchTo().alert().accept() 为 chromedriver 抛出 NoAlerteException。
  • 如果driver.switchTo().alert().accept() 抛出NoAlerteException 可能不是警报。您可以接受答案并根据您的新要求提出新问题。
最近更新 更多