Python / Selenium / PhantomJS: “Hayalet sürücü ile hayaletler başlatılamadı.”


15

Bir Windows makinesinde phantomjs kullanması için Selenium almaya çalışıyorum. Kodum herhangi bir hata olmadan derler:

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

Ama her çalıştırdığımda hatayı alıyorum

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 

Saatlerdir bu hatayı alıyorum. Msgstr "Hayalet sürücü ile hayaletler başlatılamadı". En basit örnekler çevrimiçi PIP ile selenyum ve daha sonra NodeJS NPM ile phantomjs kurulumunu gösteriyor, ben de bunu yaptım. Selenyum'un konumu da PYTHONPATH'ımda. Açıkçası bu şeyin benden ne istediğini bilmiyorum. Herhangi bir fikir?


Bir kez işe yarayan temel kodda aynı sorunlar, ilk başta python yapımı kırdığımı düşündüm.
Shane

1
Welp, sanki phantomjs 'dev, python bağlarının arkasında olduğunu itiraf etti. github.com/detro/ghostdriver/issues/236 Phantomjs kullanmak için çok fazla. Keşke ben phantomjs hayata kavga çalışırken birkaç **** ing saat geçirmeden önce bilseydim.
Amalgovinus

1
Burada da aynı duygular var. Büyük bir topluluk tarafından sürdürülmedikçe kütüphaneleri değil kodu öğrenmek neden önemlidir? Özellikle zor işten para kazanmıyorsa, bir erkeğin projesini sürdürmesini asla bekleyemezsiniz.
Shane

Yanıtlar:


19

Ben de aynı sorunla karşılaştım. Belgede açıklandığı gibi exe tam yolunu sağlamak gerekiyordu :

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

Bu gerçekten dışarı çıkmasına izin verdi, yaşasın. Şimdi tek sorun, yazdırmaya çalıştığım her öğe, bana sadece bir "selenium.webdriver.phantomjs.webdriver.WebDriver nesnesi 0x0000000002F54668" veya bir unicode kimliği veriyor. Yerine lorien Grab öneririm. bitbucket.org/lorien/grab/src/...
Amalgovinus

gerçek hikaye!! keşke 5 kez yükseltebilseydim.
HelloW

Benim için çalışmadı ... DT_Lvhyy'nin cevabına göre service.py'yi düzenlemek zorunda kaldım.
Deep-B

Ubuntu ve Linux sistemlerine benziyor, ~ kökten dizine giden gerçek yol olmalı
Delos Chang

2

Değiştirmeniz gerekiyor ...\Python27\Lib\site-packages\selenium-2.39.0-py2.7.egg\selenium\webdriver\phantomjs\service.py

Bu google kod sayfası yardımcı olacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.