我正在开发一个python脚本来进行web scrape,并已经开始使用Chromedriver作为其中一个包。我希望这个在后台操作,不需要任何弹出窗口。我在chromedriver上使用了“headless”选项,它似乎完成了不显示浏览器窗口的工作,但是,我仍然看到.exe文件正在运行。看我说的截图。Screenshot
这是我用来启动ChromeDriver的代码:
options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches",["ignore-certificate-errors"])
options.add_argument('headless')
options.add_argument('window-size=0x0')
chrome_driver_path = "C:\Python27\Scripts\chromedriver.exe"
我试图做的是将选项中的窗口大小更改为0x0,但由于.exe文件仍然弹出,我不确定这是否起作用。
你知道我该怎么做吗?
我正在使用Python 2.7fyi
当使用Selenium客户端3.11.x,ChromeDriver v2.38和Google Chrome v65.0.3325.181在无头模式时,您必须考虑以下几点:
--headless
才能在无头模式下调用Chrome。--disable-gpu
--disable-gpu
,在Linux系统和MacOS上不需要标志。--disable-gpu
标记在Windows系统上也将变得不必要。start-maximized
对于最大化的视区是必需的。您可能需要添加参数
--no-sandbox
以绕过操作系统安全模型。示例Windows代码块:
Linux代码块示例:
更新(2018年4月23日)
由于方法^{} 的可用性,以编程方式在无头模式下调用Google Chrome浏览器变得容易得多:
文件:
示例代码:
更新(2018年10月13日)
要在headless模式下调用Chrome浏览器,只需通过
Options()
类设置--headless
属性,如下所示:示例代码:
奥特罗
How to make firefox headless programmatically in Selenium with python?
tl;博士
这是Sandbox故事的链接。
应该是这样的:
这对我使用Python3.6很有效,我相信它也适用于2.7。
更新2018-10-26:现在您可以这样做:
.exe仍将运行。根据Google的说法-“以无头模式运行,即不依赖UI或显示服务器。”
最好在命令行参数前面加上2个破折号,即
options.add_argument('--headless')
在无头模式下,还建议禁用GPU,即
options.add_argument('--disable-gpu')
相关问题 更多 >
编程相关推荐