11

问这个问题很尴尬,因为这似乎是错误几率很小的事情。我不认为这会很困难,但我已经坚持了将近 3 个小时,这让我很头疼。我已经阅读了几十个 stackoverflow 线程和 Google 线程。

我已经安装了 PhantomJS,将它添加到我的系统变量 PATH 中,并且它在命令行中正常工作。我之前还使用 easy_install 安装了 Selenium。

我得到的错误是:

__init__    C:\Python27\lib\site-packages\selenium-2.39.0-py2.7.egg\selenium\webdriver\phantomjs\webdriver.py   50      

start   C:\Python27\lib\site-packages\selenium-2.39.0-py2.7.egg\selenium\webdriver\phantomjs\service.py 66      

WebDriverException: Message: 'Unable to start phantomjs with ghostdriver.' ; Screenshot: available via screen               

这是我的代码:

from selenium import webdriver

driver = webdriver.PhantomJS(executable_path="C:\Python27\misc\phantomjs\phantomjs.exe")

我也试过:

from selenium import webdriver

driver = webdriver.PhantomJS()

我收到相同的错误消息。这一定很简单,我做错了。我将不胜感激任何评论或答案。

Windows 7 64 位 Python 2.7

4

3 回答 3

13

这可能是您的版本问题,但由于我刚刚在我的 Windows 7 PC 上进行了设置,没有出现任何问题,我将在这里分享我的“旅程”。

首先,我更习惯于 Mac/Linux 终端,并且使用 python 包管理器pip对我来说是必不可少的。在安装Python 2.7.8并添加;c:\Python27 到我的 PATH之后,我注意到pip低于 2.7.9 的 Python 版本不包含它,所以我不得不自己添加它。之后我添加;c:\Python27\Scripts到我的 PATH 中。

之后,获取 python 包selenium就像在 cmd 中输入以下内容一样简单:

pip install selenium

然后我phantomjs-1.9.7-windows.zip这里下载,解压缩并放在这里:

C:\Python27\misc\phantomjs-1.9.7-windows\phantomjs.exe

从那里我有一个适用于 Windows 7 的 Python 2.7/Selenium Webdriver/PhantomJS 示例。

from selenium import webdriver
import os

phantomjs_path = "C:\Python27\misc\phantomjs-1.9.7-windows\phantomjs.exe"

browser = webdriver.PhantomJS(executable_path=phantomjs_path, service_log_path=os.path.devnull)
browser.set_window_size(1400, 1000)

browser.get("https://stackoverflow.com/")

print browser.title

请注意,我service_log_path=os.path.devnull在函数中添加了参数以webdriver.PhantomJS()防止 PhantomJS 在正在执行的 python 文件的目录中创建 ghostdriver.log。

于 2014-07-04T18:25:49.790 回答
1

我在 Windows Server 2012 R2 上运行 Python 3.4 时遇到了同样的问题。PhantomJS 未能创建 ghostdriver.log 文件。我按照以下步骤为我修复了它:

  • 确保 phantomjs.exe 在文件属性|安全选项卡上未显示“已阻止”,并将其作为独立应用程序运行以确认。
  • 删除了位于同一目录中的 ghostdriver.log 文件的旧副本。
  • 从控制台运行 python REPL,同时检查实例化驱动程序的代码是否被成功调用。

    browser = webdriver.PhantomJS(executable_path='phantomjs.exe', desired_capabilities=argdc, service_args=svc_args)
    
于 2015-08-28T01:52:09.003 回答
0

您是否有任何其他具有相同名称的文件或目录,或者您命名为相同的编码文件(如 ..phantomjs.py),phantomjs然后将其重命名为其他名称。我希望它有效

于 2017-04-14T06:31:14.723 回答