如何配置 ChromeDriver 以通过 Selenium 以 Headless 模式启动 Chrome 浏览器?

新手上路,请多包涵

我正在研究一个用于网络抓取的 python 脚本,并且已经走上了使用 Chromedriver 作为软件包之一的道路。我希望它在没有任何弹出窗口的情况下在后台运行。我在 chromedriver 上使用“无头”选项,它似乎在不显示浏览器窗口方面完成了这项工作,但是,我仍然看到 .exe 文件正在运行。请参阅我正在谈论的内容的屏幕截图。 截屏

这是我用来启动 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.7 仅供参考

原文由 Maz 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 641
2 个回答

所以在将我的代码更正为:

 options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches",["ignore-certificate-errors"])
options.add_argument('--disable-gpu')
options.add_argument('--headless')
chrome_driver_path = "C:\Python27\Scripts\chromedriver.exe"

运行脚本时仍然会出现 .exe 文件。虽然这确实摆脱了一些额外的输出告诉我“无法启动 GPU 进程”。

最终起作用的是使用 .bat 文件运行我的 Python 脚本

所以基本上,

  1. 如果是文件夹,则保存 python 脚本

  2. 打开文本编辑器,并转储以下代码(当然是编辑你的脚本)

    c:\python27\python.exe c:\SampleFolder\ThisIsMyScript.py %*

  3. 保存 .txt 文件并将扩展名更改为 .bat

  4. 双击运行文件

所以这只是在命令提示符中打开了脚本,而 ChromeDriver 似乎在此窗口中运行而没有弹出到我的屏幕前面,从而解决了问题。

原文由 Maz 发布,翻译遵循 CC BY-SA 3.0 许可协议

它应该是这样的:

 from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument('--headless')
options.add_argument('--disable-gpu')  # Last I checked this was necessary.
driver = webdriver.Chrome(CHROMEDRIVER_PATH, chrome_options=options)

这适用于使用 Python 3.6 的我,我相信它也适用于 2.7。

2018-10-26 更新:这些天你可以这样做:

 from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.headless = True
driver = webdriver.Chrome(CHROMEDRIVER_PATH, options=options)

原文由 Daniel Porteous 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题