selenium ui自动化遇到切换窗口,点击高级并继续访问的处理方式

在python自动化中(ui),遇到了一个需要浏览器切换窗口,点击“高级”-“接受风险并继续”的操作,前期在本地编写代码调试时,没有任何问题。

切换环境,放到Linux服务中,使用无头模式去运行代码时,发现切换窗口时,总是找不到页面元素,查看截图发现页面为空白,检查两天无果。

场景图片,如下图所示,当点击某个按钮,触发新的浏览器窗口时,所展示的页面:

# 修改之前的启动浏览器部分代码

opt = webdriver.ChromeOptions()
opt.add_argument('--disable-gpu') # 谷歌文档提到需要加上这个属性来规避bug
opt.add_argument('--hide-scrollbars') # 隐藏滚动条,应对一些特殊页面
opt.add_argument('--headless') # 浏览器不提供可视化界面。Linux下如果系统不支持可视化不加这条会启动失败
cls.driver = webdriver.Chrome(chrome_options=opt)
cls.driver.maximize_window()     

 经过各种查询,发现是因为少了一个启动的参数,--ignore-certificate-errors  添加为启动选项来忽略不受信任的证书错误

添加上此参数后,问题完美解决,切换的新的窗口后,可以找到元素并进行后续操作。

# 修改之前的启动浏览器部分代码

opt = webdriver.ChromeOptions()
opt.add_argument('--disable-gpu') # 谷歌文档提到需要加上这个属性来规避bug
opt.add_argument('--hide-scrollbars') # 隐藏滚动条,应对一些特殊页面

opt.add_argument('--headless') # 浏览器不提供可视化界面。Linux下如果系统不支持可视化不加这条会启动失败
opt.add_argument('--ignore-certificate-errors') # 添加为启动选项来忽略不受信任的证书错误
cls.driver = webdriver.Chrome(chrome_options=opt)
cls.driver.maximize_window() 

 

posted @ 2023-07-03 11:32  幸运球与倒霉蛋  阅读(502)  评论(0编辑  收藏  举报