module Selenium::WebDriver::DriverExtensions::HasPinnedScripts
Public Instance Methods
Source
# File lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb, line 49 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
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]
Source
# File lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb, line 30 def pinned_scripts @pinned_scripts ||= [] end
Returns the list of all pinned scripts.
@return [Array<DevTools::PinnedScript>]
Source
# File lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb, line 67 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
Unpins script making it undefined for the subsequent calls.
@param [DevTools::PinnedScript] script