这令人尴尬,因为它看起来像错误的机会很小。我不认为这会很困难,但我现在已经把它搞砸了近3个小时了,这让我很头疼。我已经阅读了几十个stackoverflow线程和谷歌线程。
我已经安装了PhantomJS,将它添加到我的系统变量路径中,并且它在命令行中正常工作。我之前还使用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
答案 0 :(得分:13)
这可能是您的版本问题,但由于我刚刚在Windows 7 PC上进行了设置而没有出现问题,我将在此处分享我的“旅程”。
首先,我更习惯于Mac / Linux终端,并且拥有python包管理器pip
对我来说至关重要。安装Python 2.7.8并添加;c:\Python27
to my PATH后,我注意到pip
未包含在低于2.7.9的Python版本中,因此我had to add it myself。之后我将;c:\Python27\Scripts
添加到了我的路径中。
在获取python包selenium
之后就像在cmd中键入以下内容一样简单:
pip install selenium
然后我从here下载了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。
答案 1 :(得分:1)
我在Windows Server 2012 R2上运行Python 3.4时遇到了同样的问题。 PhantomJS无法创建ghostdriver.log文件。我按照以下步骤修复了它:
从控制台中查看python REPL,同时检查实例化驱动程序的代码是否被成功调用。
browser = webdriver.PhantomJS(executable_path='phantomjs.exe', desired_capabilities=argdc, service_args=svc_args)
答案 2 :(得分:0)
你是否有任何其他同名的文件或目录,或者你命名为phantomjs
的编码文件(如.. phantomjs.py),然后将其重命名为其他内容。我希望它有效