Module: OnlyofficeWebdriverWrapper::WebdriverJsMethods
- Included in:
- WebDriver
- Defined in:
- lib/onlyoffice_webdriver_wrapper/webdriver/webdriver_js_methods.rb
Overview
Methods for webdriver for calling Javascript
Instance Method Summary collapse
- #document_ready? ⇒ Boolean
-
#element_size_by_js(xpath) ⇒ Dimensions
Calculate object size using Javascript.
- #execute_javascript(script) ⇒ Object
- #get_text_by_js(xpath) ⇒ Object
-
#jquery_finished? ⇒ Boolean
Checks for jQuery finished its job or not present.
-
#jquery_loaded? ⇒ True, False
Is page have jquery loaded.
-
#object_absolute_position(xpath) ⇒ CursorPoint
Get object absolute postion from top left edge of screen.
- #type_to_locator_by_javascript(xpath_name, text) ⇒ Object
Instance Method Details
#document_ready? ⇒ Boolean
53 54 55 |
# File 'lib/onlyoffice_webdriver_wrapper/webdriver/webdriver_js_methods.rb', line 53 def document_ready? execute_javascript('return document.readyState;') == 'complete' end |
#element_size_by_js(xpath) ⇒ Dimensions
Calculate object size using Javascript
24 25 26 27 28 |
# File 'lib/onlyoffice_webdriver_wrapper/webdriver/webdriver_js_methods.rb', line 24 def element_size_by_js(xpath) width = execute_javascript("return document.evaluate(\"#{xpath.tr('"', "'")}\",document, null, XPathResult.ANY_TYPE, null ).iterateNext().offsetWidth") height = execute_javascript("return document.evaluate(\"#{xpath.tr('"', "'")}\",document, null, XPathResult.ANY_TYPE, null ).iterateNext().offsetHeight") Dimensions.new(width, height) end |
#execute_javascript(script) ⇒ Object
4 5 6 7 8 9 10 |
# File 'lib/onlyoffice_webdriver_wrapper/webdriver/webdriver_js_methods.rb', line 4 def execute_javascript(script) result = @driver.execute_script(script) OnlyofficeLoggerHelper.log("Executed js: `#{script}` with result: `#{result}`") result rescue Exception => e webdriver_error("Exception #{e} in execute_javascript: #{script}") end |
#get_text_by_js(xpath) ⇒ Object
17 18 19 |
# File 'lib/onlyoffice_webdriver_wrapper/webdriver/webdriver_js_methods.rb', line 17 def get_text_by_js(xpath) execute_javascript("return document.evaluate(\"#{xpath.tr('"', "'")}\",document, null, XPathResult.ANY_TYPE, null ).iterateNext().textContent") end |
#jquery_finished? ⇒ Boolean
Checks for jQuery finished its job or not present
47 48 49 50 51 |
# File 'lib/onlyoffice_webdriver_wrapper/webdriver/webdriver_js_methods.rb', line 47 def jquery_finished? return true unless jquery_loaded? execute_javascript('return window.jQuery.active;').zero? end |
#jquery_loaded? ⇒ True, False
Returns is page have jquery loaded.
40 41 42 43 44 |
# File 'lib/onlyoffice_webdriver_wrapper/webdriver/webdriver_js_methods.rb', line 40 def jquery_loaded? loaded = execute_javascript('return !!window.jQuery') OnlyofficeLoggerHelper.log("jquery_loaded? # #{loaded}") loaded end |
#object_absolute_position(xpath) ⇒ CursorPoint
Get object absolute postion from top left edge of screen
33 34 35 36 37 |
# File 'lib/onlyoffice_webdriver_wrapper/webdriver/webdriver_js_methods.rb', line 33 def object_absolute_position(xpath) left = execute_javascript("return document.evaluate(\"#{xpath.tr('"', "'")}\",document, null, XPathResult.ANY_TYPE, null ).iterateNext().getBoundingClientRect().left") top = execute_javascript("return document.evaluate(\"#{xpath.tr('"', "'")}\",document, null, XPathResult.ANY_TYPE, null ).iterateNext().getBoundingClientRect().top") Dimensions.new(left, top) end |
#type_to_locator_by_javascript(xpath_name, text) ⇒ Object
12 13 14 15 |
# File 'lib/onlyoffice_webdriver_wrapper/webdriver/webdriver_js_methods.rb', line 12 def type_to_locator_by_javascript(xpath_name, text) escaped_text = text.gsub('\\', '\\\\\\\\').gsub('"', '\\"').gsub("\n", '\\n') execute_javascript("document.evaluate('#{xpath_name}', document, null, XPathResult.ANY_TYPE, null).iterateNext().value=\"#{escaped_text}\";") end |