Selenium-Webdriver
What is Selenium- Webdriver?
•  WebDriver  is  a  tool  for  wri0ng  automated  tests  of   websites   •  selenium-­‐webdriver  gem  provides  Ruby  bindings  for   WebDriver   •  Provides  mul0-­‐browser  tes0ng  capabili0es   •  current  version  is  2.41.0   •  wiki  link:   hDps://code.google.com/p/selenium/wiki/ RubyBindings    
Browser  support:     •  IE  6,7,8,9,  and  10   •  Firefox   •  Safari  5.1+  and  only  runs  on  OS  X   •  Opera  12.x  and  older  versions     •  Chrome    
Example1:     require "selenium-webdriver" driver = Selenium::WebDriver.for :firefox driver.get "http://www.paynearme.com/" sleep 2 puts driver.title driver.quit  
Finding  element:   HOW   SYMBOL   SHORTCUT   class  name   :class_name   :class     css  selector   :css   id   :id   link  text   :link_text   :link     Name   :name   par0al  link  text     :par0al_link_text   tag  name     :tag_name   Xpath     :xpath    
Example  2:     require "selenium-webdriver" driver = Selenium::WebDriver.for :firefox driver.get "http://www.paynearme.com/" driver.find_element(:class => "f_l").click driver.find_element(:css => "#merchant_button").click driver.find_element(:id => "logo_col").click driver.find_element(:link => "Businesses").click driver.find_element(:partial_link_text => "started").click driver.find_element(:link => "Sign Up").click driver.find_element(:tag_name, 'span').text driver.quit  
Browser  Window:     # repositionning and resizing browser window: driver.manage.window.move_to(300, 400) driver.manage.window.resize_to(500, 800) driver.manage.window.maximize   Example3:   require "selenium-webdriver" driver = Selenium::WebDriver.for :firefox driver.get "http://www.paynearme.com/" sleep 2 driver.manage.window.maximize driver.quit  
Javascript  support:   Example4:   require "selenium-webdriver" driver = Selenium::WebDriver.for :firefox driver.get "http://www.paynearme.com/" puts driver.execute_script("return window.location.pathname") puts driver.execute_script("return document.body.childElementCount") # pass elements between Ruby and JavaScript element = driver.execute_script("return document.body") puts driver.execute_script("return arguments[0].tagName", element) driver.quit
Frames  support:     Example5:   require "selenium-webdriver" driver = Selenium::WebDriver.for :firefox driver.get "http://www.paynearme.com/" driver.find_element(:link => "Businesses").click driver.find_element(:partial_link_text => "started").click driver.find_element(:link=> "Sign Up").click driver.switch_to.frame("get_started_frame") driver.find_element(:name => "first_name").location_once_scrolled_into_view driver.find_element(:name => "first_name").send_keys("hardik") driver.quit
Wai0ng:     wait = Selenium::WebDriver::Wait.new(:timeout => 10) # seconds wait.until { driver.find_element(:id => "foo") } Safari  example:   require "selenium-webdriver" driver = Selenium::WebDriver.for :safari driver.get "http://www.paynearme.com/" sleep 2 puts driver.title driver.quit  

Selenium webdriver

  • 1.
  • 2.
  • 3.
    •  WebDriver  is  a  tool  for  wri0ng  automated  tests  of   websites   •  selenium-­‐webdriver  gem  provides  Ruby  bindings  for   WebDriver   •  Provides  mul0-­‐browser  tes0ng  capabili0es   •  current  version  is  2.41.0   •  wiki  link:   hDps://code.google.com/p/selenium/wiki/ RubyBindings    
  • 4.
    Browser  support:     •  IE  6,7,8,9,  and  10   •  Firefox   •  Safari  5.1+  and  only  runs  on  OS  X   •  Opera  12.x  and  older  versions     •  Chrome    
  • 5.
    Example1:     require"selenium-webdriver" driver = Selenium::WebDriver.for :firefox driver.get "http://www.paynearme.com/" sleep 2 puts driver.title driver.quit  
  • 6.
    Finding  element:   HOW   SYMBOL   SHORTCUT   class  name   :class_name   :class     css  selector   :css   id   :id   link  text   :link_text   :link     Name   :name   par0al  link  text     :par0al_link_text   tag  name     :tag_name   Xpath     :xpath    
  • 7.
    Example  2:     require "selenium-webdriver" driver = Selenium::WebDriver.for :firefox driver.get "http://www.paynearme.com/" driver.find_element(:class => "f_l").click driver.find_element(:css => "#merchant_button").click driver.find_element(:id => "logo_col").click driver.find_element(:link => "Businesses").click driver.find_element(:partial_link_text => "started").click driver.find_element(:link => "Sign Up").click driver.find_element(:tag_name, 'span').text driver.quit  
  • 8.
    Browser  Window:     # repositionning and resizing browser window: driver.manage.window.move_to(300, 400) driver.manage.window.resize_to(500, 800) driver.manage.window.maximize   Example3:   require "selenium-webdriver" driver = Selenium::WebDriver.for :firefox driver.get "http://www.paynearme.com/" sleep 2 driver.manage.window.maximize driver.quit  
  • 9.
    Javascript  support:   Example4:   require "selenium-webdriver" driver = Selenium::WebDriver.for :firefox driver.get "http://www.paynearme.com/" puts driver.execute_script("return window.location.pathname") puts driver.execute_script("return document.body.childElementCount") # pass elements between Ruby and JavaScript element = driver.execute_script("return document.body") puts driver.execute_script("return arguments[0].tagName", element) driver.quit
  • 10.
    Frames  support:     Example5:   require "selenium-webdriver" driver = Selenium::WebDriver.for :firefox driver.get "http://www.paynearme.com/" driver.find_element(:link => "Businesses").click driver.find_element(:partial_link_text => "started").click driver.find_element(:link=> "Sign Up").click driver.switch_to.frame("get_started_frame") driver.find_element(:name => "first_name").location_once_scrolled_into_view driver.find_element(:name => "first_name").send_keys("hardik") driver.quit
  • 11.
    Wai0ng:     wait= Selenium::WebDriver::Wait.new(:timeout => 10) # seconds wait.until { driver.find_element(:id => "foo") } Safari  example:   require "selenium-webdriver" driver = Selenium::WebDriver.for :safari driver.get "http://www.paynearme.com/" sleep 2 puts driver.title driver.quit