2016-12-18 1 views
4

Примечание Я уже смотрел на следующих источниках:Python 2.7 - Селен тестирование без головы с Xvfb не работает

easyprocess.EasyProcessCheckInstalledError: cmd=['Xvfb', '-help'] OSError=[Errno 2] No such file or directory

How do I run Selenium in Xvfb?

Который не решить мою проблему.

Я использую:

  • Python 2.7
  • селеном 3.0.2
  • xvfbwrapper 0.2.9
  • PyVirtualDisplay 0.2.1

Бег на Mac OSX El Capitan (10.11.6 (15G1108))

Получаю из-за ошибки (что то же самое один, который находится в ссылке):

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 установлены также:

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 

Если пип установки ищет Xvfb в другой справочник, некоторые рекомендации будут оценены в отношении того, как перенаправить туда, где он выглядит.

Вот мой код:

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() 

Я сделал бесчисленное количество пипа устанавливает и Google поиска и ничего не помогло до сих пор, в конечном итоге конечной цели иметь обезглавленную автоматизацию, которая способна обрабатывать загрузки, что-то PhantomJS не может сделать. Любая помощь в этом вопросе будет также оценена.

+0

Вы не можете использовать это на osx –

+0

@CoreyGoldberg Что я могу использовать? Я перешел на casperjs, но если я хочу использовать python, то как я могу запустить его без головок в OSX? –

+0

Chrome только что выпустил свою безголовую версию с версией 59+. Вы можете это проверить. – demouser123

ответ

2

Я не понимаю, почему вы не можете использовать это с osx, я сделал это в прошлом. Но у меня есть лучшее решение. Почему вы не используете docker + VNC. установите любой браузер по вашему выбору и запустите все в фоновом режиме Преимущество: 1. Все работает в фоновом режиме. 2. Выполнение монитора в браузере с веб-просмотром VNC 3. Запустите столько контейнеров, сколько хотите для параллельного выполнения.