Python / Selenium / PhantomJS: "No se puede iniciar phantomjs con ghostdriver".


15

Estoy tratando de hacer que Selenium use phantomjs en una máquina con Windows. Mi código se compila sin ningún error:

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

Pero cada vez que lo ejecuto me sale el error

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 

He estado recibiendo este error durante horas. "No se puede iniciar phantomjs con ghostdriver". Los ejemplos más simples en línea muestran la instalación de selenio con PIP y luego phantomjs con NodeJS NPM, que es como lo hice. La ubicación de Selenium está en mi PYTHONPATH también. Francamente, no tengo idea de qué demonios quiere esta cosa de mí. ¿Algunas ideas?


Los mismos problemas en el código básico que alguna vez funcionaron, pensé que había roto mi estructura de Python al principio.
Shane

1
Bien, parece que el desarrollador de phantomjs ha admitido que los enlaces de python están detrás. github.com/detro/ghostdriver/issues/236 Tanto por usar phantomjs. Ojalá hubiera sabido eso antes de pasar varias horas tratando de hacer realidad los fantasmas.
Amalgovinus

1
Los mismos sentimientos aquí. Por qué es tan importante aprender código y no bibliotecas a menos que sean mantenidos por una gran comunidad. Nunca se puede esperar que un hombre mantenga su proyecto, especialmente si no gana dinero con el trabajo duro.
Shane

Respuestas:


19

Me encontré con el mismo problema. Necesitaba proporcionar la ruta completa al exe, como se describe en la documentación :

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

De hecho, esto le permitió marcar, ¡hurra! Ahora, el único problema es que, cada elemento que intento imprimir, solo me da un "selenium.webdriver.phantomjs.webdriver.WebDriver objeto en 0x0000000002F54668" o un ID unicode. Recomiendo lorien's Grab en su lugar. bitbucket.org/lorien/grab/src/…
Amalgovinus

¡¡historia verdadera!! Ojalá pudiera votar 5 veces.
HolaW

No funcionó para mí ... Tuve que editar service.py según la respuesta de DT_Lvhyy.
Deep-B

Parece que para los sistemas Ubuntu y Linux, ~ debería ser la ruta real desde la raíz al directorio
Delos Chang

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.