使用selenium-webdriver时收到错误。无法找到mozilla geckodriver

时间:2017-06-11 16:47:35

标签: ruby selenium-webdriver rspec geckodriver

关于如何在Ruby中使用RSpec,我正在关注tutorial。 我们正在学习如何使用webdriver,但是当我尝试运行项目时收到错误。我想知道你能看到我错过了什么吗?谢谢

首先,我会告诉你更多关于项目背景的信息。

我正在使用IDE Jetbrains RubyMine来构建项目。 我安装了以下版本的所需程序:

Ruby 2.2.6
Rspec 3.6
selenium-webdriver 3.0.0

我已使用以下代码设置了Rspec测试:

require 'rspec'
require 'selenium-webdriver'

describe 'My zoo site' do

  it 'should open browser and click on contact' do
    # create a webdriver driver
    driver = Selenium::WebDriver.for(:firefox)

  end
end

当我运行此测试代码时,出现以下错误:

Selenium::WebDriver::Error::WebDriverError:         

Unable to find Mozilla geckodriver. 

Please download the server from https://github.com/mozilla/geckodriver/releases 
and place it somewhere on your PATH. 

More info at https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver.

因此,在看到此错误后,我按照指示前往geckodriver releases url,并为windows 32bit下载了geckodriver-v0.17.0文件。

我将名为geckodriver.exe的exectuable文件放在以下目录中:C:\ geckodriver \ geckodriver.exe

然后我进入了我的电脑 - >属性 - >高级系统设置 - >环境变量 - >路径(在系统变量中)我添加了C:\ geckodriver \ geckodriver.exe

然而,我仍然得到同样的错误。 我找到了一个similar question here,但解决了#34;安装selenium-webdriver版本2.53.0"没有为我解决。 (另请注意:我的Firefox版本是53.0.3。)

我错过了什么吗?感谢

2 个答案:

答案 0 :(得分:1)

您可以通过使用以下命令输出路径来检查命令行中的路径(可能是cmd.exe)来解决此问题:

echo %path%

对于像git bash这样的东西,它可能更像是:

echo $PATH

无论如何,IMO它与您放入PATH的内容有关。 通常,你只需将目录放在那里,即。你只需说C:\geckodriver\并省略可执行文件。

只要您可以从您的CMD拨打geckodriver,RSpec也应该能够。

答案 1 :(得分:0)

将您的可执行文件与您的代码放在同一目录中。然后将可执行路径参数添加到您的 Firefox 对象中

myDriver=driver.Firefox(executable_path=os.getcwd()+"/geckodriver")

myDriver.get("someUrl.blabla") #Do something

只要确保你有操作系统导入

这样您就永远不必担心它是否在您的路径中。因为它已经在你的目录中了。如果您想与某人共享它或在另一台机器上运行它,这会让事情变得更容易。