Python / Selenium / PhantomJS:“无法使用ghostdriver启动phantomjs。”


15

我正在尝试让Selenium在Windows计算机上使用phantomjs。我的代码编译没有任何错误:

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 

我已经收到这个错误几个小时了。“无法使用ghostdriver启动phantomjs”。在线上最简单的示例显示了如何使用PIP安装硒,然后使用NodeJS NPM安装phantomjs,这就是我的方法。Selenium的位置也在我的PYTHONPATH中。坦率地说,我不知道这件事到底要我怎么做。有任何想法吗?


基本代码上曾经起作用的相同问题,以为我一开始就破坏了python结构。
Shane

1
Welp,看来phantomjs的开发人员已经承认python绑定已落后。github.com/detro/ghostdriver/issues/236使用phantomjs非常有用。真希望在我花几个小时尝试使phantomjs栩栩如生之前,我已经知道了。
Amalgovinus

1
同样的感受。为什么学习代码而不是库如此重要,除非它们是由一个大型社区维护的。您永远都不会指望一个人能维持自己的项目,尤其是如果不从辛勤工作中赚钱的话。
Shane

Answers:


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 ID。我推荐lorien的Grab代替。bitbucket.org/lorien/grab/src/...
Amalgovinus

真实的故事!!希望我能投票5次。
HelloW

不适用于我...我必须根据DT_Lvhyy的答案编辑service.py。
Deep-B

看起来对于Ubuntu和Linux系统,〜应该是从根目录到目录的实际路径
Delos Chang 2014年

2

您需要修改 ...\Python27\Lib\site-packages\selenium-2.39.0-py2.7.egg\selenium\webdriver\phantomjs\service.py

这个Google代码页会有所帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.