问题描述
请注意,我已经查看了以下来源:
Note I have already looked at the following sources:
easyprocess.EasyProcessCheckInstalledError:cmd = ['Xvfb','- help'] OSError = [Errno 2]没有这样的文件或目录
哪个没有解决我的问题.
Which did not solve my problem.
我正在使用:
- Python 2.7
- 硒3.0.2
- xvfbwrapper 0.2.9
- PyVirtualDisplay 0.2.1
在Mac OSX El Capitan(10.11.6(15G1108))上运行
Running on Mac OSX El Capitan (10.11.6 (15G1108))
我收到以下错误(与上面的链接中的错误相同):
I get the following error (which is the same one that is in the above link):
Traceback (most recent call last):
File "/Users/user/Desktop/test.py", line 50, in <module>
display = Display(visible=0, size=(800, 600))
File "/Library/Python/2.7/site-packages/pyvirtualdisplay/display.py", line 34, in __init__
self._obj = self.display_class(
File "/Library/Python/2.7/site-packages/pyvirtualdisplay/display.py", line 52, in display_class
cls.check_installed()
File "/Library/Python/2.7/site-packages/pyvirtualdisplay/xvfb.py", line 38, in check_installed
ubuntu_package=PACKAGE).check_installed()
File "/Library/Python/2.7/site-packages/easyprocess/__init__.py", line 180, in check_installed
raise EasyProcessCheckInstalledError(self)
EasyProcessCheckInstalledError: cmd=['Xvfb', '-help']
OSError=[Errno 2] No such file or directory
Program install error!
我知道我也安装了Xvfb:
I know I have Xvfb installed as well:
Xvfb -help
use: X [:<display>] [option]
-a # default pointer acceleration (factor)
-ac disable access control restrictions
-audit int set audit trail level
-auth file select authorization file
-br create root window with black background
+bs enable any backing store support
-bs disable any backing store support
-c turns off key-click
...
-pixdepths list-of-int support given pixmap depths
+/-render turn on/off RENDER extension support(default on)
-linebias n adjust thin line pixelization
-blackpixel n pixel value for black
-whitepixel n pixel value for white
-fbdir directory put framebuffers in mmap'ed files in directory
-shmem put framebuffers in shared memory
如果pip安装正在其他目录中寻找xvfb,则将对如何将其重定向到所寻找的位置提供一些指导.
If the pip install is looking for xvfb in a different directory, some guidance would be appreciated as to how to redirect where it's looking.
这是我的代码:
from easyprocess import EasyProcess
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()
我已经完成了无数的pip安装和google搜索,但到目前为止没有任何帮助,最终的最终目标是拥有能够处理下载的无头自动化,这是PhantomJS无法做到的.在该主题上的任何帮助也将不胜感激.
I've done countless pip installs and google searches and nothing has helped so far, the ultimate end goal is to have a headless automation that is capable of handling downloads, something PhantomJS is unable to do. Any help in that subject would be appreciated as well.
推荐答案
我看不到为什么不能在osx中使用它,我过去已经做到了.但是我有一个更好的解决方案.为什么不使用 docker + VNC .安装您选择的任何浏览器并在后台运行所有内容优势:1.一切都在后台运行.2.使用VNC Web视图监视浏览器中的执行3.启动任意数量的容器以并行执行.
I dont see why you cant use this with osx, I have done that in past. But I have a better solution. Why dont you use docker + VNC . install any browser of your choice and run everything in the background Advantage:1. Everything runs in the background. 2. Monitor execution in the browser with VNC web view3. launch as many container as you want for parallel execution.
这篇关于Python 2.7-使用Xvfb进行Selenium无头测试无法正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!