2017-06-19 51 views
0

我将geckodriver.exe添加到PATH中,你可以在this image 上看到,我之后重新启动了我的电脑。但是错误仍然显示出来。Python 3.5 - “Geckodriver可执行文件需要在路径中”

这里是我的代码:

from selenium import webdriver 

driver = webdriver.Firefox() 
driver.get('https://stackoverflow.com') 

你想过我做错了什么线索?

+1

你介意发布错误吗? – cjonesrun

+0

[Selenium使用Python - Geckodriver可执行文件需要在PATH中]可能的重复(https://stackoverflow.com/questions/40208051/selenium-using-python-geckodriver-executable-needs-to-be-in-path) – Andersson

+0

在windows中,创建环境变量“webdriver.gecko.driver”并将驱动程序路径(“c:\ geckodriver.exe”)设置为值。 – Murthi

回答

0

有三种方法可以解决此错误。

  1. 下载gecko驱动程序并将其保存在python测试脚本所在的目录中。
  2. 将驱动程序路径的环境变量“webdriver.gecko.driver”设置为值。 os.environ["webdriver.gecko.driver"]="c:\geckodriver.exe"

  3. 传递给构造函数的可执行文件路径类似driver = WebDriver.Firefox("path of executable")

0

这里是回答你的问题:

我没有看到在你的代码块中的任何显著错误。 在使用Selenium 3.4.3,geckodriver v0.17.0,Mozilla Firefox 53.0以及Python 3.6.1时,您可以考虑下载geckodriver并将其保存在机器的任何位置,并通过executable_path配置geckodriver的绝对路径。

需要指出的是,当前的Selenium-Python绑定与geckodriver不稳定,并且看起来是架构特定的。你可以在这里找到github discussionmerge。所以,你可能还需要通过Firefox的二进制文件的绝对路径作为firefox_binary参数在初始化webdriver的

这里是我的最终执行好自己的代码块:

from selenium import webdriver 
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary 

binary = FirefoxBinary('C:\\Program Files\\Mozilla Firefox\\firefox.exe') 
driver = webdriver.Firefox(firefox_binary=binary, executable_path="C:\\Utility\\BrowserDrivers\\geckodriver.exe") 
driver.get('https://stackoverflow.com') 

设我知道这个答案你的问题。

+0

感谢您的回答,但它现在说:“WebDriverException:无法找到匹配的功能集” – Hobsido

+0

@Hobsido您能否考虑确保您提供了'firefox.exe'和'geckodriver.exe'的正确绝对路径?您使用Linux或Windows的系统是哪个?谢谢 – DebanjanB

+0

我在Windows上工作,我检查:两个路径都是正确的 – Hobsido

0

您是否正确设置了功能?如果您正在设置版本功能,请确认它是否正确或完全删除。我在谈论如下:capabilities.SetCapability(“version”,“50.0”);