Class: Selenium::WebDriver::Element
- Inherits:
-
Object
- Object
- Selenium::WebDriver::Element
- Includes:
- Find
- Defined in:
- lib/selenium/webdriver/common/element.rb
Constant Summary
Constants included from Find
Instance Attribute Summary collapse
-
#bridge ⇒ Object
readonly
Returns the value of attribute bridge.
Instance Method Summary collapse
- #==(other) ⇒ Object (also: #eql?)
-
#as_json(opts = nil) ⇒ Object
For Rails 3 - jonathanjulian.com/2010/04/rails-to_json-or-as_json/.
-
#attribute(name) ⇒ String?
(also: #[])
Get the value of a the given attribute of the element.
-
#clear ⇒ Object
Clear this element.
-
#click ⇒ Object
Click the element.
-
#displayed? ⇒ Boolean
Is the element displayed?.
-
#drag_and_drop_by(right_by, down_by) ⇒ Object
Drag and drop this element.
-
#drag_and_drop_on(other) ⇒ Object
Drag and drop this element on the given element.
-
#enabled? ⇒ Boolean
Is the element enabled?.
- #hash ⇒ Object
-
#hover ⇒ Object
Hover over this element.
-
#initialize(bridge, id) ⇒ Element
constructor
Creates a new Element.
- #inspect ⇒ Object
-
#location ⇒ WebDriver::Point
Get the location of this element.
-
#ref ⇒ Object
for Find and execute_script.
-
#select ⇒ Object
Select this element.
-
#selected? ⇒ Boolean
Is the element selected?.
-
#send_keys(*args) ⇒ Object
(also: #send_key)
Send keystrokes to this element.
-
#size ⇒ WebDriver::Dimension
Get the size of this element.
-
#style(prop) ⇒ Object
Get the value of the given CSS property.
-
#submit ⇒ Object
Submit this element.
-
#tag_name ⇒ String
Get the tag name of this element.
-
#text ⇒ String
Get the text content of this element.
-
#to_json(*args) ⇒ Object
Convert to a WebElement JSON Object for transmission over the wire.
-
#toggle ⇒ Object
Toggle this element.
-
#value ⇒ String
Get the value of this element.
Methods included from Find
Constructor Details
#initialize(bridge, id) ⇒ Element
Creates a new Element
14 15 16 |
# File 'lib/selenium/webdriver/common/element.rb', line 14 def initialize(bridge, id) @bridge, @id = bridge, id end |
Instance Attribute Details
#bridge ⇒ Object (readonly)
Returns the value of attribute bridge.
6 7 8 |
# File 'lib/selenium/webdriver/common/element.rb', line 6 def bridge @bridge end |
Instance Method Details
#==(other) ⇒ Object Also known as: eql?
22 23 24 |
# File 'lib/selenium/webdriver/common/element.rb', line 22 def ==(other) other.kind_of?(self.class) && bridge.elementEquals(self, other) end |
#as_json(opts = nil) ⇒ Object
For Rails 3 - jonathanjulian.com/2010/04/rails-to_json-or-as_json/
301 302 303 |
# File 'lib/selenium/webdriver/common/element.rb', line 301 def as_json(opts = nil) { :ELEMENT => @id } end |
#attribute(name) ⇒ String? Also known as: []
Get the value of a the given attribute of the element. Will return the current value, even if this has been modified after the page has been loaded. More exactly, this method will return the value of the given attribute, unless that attribute is not present, in which case the value of the property with the same name is returned. If neither value is set, nil is returned. The “style” attribute is converted as best can be to a text representation with a trailing semi-colon. The following are deemed to be “boolean” attributes, and will return either “true” or “false”:
async, autofocus, autoplay, checked, compact, complete, controls, declare, defaultchecked, defaultselected, defer, disabled, draggable, ended, formnovalidate, hidden, indeterminate, iscontenteditable, ismap, itemscope, loop, multiple, muted, nohref, noresize, noshade, novalidate, nowrap, open, paused, pubdate, readonly, required, reversed, scoped, seamless, seeking, selected, spellcheck, truespeed, willvalidate
Finally, the following commonly mis-capitalized attribute/property names are evaluated as expected:
class, readonly
85 86 87 |
# File 'lib/selenium/webdriver/common/element.rb', line 85 def attribute(name) bridge.getElementAttribute @id, name end |
#clear ⇒ Object
Clear this element
132 133 134 |
# File 'lib/selenium/webdriver/common/element.rb', line 132 def clear bridge.clearElement @id end |
#click ⇒ Object
Click the element
35 36 37 |
# File 'lib/selenium/webdriver/common/element.rb', line 35 def click bridge.clickElement @id end |
#displayed? ⇒ Boolean
Is the element displayed?
162 163 164 |
# File 'lib/selenium/webdriver/common/element.rb', line 162 def displayed? bridge.isElementDisplayed @id end |
#drag_and_drop_by(right_by, down_by) ⇒ Object
Drag and drop this element
235 236 237 |
# File 'lib/selenium/webdriver/common/element.rb', line 235 def drag_and_drop_by(right_by, down_by) bridge.dragElement @id, right_by, down_by end |
#drag_and_drop_on(other) ⇒ Object
Drag and drop this element on the given element
245 246 247 248 249 250 251 252 253 |
# File 'lib/selenium/webdriver/common/element.rb', line 245 def drag_and_drop_on(other) current_location = location() destination = other.location right = destination.x - current_location.x down = destination.y - current_location.y drag_and_drop_by right, down end |
#enabled? ⇒ Boolean
Is the element enabled?
142 143 144 |
# File 'lib/selenium/webdriver/common/element.rb', line 142 def enabled? bridge.isElementEnabled @id end |
#hash ⇒ Object
27 28 29 |
# File 'lib/selenium/webdriver/common/element.rb', line 27 def hash ref.hash end |
#hover ⇒ Object
Hover over this element. Not applicable to all browsers.
202 203 204 |
# File 'lib/selenium/webdriver/common/element.rb', line 202 def hover bridge.hoverOverElement @id end |
#inspect ⇒ Object
18 19 20 |
# File 'lib/selenium/webdriver/common/element.rb', line 18 def inspect '#<%s:0x%x id=%s tag_name=%s>' % [self.class, hash*2, @id.inspect, tag_name.inspect] end |
#location ⇒ WebDriver::Point
Get the location of this element.
212 213 214 |
# File 'lib/selenium/webdriver/common/element.rb', line 212 def location bridge.getElementLocation @id end |
#ref ⇒ Object
for Find and execute_script
280 281 282 |
# File 'lib/selenium/webdriver/common/element.rb', line 280 def ref @id end |
#select ⇒ Object
Select this element
170 171 172 |
# File 'lib/selenium/webdriver/common/element.rb', line 170 def select bridge.setElementSelected @id end |
#selected? ⇒ Boolean
Is the element selected?
152 153 154 |
# File 'lib/selenium/webdriver/common/element.rb', line 152 def selected? bridge.isElementSelected @id end |
#send_keys(*args) ⇒ Object Also known as: send_key
Send keystrokes to this element
Examples:
element.send_keys "foo" #=> value: 'foo'
element.send_keys "tet", :arrow_left, "s" #=> value: 'test'
element.send_keys [:control, 'a'], :space #=> value: ' '
113 114 115 116 117 118 119 120 121 122 123 124 125 |
# File 'lib/selenium/webdriver/common/element.rb', line 113 def send_keys(*args) args.each do |arg| case arg when Symbol arg = Keys[arg] when Array arg = arg.map { |e| e.kind_of?(Symbol) ? Keys[e] : e }.join arg << Keys[:null] end bridge.sendKeysToElement(@id, arg.to_s) end end |
#size ⇒ WebDriver::Dimension
Get the size of this element
222 223 224 |
# File 'lib/selenium/webdriver/common/element.rb', line 222 def size bridge.getElementSize @id end |
#style(prop) ⇒ Object
Get the value of the given CSS property
194 195 196 |
# File 'lib/selenium/webdriver/common/element.rb', line 194 def style(prop) bridge.getElementValueOfCssProperty @id, prop end |
#submit ⇒ Object
Submit this element
178 179 180 |
# File 'lib/selenium/webdriver/common/element.rb', line 178 def submit bridge.submitElement @id end |
#tag_name ⇒ String
Get the tag name of this element
45 46 47 |
# File 'lib/selenium/webdriver/common/element.rb', line 45 def tag_name bridge.getElementTagName @id end |
#text ⇒ String
Get the text content of this element
95 96 97 |
# File 'lib/selenium/webdriver/common/element.rb', line 95 def text bridge.getElementText @id end |
#to_json(*args) ⇒ Object
Convert to a WebElement JSON Object for transmission over the wire.
291 292 293 |
# File 'lib/selenium/webdriver/common/element.rb', line 291 def to_json(*args) as_json.to_json(*args) end |
#toggle ⇒ Object
Toggle this element
186 187 188 |
# File 'lib/selenium/webdriver/common/element.rb', line 186 def toggle bridge.toggleElement @id end |
#value ⇒ String
Get the value of this element
55 56 57 |
# File 'lib/selenium/webdriver/common/element.rb', line 55 def value bridge.getElementValue @id end |