Firefox驱动程序无法使用FF49和Python

时间:2016-11-06 23:08:27

标签: python selenium firefox selenium-webdriver geckodriver

我在Python中使用了Selenium Webdriver脚本。但是我得到了错误:

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

caps = DesiredCapabilities.FIREFOX
caps["marionette"] = True
driver = webdriver.Firefox(capabilities=caps)

driver.get("http://www.mahsumakbas.net")

print driver.title

driver.close()

错误是:

  

Traceback(最近一次调用最后一次):文件   " C:\买合苏木\ DevelopmentWorkSpace \ Eclipse的\爪哇\ selenium_proj \ SRC \ hello.py&#34 ;,   第6行,在       driver = webdriver.Firefox(capabilities = caps)File" C:\ Python27 \ lib \ site-packages \ selenium \ webdriver \ firefox \ webdriver.py",   第135行,在 init 中       self.service.start()File" C:\ Python27 \ lib \ site-packages \ selenium \ webdriver \ common \ service.py",   第71行,开始       os.path.basename(self.path),self.start_error_message)selenium.common.exceptions.WebDriverException:消息:' geckodriver'   可执行文件需要在PATH中。

     

例外属性错误:"'服务'对象没有属性   '处理'"在>   忽略

Selenium Webdriver版本是: 3.0.1
Firefox: 49.0.2
geckodriver: v0.11.1-win64

我在Windows PATH变量中添加了geckodriver路径。

问题出在哪里?

4 个答案:

答案 0 :(得分:2)

你可以将'geckodriver'.exe放在Python的基本路径中,它会起作用。

或者,如果您希望拥有一个干净的Python文件夹,则必须在初始化时声明geckodriver的路径。每次运行脚本时都可以执行此操作,或者按照自己的说法执行PATH。正如Naveen建议的那样,在正确保存PATH之前必须重新启动。您也可以尝试在Windows命令行中运行它:

setx path "%path%;c:\path\to\geckodriver-folder"

答案 1 :(得分:0)

最终代码就像跟随和工作:

binary = FirefoxBinary("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe")
driver = webdriver.Firefox(firefox_binary=binary)

将没有文件名的geckodriver.exe的路径(仅放置它的文件夹)设置为PATH vairable。

这一次,我有另一个问题:

driver.close()并没有关闭Firefox。
当更改为 driver.quit()时,它会关闭,但控制台上会出现以下行:

  

' NoneType'对象没有属性'路径'

没有任何指示器显示它是警告或错误。只是排队。

答案 2 :(得分:0)

尝试添加firefox个人资料

tce=loop1

答案 3 :(得分:0)

from selenium import webdriver

# To Run on FireFox Browser
self.driver = webdriver.Firefox(executable_path="C:/Drivers/geckodriver.exe")

driver.get("http://www.mahsumakbas.net")

print(driver.title)
driver.close()