Selenium ruby​​脚本在使用chromedriver时失败了

时间:2013-12-19 10:15:00

标签: ruby selenium rspec selenium-chromedriver

我正在尝试通过linux中的命令提示符运行selenium ruby​​文件(.rb)。我只需要启动chrome并获取网址。所以我下载并在同一目录(/ home /)中安装了Selenium-serverstandalone-2.37.0.jar和chromedriver(从chromedriver_linux(32)中提取)。而且我也设定了指向chromedriver的道路。我是首发,所以如果我在这里错过了什么,请告诉我。

这是我的test.rb文件:

require "selenium-webdriver"
require "rspec"
include RSpec::Expectations

describe "TestScript" do

  before(:each) do
    @driver = Selenium::WebDriver.for :chrome
    @base_url = "http://www.google.com"
    @accept_next_alert = true
    @driver.manage.timeouts.implicit_wait = 5
    @verification_errors = []
  end

  after(:each) do
    @driver.quit
    @verification_errors.should == []
  end

  it "test_script" do
    @driver.get(@base_url)
    puts "Logged in"
    if(element_present?(:link, "Home"))
    puts "Home page is detected"
  end
   puts "Logging out"
 end

def element_present?(how, what)
    @driver.find_element(how, what)
    true
    rescue Selenium::WebDriver::Error::NoSuchElementError
    false
end

def verify(&blk)
  yield
  rescue ExpectationNotMetError => ex
  @verification_errors << ex
end

当我运行它时,它会抛出此错误:

NoMethodError: undefined method 'quit' for Nil:NilClass occured at /home/test.rb

 Failure/Error: @driver = Selenium::WebDriver.for :chrome
 Selenium::WebDriver::Error::WebDriverError:
 Unable to find the chromedriver executable. Please download the server from http://chromedriver.storage.googleapis.com/index.html and place it somewhere on your path.

请指导我如何继续!

2 个答案:

答案 0 :(得分:1)

仅将chromedriver可执行文件放在同一目录中是不够的。您必须确保它位于$PATH中的目录中。您可以将其放在/usr/local/bin中,并确保/usr/local/bin位于$PATH

您可以使用

检查/usr/local/bin中是否已$PATH
echo $PATH | grep "/usr/local/bin"

如果没有输出任何内容,则需要在shell配置中添加以下行(例如~/.bashrc如果您正在使用Bash):

export PATH=/usr/local/bin:$PATH

然后重新启动shell并再次检查。

答案 1 :(得分:0)

最后我开始工作!!切换到旧版本的selenium-standalone-server就可以了。