【问题标题】:Unable to detect Alert using ChromeDriver?无法使用 ChromeDriver 检测警报?
【发布时间】:2017-01-19 20:32:36
【问题描述】:

我目前正在使用Selenium WebDriver 进行一些自动化测试。我面临的问题是我的脚本无法检测到警报。

场景:

我打开应用程序,传递我的凭据并按确认。确认后,应用程序将打开并显示警报。警报截图如下:

我正在使用 Java、Selenium WebDriver、ChromeDriver 和 testng。

我正在使用以下代码:

uk.setLogin("", "");

uk.getLogin();

WebDriverWait  wait = new WebDriverWait(Driver, 10);

wait.until(ExpectedConditions.alertIsPresent());

Alert alert = Driver.switchTo().alert();

alert.accept();

【问题讨论】:

标签: java selenium-webdriver selenium-chromedriver


【解决方案1】:

你问的不是 Javascript Alert,它叫 ConfirmBox。

确认框或提示弹出窗口的处理方式需要与警报框不同。

请尝试以下方法

Alert alert=driver.switchTo().alert();
System.out.println(alert.getText());
alert.dismiss();

解释了here

【讨论】:

  • 处理警报和确认框的最大区别是什么?您可以将alert.accept(); 与警报以及确认框一起使用
  • 我用你的代码试过了,还是一样。
  • @Shah123 你的意思是什么警报没有被检测到。你能检查一下 alert.getText() 的返回值吗?让我们看看它可以提供什么帮助。
  • 失败异常:org.openqa.selenium.NoAlertPresentException:没有警报打开
  • 返回值为空。我担心的是我不知道这个弹出窗口是什么。我过去曾处理过警报,并且效果很好。但是,在这种情况下,它什么也没做。