class Locution::Sdk::Listener
Public Class Methods
new(access_token, test_name = "not provided", base_url = 'http://locution.herokuapp.com')
click to toggle source
# File lib/locution/sdk/listener.rb, line 8 def initialize(access_token, test_name = "not provided", base_url = 'http://locution.herokuapp.com') @base_url = base_url @access_token = access_token response = ::RestClient.post "#{@base_url}/tests", { access_token: access_token, test_name: test_name, start_time: Time.now } @test_id = response.body end
Public Instance Methods
after_execute_script(script, driver)
click to toggle source
# File lib/locution/sdk/listener.rb, line 42 def after_execute_script(script, driver) unless @ignore_javascript_inspection ::RestClient.post "#{@base_url}/tests/#{@test_id}/locators", { access_token: @access_token, locator_value: "execute script, #{script}", start_time: @locator_start_time, end_time: Time.now } end end
after_find(by, what, driver)
click to toggle source
# File lib/locution/sdk/listener.rb, line 25 def after_find(by, what, driver) @ignore_javascript_inspection = false ::RestClient.post "#{@base_url}/tests/#{@test_id}/locators", { access_token: @access_token, locator_value: "#{by}, #{what}", locator_count: @number_of_elements_found, start_time: @locator_start_time, end_time: Time.now } end
after_quit(driver)
click to toggle source
# File lib/locution/sdk/listener.rb, line 53 def after_quit(driver) ::RestClient.put "#{@base_url}/tests/#{@test_id}", { access_token: @access_token, end_time: Time.now } end
before_execute_script(script, driver)
click to toggle source
# File lib/locution/sdk/listener.rb, line 36 def before_execute_script(script, driver) unless @ignore_javascript_inspection @locator_start_time = Time.now end end
before_find(by, what, driver)
click to toggle source
# File lib/locution/sdk/listener.rb, line 19 def before_find(by, what, driver) @ignore_javascript_inspection = true @number_of_elements_found = driver.execute_script("return #{get_javascript(by, what)}") @locator_start_time = Time.now end
Private Instance Methods
get_javascript(by, what)
click to toggle source
# File lib/locution/sdk/listener.rb, line 62 def get_javascript(by, what) if by.include? 'id' "document.querySelectorAll('##{what}').length" elsif by.include? 'class' "document.getElementsByClassName('#{what}').length" elsif by.include? 'tag' "document.getElementsByTagName('#{what}').length" elsif by.include? 'name' "document.getElementsByName('#{what}').length" elsif by.include? 'css' "document.querySelectorAll('#{what}').length" elsif by.include? 'xpath' "document.evaluate(\"#{what}\", document.documentElement, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null).snapshotLength" elsif by.include? 'text' what = "//a[contains(text(),'#{what}')]" "document.evaluate(\"#{what}\", document.documentElement, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null).snapshotLength" end end