我一直在努力尝试关闭浏览器打开的警报,只有我无法控制的特定模式,因此我需要一段代码来检测并关闭警报,以便能够继续浏览网页而不是停止执行。
我尝试了几种处理警报的方法,但目前没有一种方法成功:
以下是我一直在使用的一些例子:
1:
driver.wait(driver.switchTo().activeElement().then(
function() {
console.log("alert detected");
driver.switchTo().alert().accept();
},
function() {
console.log("no alert detected");
}
), 1000);
2:
driver.wait(driver.switchTo().alert().accept()
.then(null, function(err)
{
console.log("ERROR ALERT");
console.log(err);
console.log("ERROR NAME");
console.log(err.name);
}), 1000);
3:注入这段代码,试图覆盖浏览器的警报,使其不显示:
driver.executeScript('alert = function(){};');
基本上这三个是我一直在努力的主要解决方法,但目前似乎没有一个正常工作。
答案 0 :(得分:1)
正如我所理解的那样,你想关闭页面上的任何警报,所以你可以尝试在你的代码中使用这个类
UnexpectedAlertBehaviour.class
另见这篇文章org.openqa.selenium.UnhandledAlertException: unexpected alert open
答案 1 :(得分:0)
这就是最终在所有页面之间的导航中关闭所有新出现的警报/确认的内容:
driver.executeScript('alert = function(){};');
driver.executeScript('confirm = function(){};');