Module: Selenium::WebDriver::DriverExtensions::HasPinnedScripts Private
Relationships & Source Files | |
Defined in: | rb/lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb |
Instance Method Summary
-
#pin_script(script) ⇒ DevTools::PinnedScript
Internal use only
Pins JavaScript snippet that is available during the whole session on every page.
-
#pinned_scripts ⇒ Array<DevTools::PinnedScript>
Internal use only
Returns the list of all pinned scripts.
-
#unpin_script(script)
Internal use only
Unpins script making it undefined for the subsequent calls.
Instance Method Details
#pin_script(script) ⇒ DevTools::PinnedScript
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.
# File 'rb/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
#pinned_scripts ⇒ Array
<DevTools::PinnedScript>
Returns the list of all pinned scripts.
# File 'rb/lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb', line 30
def pinned_scripts @pinned_scripts ||= [] end
#unpin_script(script)
Unpins script making it undefined for the subsequent calls.
# File 'rb/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