CSC/ECE 517 Fall 2014/ch1a 19 mx
Watir
Introduction
Watir(Web Application Test in Ruby), pronounced water, is an automated test tool which uses the Ruby scripting language to drive the Internet Explorer web browser. It allows you to write tests that are easy to read and maintain. It is simple and flexible. Watir was primarily developed by Bret Pettichord and Paul Rogers. It drives Internet Explorer, Firefox, Chrome, Opera and Safari, and is available as a RubyGems gem. Watir is a toolkit for automated tests to be developed and run against a web browser.
Watir project consists of several smaller projects. The most important ones are watir-classic, watir-webdriver and watirspec.
Watir-classic
Watir-webdriver
Watirspec
Watirspec is executable specification of the Watir API, like RubySpec is for Ruby.
Overview
Web Application Testing
Why Ruby
Installation
Make It Run
All examples are designed to work on the live Watir demo form: http://bit.ly/watir-example.
Run in .rb
You can require Ruby Watir gem first via the -rubygems command line option or by using the RUBYOPT environment variable. You can also require it manually in your script: require 'rubygems'
Including Watir gem to drive Internet Explorer on Windows require 'watir'
Including Watir-WebDriver gem to drive Firefox/Chrome on Windows/Mac/Linux require 'watir-webdriver'
Starting a new browser & and going to our site browser = Watir::Browser.new browser.goto 'http://bit.ly/watir-example'
Setting a text field
browser.text_field(:name => 'entry.0.single').set 'Watir'
Setting a multi-line text box
browser.text_field(:name => 'entry.1.single').set "I come here from Australia. \n The weather is great here."
Setting and clearing a radio button
browser.radio(:value => 'Watir').set browser.radio(:value => 'Watir').clear
Setting and clearing check boxes
browser.checkbox(:value => 'Ruby').set browser.checkbox(:value => 'Python').set browser.checkbox(:value => 'Python').clear
Clearing, getting and selecting selection list values
browser.select_list(:name => 'entry.6.single').clear puts browser.select_list(:name => 'entry.6.single').options browser.select_list(:name => 'entry.6.single').select 'Chrome'
Clicking a button
browser.button(:name => 'submit').click
Checking for text in a page
puts browser.text.include? 'Your response has been recorded.'
Checking the title of a page
puts browser.title == 'Thanks!'
Run in Rspec
RSpec is a Behaviour-Driven Development tool for Ruby programmers. BDD is an approach to software development that combines Test-Driven Development, Domain Driven Design, and Acceptance Test-Driven Planning. RSpec helps you do the TDD part of that equation, focusing on the documentation and design aspects of TDD. The following code demonstrates using Watir and a basic RSpec example. More Info.[1]
1. Install
gem install rspec
2. Example
rspec test_spec.rb
will execute the following rspec example …
test_spec.rb
require "rubygems" require "rspec" require "watir-webdriver" describe "google.com" do
let(:browser) { @browser ||= Watir::Browser.new :firefox } before { browser.goto "http://google.com" } after { browser.close } if "should search for watir" do browser.text_field(:name => "q").set "watir" browser.button.click browser.div(:id => "resultStats").wait_until_present browser.title.should == "watir - Google Search" end
end