Селен с 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
, так что переименуйте его в другое. я надеюсь, что он работает