module Selenium::WebDriver::DriverExtensions::HasPinnedScripts
Public Instance Methods
pin_script(script)
click to toggle source
Pins JavaScript snippet that is available during the whole session on every page. This allows to store and call scripts without sending them over the wire every time.
@example
script = driver.pin_script('return window.location.href') driver.execute_script(script) # navigate to a new page driver.execute_script(script)
@param [String] script @return [DevTools::PinnedScript]
# File lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb, line 50 def pin_script(script) script = DevTools::PinnedScript.new(script) pinned_scripts << script devtools.page.enable devtools.runtime.evaluate(expression: script.callable) response = devtools.page.add_script_to_evaluate_on_new_document(source: script.callable) script.devtools_identifier = response.dig('result', 'identifier') script end
pinned_scripts()
click to toggle source
Returns the list of all pinned scripts.
@return [Array<DevTools::PinnedScript>]
# File lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb, line 31 def pinned_scripts @pinned_scripts ||= [] end
unpin_script(script)
click to toggle source
Unpins script making it undefined for the subsequent calls.
@param [DevTools::PinnedScript]
# File lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb, line 68 def unpin_script(script) devtools.runtime.evaluate(expression: script.remove) devtools.page.remove_script_to_evaluate_on_new_document(identifier: script.devtools_identifier) pinned_scripts.delete(script) end