Python / Selenium / PhantomJS: "Impossibile avviare phantomjs con ghostdriver."


15

Sto cercando di convincere Selenium a usare i phantomjs su un computer Windows. Il mio codice viene compilato senza errori:

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

Ma ogni volta che lo eseguo ottengo l'errore

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 

Ricevo questo errore da ore. "Impossibile avviare phantomjs con ghostdriver". Gli esempi più semplici online mostrano l'installazione di selenio con PIP e quindi phantomjs con NodeJS NPM, ed è così che l'ho fatto. La posizione di Selenium è anche nel mio PYTHONPATH. Sinceramente non ho idea di cosa diavolo questa cosa voglia da me. Qualche idea?


Stessi problemi sul codice di base che una volta funzionavano, pensavo che all'inizio avessi rotto la mia struttura Python.
Shane,

1
Welp, sembra che lo sviluppatore di Phantomjs abbia ammesso che le associazioni di Python sono in ritardo. github.com/detro/ghostdriver/issues/236 Tanto per usare phantomjs. Vorrei che lo avessi saputo prima di passare diverse ore a cercare di distruggere i fantasmi.
Amalgovinus,

1
Stessi sentimenti qui. Perché è così importante imparare il codice e non le librerie a meno che non siano gestite da una grande comunità. Non puoi mai aspettarti che un ragazzo mantenga il suo progetto soprattutto se non guadagna soldi con il duro lavoro.
Shane,

Risposte:


19

Ho riscontrato lo stesso problema. Avevo bisogno di fornire il percorso completo per l'exe, come descritto nella documentazione :

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

Ciò ha effettivamente permesso di chiamare, evviva. Ora l'unico problema è, ogni elemento che provo a stampare, mi dà solo un "selenium.webdriver.phantomjs.webdriver.WebDriver oggetto a 0x0000000002F54668" o un ID unicode. Consiglio invece Lorien's Grab. bitbucket.org/lorien/grab/src/…
Amalgovinus

storia vera!! vorrei poter votare 5 volte.
Ciao,

Non ha funzionato per me ... Ho dovuto modificare service.py secondo la risposta di DT_Lvhyy.
Deep-B,

Sembra che per i sistemi Ubuntu e Linux, ~ dovrebbe essere il percorso effettivo dal root alla directory
Delos Chang

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.