4

我尝试通过这种方式单击a元素:

WebElement title = driver.findElement(By.xpath("//a[text()=\"Delete this document library\"]"));
title.click();

当我手动单击它时,它会打开一个窗口:

http://.. 的页面说
您确定要删除所选项目吗?

带有OKCancel按钮

但是当我用 WebDriver (in Firefox 20.0) 运行它时,我得到下一个错误:

[例外]:存在模态对话框

我什至看不到窗户。

可能是什么原因?

4

4 回答 4

4

运行测试时看不到警报是因为它的默认行为是在WebDriver抛出模态对话框存在异常接受警报。它发生得如此之快,以至于您看不到警报。

  WebElement title = driver.findElement(By.xpath("//a[text()=\"Delete this document library\"]"));
title.click();

//Now the alert appears. 
Alert alert = driver.switchTo().alert();
alert.accept();
于 2013-08-20T16:39:18.070 回答
3

如果不是每次都出现警报窗口,您可以这样做:

try { 
    Alert alert = driver.switchTo().alert();
    alert.accept();
    //if alert present, accept and move on.
}
catch (NoAlertPresentException e) {
    //do what you normally would if you didn't have the alert.
}
于 2015-01-23T17:34:59.923 回答
1

听起来你遇到了一个Alert.

这有帮助吗?

https://code.google.com/p/selenium/wiki/FrequentlyAskedQuestions#Q:_Does_WebDriver_support_Javascript_alerts_and_prompts

于 2013-08-20T13:55:41.110 回答
0

alert.dismiss() 或按 Esc 按钮可以关闭警报。对于我的情况,解决了这个问题。

于 2017-06-16T07:49:53.213 回答