Python / Selenium / PhantomJS: "Неможливо запустити phantomjs з ghostdriver."


15

Я намагаюся змусити Selenium використовувати phantomjs на машині Windows. Мій код складається без помилок:

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import cookielib
import re
from splinter import Browser

driver = webdriver.PhantomJS('C:/Program Files (x86)/phantomjs-1.9.2-windows')

Але кожен раз, коли я його запускаю, я отримую помилку

Traceback (most recent call last):
  File "E:/~PROJECT/disinfo/py/bs.py", line 8, in <module>
    driver = webdriver.PhantomJS('C:/Program Files (x86)/phantomjs-1.9.2-windows')
  File "C:\Python27\lib\site-packages\selenium\webdriver\phantomjs\webdriver.py", line 50, in __init__
    self.service.start()
  File "C:\Python27\lib\site-packages\selenium\webdriver\phantomjs\service.py", line 63, in start
    raise WebDriverException("Unable to start phantomjs with ghostdriver.", e)
selenium.common.exceptions.WebDriverException: Message: 'Unable to start phantomjs with ghostdriver.' ; Screenshot: available via screen 

Я отримував цю помилку годинами. Msgstr "Неможливо запустити phantomjs з ghostdriver". Найпростіші приклади в Інтернеті показують встановлення селену з PIP, а потім phantomjs з NodeJS NPM, ось як я це зробив. Місцезнаходження селену є і в моєму PYTHONPATH. Я, відверто кажучи, не маю поняття, чого чорта хоче від мене. Якісь ідеї?


Ті ж питання, що стосуються базового коду, які колись працювали, вважали, що спочатку я порушив свою структуру python.
Шейн

1
Welp, схоже, розробник Phantomjs визнав, що зв'язки пітона позаду. github.com/detro/ghostdriver/isissue/236 Стільки для використання phantomjs. Хотілося б я знати, що до того, як я витратив кілька **** годин, намагаючись увімкнути фантоми до життя.
Амальговінус

1
Тут же почуття. Чому так важливо вивчати код, а не бібліотеки, якщо їх не підтримує велика громада. Ніколи не можна сподіватися, що один хлопець підтримає свій проект, особливо якщо не заробляє грошей на важкій роботі.
Шейн

Відповіді:


19

Я зіткнувся з тим же питанням. Мені потрібно було забезпечити повний шлях до exe, як це описано в документації :

from selenium import webdriver
driver = webdriver.PhantomJS(executable_path='C:\phantomjs-1.9.2\phantomjs.exe')

Це дійсно дозволило йому набрати, ура. Тепер єдина проблема полягає в тому, що кожен елемент, який я намагаюся надрукувати, він просто дає мені "об’єкт selenium.webdriver.phantomjs.webdriver.WebDriver на 0x0000000002F54668" або ідентифікатор unicode. Я рекомендую замість цього захопити Лоріен. bitbucket.org/lorien/grab/src/…
Amalgovinus

правдива історія!! бажаю, щоб я міг підняти 5 разів.
HelloW

Не працювало для мене ... Мені довелося редагувати service.py відповідно до відповіді DT_Lvhyy.
Глибокий-Б

Схоже, що для систем Ubuntu та Linux, ~ повинен бути фактичний шлях від кореня до каталогу
Delos Chang

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.