我看到了这个帖子:
但显然,一旦代码运行,就不可能禁用无头,是否有替代方案?
我的代码检测页面上是否有验证码,显示窗口,一旦验证码完成,它就会再次隐藏窗口。
不,不可能无头初始化google-chrome 然后使其可见以解决验证码。
当您配置ChromeDriver用于在启动新Chrome 浏览会话ChromeOptions()
的过程中启动headless时,配置会被烘焙到chromedriver可执行文件中,并将持续到WebDriver的生命周期并且保持不可编辑。因此,您修改当前正在执行的WebDriver实例的ChromeOptions 。
即使您能够从已经启动的ChromeDriver和Chrome 浏览会话中提取ChromeDriver和ChromeSession属性,例如Session ID、Cookies和其他会话属性,您仍然无法更改ChromeDriver的属性集。
driver.quit()
一种更简洁的方法是调用tearDown(){}
方法来优雅地关闭和销毁当前的ChromeDriver和Chrome 浏览器实例,然后使用新的配置集跨越一组新的ChromeDriver和Chrome 浏览器实例。
您可以在以下位置找到一些相关的讨论: