Селен с GhostDriver в Python в Windows

Это неловко спросить, потому что это похоже на что-то с таким небольшим шансом на ошибку. Я бы не подумал, что это будет сложно, но я уже почти 3 часа закрываю его, и это дает мне головную боль. Я прочитал несколько десятков потоков stackoverflow и потоков Google.

Я установил PhantomJS, добавил его в свой системный переменный PATH, и он корректно работает в командной строке. Я также установил Selenium раньше с easy_install.

Ошибка, которую я получаю:

__init__    C:\Python27\lib\site-packages\selenium-2.39.0-py2.7.egg\selenium\webdriver\phantomjs\webdriver.py   50      

start   C:\Python27\lib\site-packages\selenium-2.39.0-py2.7.egg\selenium\webdriver\phantomjs\service.py 66      

WebDriverException: Message: 'Unable to start phantomjs with ghostdriver.' ; Screenshot: available via screen               

Здесь мой код:

from selenium import webdriver

driver = webdriver.PhantomJS(executable_path="C:\Python27\misc\phantomjs\phantomjs.exe")

Я также пробовал:

from selenium import webdriver

driver = webdriver.PhantomJS()

Я получаю то же сообщение об ошибке. Это должно быть что-то простое, что я делаю неправильно. Я буду благодарен за любые комментарии или ответы.

Windows 7 64 бит Python 2.7

Ответ 1

Это может быть проблема с версией для вас, но поскольку я просто прошел настройку на моем ПК с Windows 7 без проблем, я собираюсь поделиться своим "путешествием" здесь.

Во-первых, я больше привык к терминалу Mac/Linux и наличие в моем распоряжении менеджера пакетов python pip для меня. После установки Python 2.7.8 и добавления ;c:\Python27 к моему PATH я заметил что pip не входит в версии Python ниже 2.7.9, поэтому я должен был добавить его сам. Впоследствии я добавил ;c:\Python27\Scripts в свой PATH.

После этого выборка пакета python selenium была такой же простой, как ввести следующее в cmd:

pip install selenium

Затем я загрузил phantomjs-1.9.7-windows.zip из здесь, распаковал его и разместил здесь:

C:\Python27\misc\phantomjs-1.9.7-windows\phantomjs.exe

Оттуда у меня был рабочий пример Python 2.7/Selenium Webdriver/PhantomJS для Windows 7.

from selenium import webdriver
import os

phantomjs_path = "C:\Python27\misc\phantomjs-1.9.7-windows\phantomjs.exe"

browser = webdriver.PhantomJS(executable_path=phantomjs_path, service_log_path=os.path.devnull)
browser.set_window_size(1400, 1000)

browser.get("https://stackoverflow.com/")

print browser.title

Обратите внимание, что я добавил аргумент service_log_path=os.path.devnull к функции webdriver.PhantomJS(), чтобы предотвратить создание PhantomJS ghostdriver.log в каталоге исполняемого файла python.

Ответ 2

У меня была такая же проблема с запуском Python 3.4 в Windows Server 2012 R2. PhantomJS не смог создать файл ghostdriver.log. Я выполнил следующие шаги, которые исправили это для меня:

  • Убедитесь, что phantomjs.exe не отображает "Заблокировано" на вкладке "Свойства файла | Безопасность" и запускает ее как автономное приложение для подтверждения.
  • Удалена старая копия файла ghostdriver.log, которая была в том же каталоге.
  • Ran python REPL с консоли, проверяя, успешно ли был вызван код, который создавал экземпляр драйвера.

    browser = webdriver.PhantomJS(executable_path='phantomjs.exe', desired_capabilities=argdc, service_args=svc_args)
    

Ответ 3

Есть ли у вас какой-либо другой файл или каталог с таким же именем или файл с кодировкой (например, phantomjs.py), который вы назвали так же, как phantomjs, так что переименуйте его в другое. я надеюсь, что он работает