Class: Selenium::WebDriver::Driver
- Inherits:
-
Object
- Object
- Selenium::WebDriver::Driver
- Includes:
- Find
- Defined in:
- lib/selenium/webdriver/driver.rb
Overview
The main class through which you control the browser.
See Also:
Constant Summary
Constants included from Find
Instance Attribute Summary collapse
-
#bridge ⇒ Object
readonly
Returns the value of attribute bridge.
Class Method Summary collapse
-
.for(browser, *args) ⇒ Driver
Create a new Driver instance with the correct bridge for the given browser.
Instance Method Summary collapse
-
#[](sel) ⇒ WebDriver::Element
Get the first element matching the given selector.
-
#close ⇒ Object
Close the current window, or the browser if no windows are left.
-
#current_url ⇒ String
Get the URL of the current page.
-
#execute_script(script, *args) ⇒ WebDriver::Element, ...
(also: #script)
Execute the given JavaScript.
-
#get(url) ⇒ Object
Opens the specified URL in the browser.
-
#initialize(bridge) ⇒ Driver
constructor
private
A new Driver instance with the given bridge.
- #inspect ⇒ Object
- #manage ⇒ Options
- #navigate ⇒ Navigation
-
#page_source ⇒ String
Get the source of the current page.
-
#quit ⇒ Object
Quit the browser.
-
#ref ⇒ Object
for Find.
- #switch_to ⇒ TargetLocator
-
#title ⇒ String
Get the title of the current page.
-
#visible=(bool) ⇒ Object
Set the visibility of the browser.
-
#visible? ⇒ Boolean
Get the visibility of the browser.
-
#window_handle ⇒ String
Get the current window handle.
-
#window_handles ⇒ Array
Get the window handles of open browser windows.
Methods included from Find
#find_element , #find_elements
Constructor Details
#initialize(bridge) ⇒ Driver
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
A new Driver instance with the given bridge
61 62 63 64 65 66 67 68
# File 'lib/selenium/webdriver/driver.rb', line 61 def initialize(bridge) @bridge = bridge # TODO: refactor this away unless @bridge.driver_extensions.empty? extend(*@bridge.driver_extensions) end end
Instance Attribute Details
#bridge ⇒ Object (readonly)
Returns the value of attribute bridge.
16 17 18
# File 'lib/selenium/webdriver/driver.rb', line 16 def bridge @bridge end
Class Method Details
.for(browser, *args) ⇒ Driver
Create a new Driver instance with the correct bridge for the given browser
Examples:
Driver .for :firefox, :profile => "some-profile"
Driver .for :firefox, :profile => Profile.new
Driver .for :remote, :url => "http://localhost:4444/wd/hub", :desired_capabilities => caps
Parameters:
-
browser
(:ie, :internet_explorer, :remote, :chrome, :firefox, :ff)
—
the driver type to use
-
*rest
—
arguments passed to Bridge.new
Returns:
- (Driver )
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
# File 'lib/selenium/webdriver/driver.rb', line 37 def for(browser, *args) bridge = case browser when :ie, :internet_explorer IE ::Bridge .new (*args) when :remote Remote ::Bridge .new (*args) when :chrome Chrome ::Bridge .new (*args) when :firefox, :ff Firefox ::Bridge .new (*args) else raise ArgumentError, "unknown driver: #{browser.inspect}" end new(bridge) end
Instance Method Details
#[](sel) ⇒ WebDriver::Element
Get the first element matching the given selector. If given a String or Symbol, it will be used as the id of the element.
Parameters:
-
id
(String , Hash)
—
or selector
Returns:
-
(WebDriver::Element )
—
driver #=> #<WebDriver::Element:0x1011c3b88> driver[:tag_name => ‘div’] #=> #<WebDriver::Element:0x1011c3b88>
242 243 244 245 246 247 248
# File 'lib/selenium/webdriver/driver.rb', line 242 def [](sel) if sel.kind_of?(String ) || sel.kind_of?(Symbol) sel = { :id => sel } end find_element sel end
#close ⇒ Object
Close the current window, or the browser if no windows are left.
171 172 173
# File 'lib/selenium/webdriver/driver.rb', line 171 def close bridge.close end
#current_url ⇒ String
Get the URL of the current page
Returns:
- (String )
115 116 117
# File 'lib/selenium/webdriver/driver.rb', line 115 def current_url bridge.getCurrentUrl end
#execute_script(script, *args) ⇒ WebDriver::Element , ... Also known as: script
Execute the given JavaScript
Parameters:
-
script
(String )
—
JavaScript source to execute
-
*args
(WebDriver::Element , Integer, Float, Boolean, NilClass, String , Array)
—
Arguments will be available in the given script as the ‘arguments’ array.
Returns:
-
(WebDriver::Element , Integer, Float, Boolean, NilClass, String , Array)
—
The value returned from the script.
208 209 210
# File 'lib/selenium/webdriver/driver.rb', line 208 def execute_script(script, *args) bridge.executeScript(script, *args) end
#get(url) ⇒ Object
Opens the specified URL in the browser.
105 106 107
# File 'lib/selenium/webdriver/driver.rb', line 105 def get(url) navigate.to(url) end
#inspect ⇒ Object
70 71 72
# File 'lib/selenium/webdriver/driver.rb', line 70 def inspect '#<%s:0x%x browser=%s>' % [self.class, hash*2, bridge.browser.inspect] end
#manage ⇒ Options
#navigate ⇒ Navigation
79 80 81
# File 'lib/selenium/webdriver/driver.rb', line 79 def navigate @navigate ||= WebDriver ::Navigation .new (self) end
#page_source ⇒ String
Get the source of the current page
Returns:
- (String )
135 136 137
# File 'lib/selenium/webdriver/driver.rb', line 135 def page_source bridge.getPageSource end
#quit ⇒ Object
Quit the browser
163 164 165
# File 'lib/selenium/webdriver/driver.rb', line 163 def quit bridge.quit end
#ref ⇒ Object
for Find
257 258 259
# File 'lib/selenium/webdriver/driver.rb', line 257 def ref nil end
#switch_to ⇒ TargetLocator
88 89 90
# File 'lib/selenium/webdriver/driver.rb', line 88 def switch_to @switch_to ||= WebDriver ::TargetLocator .new (self) end
#title ⇒ String
Get the title of the current page
Returns:
- (String )
125 126 127
# File 'lib/selenium/webdriver/driver.rb', line 125 def title bridge.getTitle end
#visible=(bool) ⇒ Object
Set the visibility of the browser. Not applicable for all browsers.
Parameters:
- (Boolean)
155 156 157
# File 'lib/selenium/webdriver/driver.rb', line 155 def visible=(bool) bridge.setBrowserVisible bool end
#visible? ⇒ Boolean
Get the visibility of the browser. Not applicable for all browsers.
Returns:
- (Boolean)
145 146 147
# File 'lib/selenium/webdriver/driver.rb', line 145 def visible? bridge.getBrowserVisible end
#window_handle ⇒ String
Get the current window handle
Returns:
- (String )
192 193 194
# File 'lib/selenium/webdriver/driver.rb', line 192 def window_handle bridge.getCurrentWindowHandle end
#window_handles ⇒ Array
Get the window handles of open browser windows.
182 183 184
# File 'lib/selenium/webdriver/driver.rb', line 182 def window_handles bridge.getWindowHandles end