【问题标题】:Error in trying to run Selenium in a Headless Linux Server (testing in Mac OS) with PyVirtualDisplay尝试使用 PyVirtualDisplay 在无头 Linux 服务器(在 Mac OS 中测试)中运行 Selenium 时出错
【发布时间】:2015-12-14 10:33:05
【问题描述】:

我一直在使用 Selenium Web Driver 进行开发(在我的 Mac OSX 上)以进行一些抓取,但我需要将脚本移动到无头 Linux 服务器。

经过一些研究,似乎我需要在无头服务器中使用 PyVirtualDisplaysimulate 来启动 Selenium 浏览器。下面是我的代码和我得到的错误。

代码:(Source)

from pyvirtualdisplay import Display
from selenium import webdriver

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

# now Firefox will run in a virtual display.
# you will not see the browser.
browser = webdriver.Firefox()
browser.get('http://www.google.com')
print browser.title
browser.quit()

display.stop()

我得到的错误:

My-MBP:learningpython neilnidhi$ python seleniumheadless.py 
Traceback (most recent call last):
File "seleniumheadless.py", line 4, in <module>
  display = Display(visible=0, size=(800, 600))
File "/usr/local/lib/python2.7/site- packages/pyvirtualdisplay/display.py", line 33, in __init__
self._obj = self.display_class(
File "/usr/local/lib/python2.7/site-packages/pyvirtualdisplay/display.py", line 51, in display_class
  cls.check_installed()
File "/usr/local/lib/python2.7/site-packages/pyvirtualdisplay/xvfb.py", line 38, in check_installed
  ubuntu_package=PACKAGE).check_installed()
File "/usr/local/lib/python2.7/site-packages/easyprocess/__init__.py", line 209, in check_installed
  raise EasyProcessCheckInstalledError(self)
easyprocess.EasyProcessCheckInstalledError: cmd=['Xvfb', '-help']
OSError=[Errno 2] No such file or directory
Program install error! 

【问题讨论】:

  • 如果需要在无头环境中运行 Selenium,不妨使用像PhantomJS 这样的无头浏览器。 Selenium 支持它 (browser = webdriver.PhantomJS())。
  • 不了解 PhantomJS,现在检查一下...谢谢。

标签: python macos python-2.7 selenium-webdriver pyvirtualdisplay


【解决方案1】:

这个问题的解决方法很简单。您没有运行 pyvirtualdisplay 可以自行连接的 xserver。尝试使用其字体和实用程序安装xvfb 或任何其他x11 服务器,它应该可以正常工作。不过,我显然有一个脚本可以在 linux 上安装整个 xvfb 堆栈。

但正如@Thomas Orozco 指出的那样,PhantomJS 做得很好。

【讨论】:

    【解决方案2】:

    它适用于我在 linux 中

    yum 安装 Xvfb

    【讨论】:

      猜你喜欢
      • 2012-04-24
      • 1970-01-01
      • 1970-01-01
      • 2017-11-01
      • 2016-03-23
      • 2020-11-03
      • 1970-01-01
      • 1970-01-01
      • 2018-09-01
      相关资源
      最近更新 更多