Reputation: 71
I'm trying to run a selenium ruby file (.rb) through command prompt in linux. I just need to launch chrome and get a url. So I downloaded and have Selenium-serverstandalone-2.37.0.jar and chromedriver (extracted from chromedriver_linux(32)) in the same directory (/home/). And I have set my path pointing to chromedriver also. I'm a starter, so pl let me know if I'm missing something here.
This is my test.rb file:
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
Whe I run it, it throws this error:
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.
Please guide me how to proceed!
Upvotes: 1
Views: 1875
Reputation: 71
Finally I got it working!! Switching to older version of selenium-standalone-server did the trick.
Upvotes: 0
Reputation: 54684
It is not enough to place the chromedriver
executable in the same directory. You have to make sure that it is in a directory that is in your $PATH
. You could put it in /usr/local/bin
and make sure that /usr/local/bin
is in $PATH
.
You can check if /usr/local/bin
already is in your $PATH
with
echo $PATH | grep "/usr/local/bin"
if this outputs nothing, you need to add the following line to your shell config (e.g. ~/.bashrc
if you're using Bash):
export PATH=/usr/local/bin:$PATH
then restart your shell and check again.
Upvotes: 1