lib/element_extensions.rb in gridium-1.1.15 vs lib/element_extensions.rb in gridium-1.1.17
- old
+ new
@@ -1,44 +1,49 @@
include Gridium
class Gridium::ElementExtensions
- def self.highlight(element)
- Log.debug("[GRIDIUM::ElementExtensions] Highlighting element...")
- original_border = Driver.execute_script("return arguments[0].style.border", element.element)
- original_background = Driver.execute_script("return arguments[0].style.backgroundColor", element.element)
- Driver.execute_script("arguments[0].style.border='3px solid lime'; return;", element.element)
- Driver.execute_script("arguments[0].style.backgroundColor='lime'; return;", element.element)
- sleep (Gridium.config.highlight_duration)
- Driver.execute_script("arguments[0].style.border='" + original_border + "'; return;", element.element)
- Driver.execute_script("arguments[0].style.backgroundColor='" + original_background + "'; return;", element.element)
- end
+ class << self
+ def highlight(element)
+ Log.debug("[GRIDIUM::ElementExtensions] Highlighting element...")
+ original_border = Driver.execute_script("return arguments[0].style.border", element.element)
+ original_background = Driver.execute_script("return arguments[0].style.backgroundColor", element.element)
+ Driver.execute_script("arguments[0].style.border='3px solid lime'; return;", element.element)
+ Driver.execute_script("arguments[0].style.backgroundColor='lime'; return;", element.element)
+ sleep (Gridium.config.highlight_duration)
+ Driver.execute_script("arguments[0].style.border='" + original_border + "'; return;", element.element)
+ Driver.execute_script("arguments[0].style.backgroundColor='" + original_background + "'; return;", element.element)
+ end
- def self.scroll_to(element)
- Log.debug("[GRIDIUM::ElementExtensions] Scrolling element into view...")
- Driver.execute_script("arguments[0].scrollIntoView(); return;", element.element)
- sleep 1
- end
+ def scroll_to(element)
+ Log.debug("[GRIDIUM::ElementExtensions] Scrolling element into view...")
+ Driver.execute_script("arguments[0].scrollIntoView(); return;", element.element)
+ sleep 1
+ end
- def self.hover_over(element)
- Driver.execute_script("var evObj = document.createEvent('MouseEvents'); evObj.initMouseEvent(\"mouseover\",true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); arguments[0].dispatchEvent(evObj);", element.element)
- sleep 2
- end
+ def hover_away(element)
+ Driver.execute_script("var evObj = document.createEvent('MouseEvents'); evObj.initMouseEvent(\"mouseout\",true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); arguments[0].dispatchEvent(evObj);", element.element)
+ sleep 1
+ end
- def self.hover_away(element)
- Driver.execute_script("var evObj = document.createEvent('MouseEvents'); evObj.initMouseEvent(\"mouseout\",true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); arguments[0].dispatchEvent(evObj);", element.element)
- sleep 1
- end
+ #
+ # Mouse over the requested element at coordinate (Default x:0, y:0)
+ # @param [Element] element
+ # @param [Integer] x - element x coordinate
+ # @param [Integer] y - element y coordinate
+ #
+ def mouse_over(element, x: 0, y: 0)
+ Driver.driver.action.move_to(element.element, x, y).perform
+ end
- def self.mouse_over(element)
- Driver.driver.mouse.move_to(element.element)
- end
+ alias_method :hover_over, :mouse_over
- def self.trigger_onblur(element)
- Driver.execute_script("arguments[0].focus(); arguments[0].blur(); return true", element.element)
- end
+ def trigger_onblur(element)
+ Driver.execute_script("arguments[0].focus(); arguments[0].blur(); return true", element.element)
+ end
- # Occasionaly selenium is unable to click on elements in the DOM which have some
- # interesting React goodies around the element.
- def self.jquery_click(element)
- Driver.execute_script("arguments[0].click().change();", element.element)
+ # Occasionaly selenium is unable to click on elements in the DOM which have some
+ # interesting React goodies around the element.
+ def jquery_click(element)
+ Driver.execute_script("arguments[0].click().change();", element.element)
+ end
end
end