class Applitools::Selenium::DomSnapshotScript::DomSnapshotScript
Constants
- DOM_EXTRACTION_TIMEOUT
Attributes
compress_resources[RW]
dont_fetch_resources[RW]
driver[RW]
serialize_resources[RW]
urls_to_skip[RW]
Public Class Methods
new(driver, urls_to_skip, dont_fetch_resources, serialize_resources = false, compress_resources = false)
click to toggle source
# File lib/applitools/selenium/visual_grid/dom_snapshot_script.rb, line 42 def initialize(driver, urls_to_skip, dont_fetch_resources, serialize_resources = false, compress_resources = false) self.driver = driver self.urls_to_skip = urls_to_skip self.dont_fetch_resources = dont_fetch_resources self.compress_resources = compress_resources self.serialize_resources = serialize_resources end
Public Instance Methods
process_page_script()
click to toggle source
# File lib/applitools/selenium/visual_grid/dom_snapshot_script.rb, line 50 def process_page_script Applitools::Selenium::Scripts::PROCESS_PAGE_AND_POLL end
run()
click to toggle source
# File lib/applitools/selenium/visual_grid/dom_snapshot_script.rb, line 67 def run Applitools::EyesLogger.info 'Trying to get DOM snapshot...' script_thread = Thread.new do result = {} while result['status'] != 'SUCCESS' Thread.current[:script_result] = driver.execute_script(script) begin Thread.current[:result] = result = Oj.load(Thread.current[:script_result]) sleep 0.5 rescue Oj::ParseError => e Applitools::EyesLogger.warn e.message end end end sleep 0.5 script_thread_result = script_thread.join(DOM_EXTRACTION_TIMEOUT) raise ::Applitools::EyesError.new 'Timeout error while getting dom snapshot!' unless script_thread_result Applitools::EyesLogger.info 'Done!' script_thread_result[:result]['value'] end
script()
click to toggle source
# File lib/applitools/selenium/visual_grid/dom_snapshot_script.rb, line 63 def script "#{process_page_script} return __processPageAndSerializePoll(#{script_options});" end
script_options()
click to toggle source
# File lib/applitools/selenium/visual_grid/dom_snapshot_script.rb, line 54 def script_options options = [] options.push("dontFetchResources: #{dont_fetch_resources}") options.push("skipResources: [#{urls_to_skip}]") options.push("compressResources: #{compress_resources}") options.push("serializeResources: #{serialize_resources}") "{#{options.join(', ')}}" end