无头硒 + Xvfb + Chrome OSX 10.11
Headless Selenium + Xvfb + Chrome on OSX 10.11
好吧,首先我了解到 Xvfb 没有包含在我的 OS X 版本中,所以我从 http://www.xquartz.org/.
安装了它
这似乎奏效了:
which xvfb
/opt/X11/bin/xvfb
但是当我尝试将它与 pyvirtualdisplay 和 xvfbwrapper 一起使用时,按照我在这个问题上找到的建议 How do I run Selenium in Xvfb? 我的脚本运行没有错误,但只是在 Chrome 浏览器中打开 window :
from selenium import webdriver
from pyvirtualdisplay import Display
display = Display(visible=0, size=(800, 600))
display.start()
browser = webdriver.Chrome()
browser.get('google.com')
我是不是做错了什么?
我认为 Chrome 是 Quartz ui 框架的 built,因此它忽略了 X11 窗口引擎。您将需要安装 X11 版本的浏览器,然后执行它。
对我来说,此代码在 OSX 10.13 上运行良好。你不需要 pyvirtualdisplay,因为你可以 运行 chrome 在 headless 模式下。只需下载适合您的 chrome 版本的 chrome 驱动程序并将其放入 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')
好吧,首先我了解到 Xvfb 没有包含在我的 OS X 版本中,所以我从 http://www.xquartz.org/.
安装了它这似乎奏效了:
which xvfb
/opt/X11/bin/xvfb
但是当我尝试将它与 pyvirtualdisplay 和 xvfbwrapper 一起使用时,按照我在这个问题上找到的建议 How do I run Selenium in Xvfb? 我的脚本运行没有错误,但只是在 Chrome 浏览器中打开 window :
from selenium import webdriver
from pyvirtualdisplay import Display
display = Display(visible=0, size=(800, 600))
display.start()
browser = webdriver.Chrome()
browser.get('google.com')
我是不是做错了什么?
我认为 Chrome 是 Quartz ui 框架的 built,因此它忽略了 X11 窗口引擎。您将需要安装 X11 版本的浏览器,然后执行它。
对我来说,此代码在 OSX 10.13 上运行良好。你不需要 pyvirtualdisplay,因为你可以 运行 chrome 在 headless 模式下。只需下载适合您的 chrome 版本的 chrome 驱动程序并将其放入 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')