处理警报时,带有铬的硒返回异常

时间:2016-11-08 07:57:57

标签: java selenium-webdriver selenium-chromedriver

我一直在尝试使用chrome 54.0.2840.87(目前是最新的chrome版本)和chromedriver 2.25(目前最新的chromedriver)处理Selenium中的警报但没有成功。 我已经确定这是一个警报,而不是一个弹出窗口(没有检查元素选项)。

此外,我通过在处理警报的代码之前放置一个断点来确保没有时间问题,但它提供了异常:org.openqa.selenium.NoAlertPresentException:no alert open

这是我一直试图使用的代码,没有成功: driver.switchTo().alert().accept();

还尝试使用代码等待警报出现,但没有成功: wait.until(ExpectedConditions.alertIsPresent());

还尝试使用javascript executeScript接受警报但未成功: ((JavascriptExecutor)m_driver).executeScript("window.confirm = function(msg){return true;};");

链接到我收到的提醒: https://i.stack.imgur.com/n8FcE.png

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

这不是警告框。所以你将无法以传统方式处理它。作为解决方法,您可以从chrome 本地状态文件中禁用此协议处理程序框。

对于Windows: 可以在C:\Documents and Settings\<USERNAME>\Local Settings\Application Data\Google\Chrome\User Data下找到本地状态文件。

编辑“本地状态”文件,并在"caxhost": false,下添加一行以包含您的协议。

对于linux: 按照此处的步骤操作:https://askubuntu.com/questions/465586/how-to-reset-external-protocol-handler-in-chrome