class Applitools::Selenium::Element
Constants
- JS_GET_COMPUTED_STYLE_FORMATTED_STR
- JS_GET_OVERFLOW
- JS_GET_SCROLL_HEIGHT
- JS_GET_SCROLL_LEFT
- JS_GET_SCROLL_TOP
- JS_GET_SCROLL_WIDTH
- JS_SCROLL_TO_FORMATTED_STR
- JS_SET_OVERFLOW_DATA_FORMATTED_STR
- JS_SET_OVERFLOW_FORMATTED_STR
- JS_SET_SCROLL_DATA_FORMATTED_STR
- TRACE_PREFIX
Attributes
driver[R]
Public Class Methods
new(driver, element)
click to toggle source
Initialize class instance.
@param [Applitools::Selenium::Driver] driver The wrapped Selenium
driver instance. @param [Applitools::Selenium::Element] element The wrapped Selenium
element instance.
Calls superclass method
# File lib/applitools/selenium/element.rb, line 41 def initialize(driver, element) super(element) @driver = driver end
Public Instance Methods
==(other)
click to toggle source
Calls superclass method
# File lib/applitools/selenium/element.rb, line 63 def ==(other) if other.is_a? self.class super other.web_element else super other end end
Also aliased as: eql?
border_bottom_width()
click to toggle source
# File lib/applitools/selenium/element.rb, line 160 def border_bottom_width computed_style_integer(:'border-bottom-width') end
border_left_width()
click to toggle source
# File lib/applitools/selenium/element.rb, line 148 def border_left_width computed_style_integer(:'border-left-width') end
border_right_width()
click to toggle source
# File lib/applitools/selenium/element.rb, line 156 def border_right_width computed_style_integer(:'border-right-width') end
border_top_width()
click to toggle source
# File lib/applitools/selenium/element.rb, line 152 def border_top_width computed_style_integer(:'border-top-width') end
bounds()
click to toggle source
Gets the bounds of the element.
@return [Applitools::Base::Region] An instance of the region.
# File lib/applitools/selenium/element.rb, line 87 def bounds point = location left = point.x top = point.y width = 0 height = 0 begin dimension = size width = dimension.width height = dimension.height rescue => e # Not supported on all platforms. Applitools::EyesLogger.error("Failed extracting size using JavaScript: (#{e.message})") end if left < 0 width = [0, width + left].max left = 0 end if top < 0 height = [0, height + top].max top = 0 end Applitools::Region.new(left, top, width, height) end
click()
click to toggle source
# File lib/applitools/selenium/element.rb, line 53 def click @driver.add_mouse_trigger(Applitools::MouseTrigger::MOUSE_ACTION[:click], self) # logger.info "click(#{bounds})"; web_element.click end
computed_style(prop_style)
click to toggle source
# File lib/applitools/selenium/element.rb, line 140 def computed_style(prop_style) driver.execute_script(JS_GET_COMPUTED_STYLE_FORMATTED_STR % prop_style, self).to_s end
computed_style_integer(prop_style)
click to toggle source
# File lib/applitools/selenium/element.rb, line 144 def computed_style_integer(prop_style) computed_style(prop_style).gsub(/px/, '').to_i.round end
find_element(*args)
click to toggle source
Calls superclass method
# File lib/applitools/selenium/element.rb, line 116 def find_element(*args) self.class.new driver, super end
find_elements(*args)
click to toggle source
Calls superclass method
# File lib/applitools/selenium/element.rb, line 120 def find_elements(*args) super(*args).map { |e| self.class.new driver, e } end
inspect()
click to toggle source
# File lib/applitools/selenium/element.rb, line 59 def inspect TRACE_PREFIX + web_element.inspect end
overflow()
click to toggle source
# File lib/applitools/selenium/element.rb, line 124 def overflow driver.execute_script(JS_GET_OVERFLOW, __getobj__).to_s end
overflow=(overflow)
click to toggle source
# File lib/applitools/selenium/element.rb, line 128 def overflow=(overflow) driver.execute_script(JS_SET_OVERFLOW_FORMATTED_STR % overflow, self) end
overflow_data_attribute=(value)
click to toggle source
# File lib/applitools/selenium/element.rb, line 136 def overflow_data_attribute=(value) driver.execute_script(JS_SET_OVERFLOW_DATA_FORMATTED_STR % value, self) end
padding_bottom_width()
click to toggle source
# File lib/applitools/selenium/element.rb, line 176 def padding_bottom_width computed_style_integer(:'padding-bottom') end
padding_left_width()
click to toggle source
# File lib/applitools/selenium/element.rb, line 164 def padding_left_width computed_style_integer(:'padding-left') end
padding_right_width()
click to toggle source
# File lib/applitools/selenium/element.rb, line 168 def padding_right_width computed_style_integer(:'padding-right') end
padding_top_width()
click to toggle source
# File lib/applitools/selenium/element.rb, line 172 def padding_top_width computed_style_integer(:'padding-top') end
scroll_data_attribute=(value)
click to toggle source
# File lib/applitools/selenium/element.rb, line 132 def scroll_data_attribute=(value) driver.execute_script(JS_SET_SCROLL_DATA_FORMATTED_STR % value, self) end
scroll_height()
click to toggle source
# File lib/applitools/selenium/element.rb, line 192 def scroll_height Integer driver.execute_script(JS_GET_SCROLL_HEIGHT, self).to_s end
scroll_left()
click to toggle source
# File lib/applitools/selenium/element.rb, line 180 def scroll_left Integer driver.execute_script(JS_GET_SCROLL_LEFT, self).to_s end
scroll_to(location)
click to toggle source
# File lib/applitools/selenium/element.rb, line 196 def scroll_to(location) driver.execute_script format(JS_SCROLL_TO_FORMATTED_STR, location.x, location.y), self end
scroll_top()
click to toggle source
# File lib/applitools/selenium/element.rb, line 184 def scroll_top Integer driver.execute_script(JS_GET_SCROLL_TOP, self).to_s end
scroll_width()
click to toggle source
# File lib/applitools/selenium/element.rb, line 188 def scroll_width Integer driver.execute_script(JS_GET_SCROLL_WIDTH, self).to_s end
send_keys(*args)
click to toggle source
Types content into text box. @param [Array, String] keys The content to type. @!parse def send_keys
(keys); end;
# File lib/applitools/selenium/element.rb, line 76 def send_keys(*args) Selenium::WebDriver::Keys.encode(args).each do |key| @driver.add_text_trigger(self, key.to_s) end web_element.send_keys(*args) end
Also aliased as: send_key
to_hash()
click to toggle source
# File lib/applitools/selenium/element.rb, line 200 def to_hash { left: location.x.to_i, top: location.y.to_i, width: size.width.to_i, height: size.height.to_i } end
Protected Instance Methods
web_element()
click to toggle source
# File lib/applitools/selenium/element.rb, line 47 def web_element @web_element ||= __getobj__ end