在OSX 10.11上使用Headless Selenium + Xvfb + Chrome

15

好的,首先我了解到我的OS X版本中没有包含Xvfb,所以我从http://www.xquartz.org/安装了它。

看起来这似乎已经奏效了:

which xvfb
/opt/X11/bin/xvfb

但是当我尝试使用pyvirtualdisplay和xvfbwrapper时,按照我在这个问题上找到的建议 How do I run Selenium in Xvfb? 我的脚本可以无错误地运行,但只是在Chrome浏览器窗口中打开:

from selenium import webdriver
from pyvirtualdisplay import Display

display = Display(visible=0, size=(800, 600))
display.start()

browser = webdriver.Chrome()
browser.get('google.com')

我在这里做错了什么吗?

2个回答

9

我相信Chrome是基于Quartz ui框架构建的,因此它忽略了X11窗口引擎。你需要安装一个X11版本的浏览器,然后执行它。


3
我可以在哪里安装这个? - whackamadoodle3000
这只适用于Mac吗?也就是说,它能在我的带有Chrome的Linux系统上运行吗? - User

-1

对我来说,在OSX 10.13上,这段代码运行良好。您不需要pyvirtualdisplay,因为您可以在无头模式下运行Chrome。只需下载适合您Chrome版本的chromedriver并将其放置在usr/local/bin中即可。

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

options = Options()
options.add_argument('--headless')
options.add_argument('--mute-audio')
options.add_argument('--lang=de')
options.add_argument('--window-size=800,600')
options.add_argument('--disable-notifications')
options.add_argument('--enable-popup-blocking')

browser = webdriver.Chrome(chrome_options=options, executable_path='/usr/local/bin/chromedriver')

browser.get('some url')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接