Module: Watir::Browser
- Defined in:
- lib/watir-classic/browser.rb
Overview
Watir is a family of open-source drivers for automating web browsers. You can use it to write tests that are easy to read and maintain.
Watir drives browsers the same way people do. It clicks links, fills in forms, presses buttons. Watir also checks results, such as whether expected text appears on a page.
The Watir family currently includes support for Internet Explorer (on Windows), Firefox (on Windows, Mac and Linux) and Safari (on Mac).
Project Homepage: wtr.rubyforge.org
This Browser module provides a generic interface that tests can use to access any browser. The actual browser (and thus the actual Watir driver) is determined at runtime based on configuration settings.
require 'watir-classic'
browser = Watir::Browser.new
browser.goto 'http://google.com'
browser.text_field(:name, 'q').set 'pickaxe'
browser.(:name, 'btnG').click
if browser.text.include? 'Programming Ruby'
puts 'Text was found'
else
puts 'Text was not found'
end
A comprehensive summary of the Watir API can be found here wiki.openqa.org/display/WTR/Methods+supported+by+Element
There are two ways to configure the browser that will be used by your tests.
One is to set the watir_browser
environment variable to ie
or firefox
. (How you do this depends on your platform.)
The other is to create a file that looks like this.
browser: ie
And then to add this line to your script, after the require statement and before you invoke Browser.new.
Watir. = 'path/to/the/file/you/just/created'
Constant Summary collapse
- @@browser_classes =
{}
- @@sub_options =
{}
- @@default =
nil
Class Method Summary collapse
-
.attach(how, what) ⇒ Object
Attach to an existing browser.
-
.browser_names ⇒ Object
Returns the names of the browsers that are supported by this module.
- .default ⇒ Object
-
.default=(option) ⇒ Object
Specifies a default browser.
- .klass ⇒ Object
-
.new(ignored = nil) ⇒ Object
Create a new instance of a browser driver, as determined by the configuration settings.
- .options ⇒ Object
- .set_options(options) ⇒ Object
-
.start(url) ⇒ Object
Create a new instance as with #new and start the browser on the specified url.
-
.support(hash_args) ⇒ Object
Add support for the browser option, using the specified class, provided as a string.
Class Method Details
.attach(how, what) ⇒ Object
Attach to an existing browser.
74 75 76 77 |
# File 'lib/watir-classic/browser.rb', line 74 def attach(how, what) klass.attach(how, what) end |
.browser_names ⇒ Object
Returns the names of the browsers that are supported by this module. These are the options for ‘watir_browser’ (env var) or ‘browser:’ (yaml).
120 121 122 |
# File 'lib/watir-classic/browser.rb', line 120 def browser_names @@browser_classes.keys end |
.default ⇒ Object
111 112 113 |
# File 'lib/watir-classic/browser.rb', line 111 def default @@default end |
.default=(option) ⇒ Object
Specifies a default browser. Must be specified before options are parsed.
115 116 117 |
# File 'lib/watir-classic/browser.rb', line 115 def default= option @@default = option end |
.klass ⇒ Object
87 88 89 90 |
# File 'lib/watir-classic/browser.rb', line 87 def klass key = Watir.[:browser] eval @@browser_classes[key] # this triggers the autoload end |
.new(ignored = nil) ⇒ Object
Create a new instance of a browser driver, as determined by the configuration settings. (Don’t be fooled: this is not actually an instance of Browser class.)
63 64 65 66 |
# File 'lib/watir-classic/browser.rb', line 63 def new ignored=nil # argument is needed to make watir-classic more compatible with watir-webdriver klass.new end |
.options ⇒ Object
82 83 84 85 |
# File 'lib/watir-classic/browser.rb', line 82 def return {} unless klass.respond_to?(:options) klass. end |
.set_options(options) ⇒ Object
78 79 80 81 |
# File 'lib/watir-classic/browser.rb', line 78 def return unless klass.respond_to?(:set_options) klass. end |
.start(url) ⇒ Object
Create a new instance as with #new and start the browser on the specified url.
69 70 71 72 |
# File 'lib/watir-classic/browser.rb', line 69 def start url klass.start url end |
.support(hash_args) ⇒ Object
Add support for the browser option, using the specified class, provided as a string. Optionally, additional options supported by the class can be specified as an array of symbols. Options specified by the user and included in this list will be passed (as a hash) to the set_options class method (if defined) before creating an instance.
97 98 99 100 101 102 103 104 105 106 107 108 109 |
# File 'lib/watir-classic/browser.rb', line 97 def support hash_args option = hash_args[:name] class_string = hash_args[:class] = hash_args[:options] library = hash_args[:library] gem = hash_args[:gem] || library @@browser_classes[option] = class_string @@sub_options[option] = autoload class_string, library activate_gem gem, option end |