无法在Windows 7中使用Python启动PhantomJS

时间:2016-01-17 15:33:15

标签: python windows phantomjs

我正在尝试在我的Windows 7中使用PhantomJS和Python,但是无法正常工作! 这就是我试图做的事情。

首先,我安装了webdriver。在下面的代码中,Firefox正常打开,所以我相信webdrive已正确安装。

from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://seleniumhq.org/')

然后,我从官方网站下载了PhantomJS,将其解压缩并放入c:\ Phantomjs。然后我将它添加到环境变量中。 这里有什么:

  

C:\幻影\ phantomjs-2.0.0窗口\ bin中

所以,当我在终端输入“phantomjs”时,它会正常启动。但是下面的代码给了我一个错误:

from selenium import webdriver
browser = webdriver.PhantomJS( )

错误讯息:

  

在:>中忽略了异常   Traceback(最近一次调用最后一次):       文件“c:Python34 \ lib \ site-packages \ selenium \ webdriver \ common \ service.py”,第136行, del       文件“c:Python34 \ lib \ site-packages \ selenium \ webdriver \ common \ service.py”,第124行,停止       AttributeError:'NoneType'对象没有属性'close'

如果我改变了一点代码,那就在这里:

from selenium import webdriver
browser = webdriver.PhantomJS(executable_path='C:\Phantom\phantomjs-2.0.0-windows\bin\phantomjs.exe')

错误讯息:

  

追踪(最近一次呼叫最后一次):

     

文件“c:Python34 \ lib \ site-packages \ selenium \ webdriver \ common \ service.py”,第62行,开头

     

stdout = self.log_file,stderr = self.log_file)

     

文件“c:Python34 \ lib \ subprocess.py”,第859行, init

     

restore_signals,start_new_session)

     

文件“c:Python34 \ lib \ subprocess.py”,第1112行,在_execute_child startupinfo中)

     

FileNotFoundError:[WinError 2]系统找不到指定的文件

     

在处理上述异常期间,发生了另一个异常:

     

追踪(最近一次呼叫最后一次):

     

文件“d:\ test.py”,第2行,

     

browser = webdriver.PhantomJS(executable_path ='C:\ Phantom \ phantomjs-2.0.0-windows \ bin \ phantomjs')

     

文件“c:Python34 \ lib \ site-packages \ selenium \ webdriver \ common \ service.py”,第51行, init self.service.start()

     

文件“c:Python34 \ lib \ site-packages \ selenium \ webdriver \ common \ service.py”,第69行,在启动os.path.basename(self.path)中,

     

self.start_error_message)

     

selenium.common.exceptions.WebDriverException:消息:'phantomjs'可执行文件需要在PATH中。

     

中忽略了异常      

>

     

追踪(最近一次呼叫最后一次):

     

文件“c:Python34 \ lib \ site-packages \ selenium \ webdriver \ common \ service.py”,第136行, del self.stop()

     

文件“c:Python34 \ lib \ site-packages \ selenium \ webdriver \ common \ service.py”,第117行,停止

     

如果self.process是None:

     

AttributeError:'Service'对象没有属性'process'

我该如何解决?

2 个答案:

答案 0 :(得分:6)

问题是路径中缺少 exe扩展程序

试试这个:

from selenium import webdriver
phantomjs_path = r'C:\Phantom\phantomjs-2.0.0-windows\bin\phantomjs.exe'
browser = webdriver.PhantomJS(phantomjs_path)

答案 1 :(得分:0)

  1. 提供phantomjs.exe路径 driver = webdriver.PhantomJS(' ./ phantomjs.exe')
  2. 将您的selenium版本升级到最新版本,然后尝试运行它