Module: Selenium::WebDriver::DriverExtensions::HasPinnedScripts Private
- Defined in:
- rb/lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb
This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.
Instance Method Summary collapse
-
#pin_script(script) ⇒ DevTools::PinnedScript
private
Pins JavaScript snippet that is available during the whole session on every page.
-
#pinned_scripts ⇒ Array<DevTools::PinnedScript>
private
Returns the list of all pinned scripts.
-
#unpin_script(script) ⇒ Object
private
Unpins script making it undefined for the subsequent calls.
Instance Method Details
#pin_script(script) ⇒ DevTools::PinnedScript
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
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.
49 50 51 52 53 54 55 56 57 58 59 |
# 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>
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns the list of all pinned scripts.
30 31 32 |
# File 'rb/lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb', line 30 def pinned_scripts @pinned_scripts ||= [] end |
#unpin_script(script) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Unpins script making it undefined for the subsequent calls.
67 68 69 70 71 |
# 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 |