我正在尝试通过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.
请指导我如何继续!
答案 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就可以了。