Class: Selenium::WebDriver::Element

Inherits:
Object
  • Object
show all
Includes:
SearchContext
Defined in:
lib/selenium/webdriver/common/element.rb

Constant Summary

Constants included from SearchContext

SearchContext::FINDERS

Instance Method Summary collapse

Methods included from SearchContext

#find_element, #find_elements

Constructor Details

#initialize(bridge, id) ⇒ Element

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.

Creates a new Element



12
13
14
# File 'lib/selenium/webdriver/common/element.rb', line 12

def initialize(bridge, id)
  @bridge, @id = bridge, id
end

Instance Method Details

#==(other) ⇒ Object Also known as: eql?



20
21
22
# File 'lib/selenium/webdriver/common/element.rb', line 20

def ==(other)
  other.kind_of?(self.class) && bridge.elementEquals(self, other)
end

#as_json(opts = nil) ⇒ Object

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.

For Rails 3 - jonathanjulian.com/2010/04/rails-to_json-or-as_json/



236
237
238
# File 'lib/selenium/webdriver/common/element.rb', line 236

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

Parameters:

Returns:

  • (String, nil)

    attribute value



73
74
75
# File 'lib/selenium/webdriver/common/element.rb', line 73

def attribute(name)
  bridge.getElementAttribute @id, name
end

#clearObject

Clear this element



110
111
112
# File 'lib/selenium/webdriver/common/element.rb', line 110

def clear
  bridge.clearElement @id
end

#clickObject

Click the element



33
34
35
# File 'lib/selenium/webdriver/common/element.rb', line 33

def click
  bridge.clickElement @id
end

#displayed?Boolean

Is the element displayed?

Returns:

  • (Boolean)


140
141
142
# File 'lib/selenium/webdriver/common/element.rb', line 140

def displayed?
  bridge.isElementDisplayed @id
end

#enabled?Boolean

Is the element enabled?

Returns:

  • (Boolean)


120
121
122
# File 'lib/selenium/webdriver/common/element.rb', line 120

def enabled?
  bridge.isElementEnabled @id
end

#hashObject



25
26
27
# File 'lib/selenium/webdriver/common/element.rb', line 25

def hash
  @id.hash ^ @bridge.hash
end

#inspectObject



16
17
18
# File 'lib/selenium/webdriver/common/element.rb', line 16

def inspect
  '#<%s:0x%x id=%s>' % [self.class, hash*2, @id.inspect]
end

#locationWebDriver::Point

Get the location of this element.

Returns:



166
167
168
# File 'lib/selenium/webdriver/common/element.rb', line 166

def location
  bridge.getElementLocation @id
end

#location_once_scrolled_into_viewWebDriver::Point

Determine an element’s location on the screen once it has been scrolled into view.

Returns:



176
177
178
# File 'lib/selenium/webdriver/common/element.rb', line 176

def location_once_scrolled_into_view
  bridge.getElementLocationOnceScrolledIntoView @id
end

#refObject

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.

for SearchContext and execute_script



215
216
217
# File 'lib/selenium/webdriver/common/element.rb', line 215

def ref
  @id
end

#selected?Boolean

Is the element selected?

Returns:

  • (Boolean)


130
131
132
# File 'lib/selenium/webdriver/common/element.rb', line 130

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: ' '

Parameters:

See Also:



101
102
103
# File 'lib/selenium/webdriver/common/element.rb', line 101

def send_keys(*args)
  bridge.sendKeysToElement @id, Keys.encode(args)
end

#sizeWebDriver::Dimension

Get the size of this element



186
187
188
# File 'lib/selenium/webdriver/common/element.rb', line 186

def size
  bridge.getElementSize @id
end

#style(prop) ⇒ Object

Get the value of the given CSS property



156
157
158
# File 'lib/selenium/webdriver/common/element.rb', line 156

def style(prop)
  bridge.getElementValueOfCssProperty @id, prop
end

#submitObject

Submit this element



148
149
150
# File 'lib/selenium/webdriver/common/element.rb', line 148

def submit
  bridge.submitElement @id
end

#tag_nameString

Get the tag name of this element

Returns:



43
44
45
# File 'lib/selenium/webdriver/common/element.rb', line 43

def tag_name
  bridge.getElementTagName @id
end

#textString

Get the text content of this element

Returns:



83
84
85
# File 'lib/selenium/webdriver/common/element.rb', line 83

def text
  bridge.getElementText @id
end

#to_json(*args) ⇒ Object

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.

Convert to a WebElement JSON Object for transmission over the wire.



226
227
228
# File 'lib/selenium/webdriver/common/element.rb', line 226

def to_json(*args)
  as_json.to_json(*args)
end