Skip to content

Instantly share code, notes, and snippets.

@maxivak
Last active September 25, 2022 20:55
Show Gist options
  • Save maxivak/c961800c3b898cd6a56c to your computer and use it in GitHub Desktop.
Save maxivak/c961800c3b898cd6a56c to your computer and use it in GitHub Desktop.
Selenium tests on Ruby

Selenium tests on Ruby

Install

gems:

  • gem 'capybara', '2.10.1'
  • gem 'selenium-webdriver', '3.0.3'

Selenium

Install Selenium

Selenium and Firefox

We will use selenium-webdriver version '3.0.3' which needs Firefox version 50.0.2.

!!! IMPORTANT!!! Check selenium gem version is compatible with Firefox version.

Install geckodriver

change URL to download - find here: https://github.com/mozilla/geckodriver/releases

cd /tmp
wget https://github.com/mozilla/geckodriver/releases/download/v0.11.1/geckodriver-v0.11.1-linux64.tar.gz
  • unzip
tar -xvzf geckodriver-v0.11.1-linux64.tar.gz
rm geckodriver-v0.11.1-linux64.tar.gz
  • copy to bin directory
sudo mv geckodriver /usr/bin
sudo chmod +x /usr/bin/geckodriver

Test with Selenium-webdriver

require 'rubygems'
require 'selenium-webdriver'

driver = Selenium::WebDriver.for :firefox
driver.manage.timeouts.implicit_wait = 10 # seconds

driver.get "http://stackoverflow.com"

puts "Page title is #{driver.title}"

driver.quit

Test with Capybara

require 'rubygems'
require 'capybara'
require 'capybara/dsl'

Capybara.run_server = false
Capybara.current_driver = :selenium
Capybara.app_host = 'http://stackoverflow.com'
#Capybara.server_port = 3000

module MyCapybaraTest
  class Test
    include Capybara::DSL
    
    def test
      visit('http://stackoverflow.com')
      
      puts "Page title is #{page.title}"
    end
  end
end



t = MyCapybaraTest::Test.new
t.test

Headless test

require 'selenium-webdriver'
require 'headless'


headless = Headless.new(display: 99)
headless.start

driver = Selenium::WebDriver.for :firefox
driver.navigate.to 'http://stackoverflow.com'
puts driver.title

headless.destroy
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment