最近一个小伙伴遇到个问题,使用Selenium在做自动化测试的时候出现弹窗,但是使用Selenium+Java处理常见的Alert/Confirm弹出框无法找到;于是我就给他介绍了webDriver处理弹窗的所有方法;最后还是不行,于是我就开始怀疑了,决定亲自试一试这到底是个什么妖魔鬼怪。
其中在试的时候我尝试了Selenium切换到所有的Alert,Iframe,window,有点诡异屡试不爽,都找不到,然后仔细一看弹窗,其实并不属于网页Dom里面的元素,突然发现与一般的弹窗不一样;
在弹窗右边的出现一个小图标,属于Chrome浏览器自带的
如下图:
找错方向了,不是Dom里面的代码弹窗,而是浏览器permissions(权限许可)询问弹窗
在浏览器中输入这个地址chrome://settings/content即可看到所有的类型:
这下就简单了,这个通知应该是可以在启动浏览器之前进行初始化参数设置的:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.CheromeDriver;
import org.openqa.selenium.chrome.CheromeOptions
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
//2就是代表禁止加载的意思
prefs.put("profile.default_content_setting_values.notifications", 2);
options.setExperimentalOption("prefs", prefs);
//或者
options.addArguments("disable-infobars");
所有Chromium命令行开关列表如下:
https://peter.sh/experiments/chromium-command-line-switches/#disable-permissions-api 往期关于切换窗口的推文: Selenium切换窗口driver.switchTo().window(handle)
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有