Contents
Watir Browser
# start new driver session
b = Watir::Browser.new :firefox
b = Watir::Browser.new :chrome
b = Watir::Browser.new :ie
# goto url
b.goto "http://relevantcodes.com"
# refresh
b.refresh
# close
b.quit
Watir Textbox
# enter value
b.text_field(:id => "text").set "watir-webdriver"
# get value
b.text_field(:id => "text").value
# clear
b.text_field(:id => "text").clear
Watir Button
# is enabled?
b.button(:id => "btn").enabled?
# button's text
b.button(:id => "btn").text
# click
b.button(:id => "btn").click
Watir Checkbox
# check
b.checkbox(:id => "btn").set
b.checkbox(:id => "btn").set(true)
# uncheck
b.checkbox(:id => "btn").clear
b.checkbox(:id => "btn").set(false)
# is checked?
b.checkbox(:id => "btn").set?
Watir Listbox
# select from list text
b.select_list(:id => "list").select "var"
# select using value
b.select_list(:id => "list").select_value "var2"
# value is selected?
b.select_list(:id => "list").selected?("var2")
# get value
puts b.select_list(:id => "list").value
# get all items
b.select_list(:id => "list").options.each do |i|
puts "#{i.text}"
end
Watir Radio
# select value
b.radio(:id => "radio").set
# is var selected?
b.radio(:id => "radio").set?
Watir Image
# is image loaded?
b.image(:src => "img.gif").loaded?
# height
b.image(:src => "img.gif").height
# width
b.image(:src => "img.gif").width
# click
b.image(:src => "img.gif").click
# click 1st image
b.images[0].click
Watir Div
# get text
b.div(:class => "body").text
# get text of 2nd div when it appears
b.divs[1].when_present.text
Watir Table
# row 1, col 1
b.table(:id => "table")[0][0].text
# row 1, col 2 (alternate)
b.table(:id => "table").tr{0}.cell{1}.text
# row 2 - entire text
puts b.table(:id => "table")[1].text
# click row #4
puts b.table(:id => "table")[3].click
# get column count
b.table(:id => "table").row.cells.length
# row count
b.table(:id => "table").row_count
b.table(:id => "table").rows.length
Watir General
# [exists?]
b.text_field(:id => "text").exists?
# [enabled?]
b.select_list(:id => "list").enabled?
# [present?]
b.element(:id => "e").present?
# [tag_name]
b.element(:id => "e").tag_name
# [screenshot]
b.screenshot.save "c:\\page.png"
# [to_subtype] # returns button
b.element(:id => "btn").to_subtype
# [index] click 2nd image on page
b.image(:index => 1).click
# [loops]
# get names of all text-fields
b.text_fields.each do |i|
puts i.name
end
# get name of first text-field
puts b.text_fields[0].name
# get name of second text-field
puts b.text_fields[1].name
Watir Waiting
# [wait_until_present]
b.button(:id => "btn").when_until_present
# [when_present]
b.button(:id => "btn").when_present.click
b.button(:id => "btn").when_present(10).click
# [wait_while_present]
b.button(:value => "submit").click
b.button(:value => "submit").wait_while_present
# [implicit wait] 5 seconds
# good to have, but i don't recommend its global use
b.driver.manage.timeouts.implicit_wait = 5