Class: Playwright::JSHandle
- Inherits:
-
PlaywrightApi
- Object
- PlaywrightApi
- Playwright::JSHandle
- Defined in:
- lib/playwright_api/js_handle.rb
Overview
JSHandle represents an in-page JavaScript object. JSHandles can be created with the [‘method: Page.evaluateHandle`] method.
“‘python sync window_handle = page.evaluate_handle(“window”) # … “`
JSHandle prevents the referenced JavaScript object being garbage collected unless the handle is exposed with [‘method: JSHandle.dispose`]. JSHandles are auto-disposed when their origin frame gets navigated or the parent context gets destroyed.
JSHandle instances can be used as an argument in [‘method: Page.evalOnSelector`], [`method: Page.evaluate`] and
- ‘method: Page.evaluateHandle`
-
methods.
Direct Known Subclasses
Instance Method Summary collapse
-
#as_element ⇒ Object
Returns either ‘null` or the object handle itself, if the object handle is an instance of `ElementHandle`.
-
#dispose ⇒ Object
The ‘jsHandle.dispose` method stops referencing the element handle.
-
#evaluate(expression, arg: nil) ⇒ Object
Returns the return value of ‘expression`.
-
#evaluate_handle(expression, arg: nil) ⇒ Object
Returns the return value of ‘expression` as a `JSHandle`.
-
#get_properties ⇒ Object
(also: #properties)
The method returns a map with **own property names** as keys and JSHandle instances for the property values.
-
#get_property(propertyName) ⇒ Object
Fetches a single property from the referenced object.
-
#json_value ⇒ Object
Returns a JSON representation of the object.
-
#off(event, callback) ⇒ Object
– inherited from EventEmitter –.
-
#on(event, callback) ⇒ Object
– inherited from EventEmitter –.
-
#once(event, callback) ⇒ Object
– inherited from EventEmitter –.
- #to_s ⇒ Object
Methods inherited from PlaywrightApi
Constructor Details
This class inherits a constructor from Playwright::PlaywrightApi
Instance Method Details
#as_element ⇒ Object
Returns either ‘null` or the object handle itself, if the object handle is an instance of `ElementHandle`.
21 22 23 |
# File 'lib/playwright_api/js_handle.rb', line 21 def as_element wrap_impl(@impl.as_element) end |
#dispose ⇒ Object
The ‘jsHandle.dispose` method stops referencing the element handle.
27 28 29 |
# File 'lib/playwright_api/js_handle.rb', line 27 def dispose wrap_impl(@impl.dispose) end |
#evaluate(expression, arg: nil) ⇒ Object
Returns the return value of ‘expression`.
This method passes this handle as the first argument to ‘expression`.
If ‘expression` returns a [Promise], then `handle.evaluate` would wait for the promise to resolve and return its value.
Usage
“‘python sync tweet_handle = page.query_selector(“.tweet .retweets”) assert tweet_handle.evaluate(“node => node.innerText”) == “10 retweets” “`
45 46 47 |
# File 'lib/playwright_api/js_handle.rb', line 45 def evaluate(expression, arg: nil) wrap_impl(@impl.evaluate(unwrap_impl(expression), arg: unwrap_impl(arg))) end |
#evaluate_handle(expression, arg: nil) ⇒ Object
Returns the return value of ‘expression` as a `JSHandle`.
This method passes this handle as the first argument to ‘expression`.
The only difference between ‘jsHandle.evaluate` and `jsHandle.evaluateHandle` is that `jsHandle.evaluateHandle` returns `JSHandle`.
If the function passed to the ‘jsHandle.evaluateHandle` returns a [Promise], then `jsHandle.evaluateHandle` would wait for the promise to resolve and return its value.
See [‘method: Page.evaluateHandle`] for more details.
60 61 62 |
# File 'lib/playwright_api/js_handle.rb', line 60 def evaluate_handle(expression, arg: nil) wrap_impl(@impl.evaluate_handle(unwrap_impl(expression), arg: unwrap_impl(arg))) end |
#get_properties ⇒ Object Also known as: properties
The method returns a map with **own property names** as keys and JSHandle instances for the property values.
Usage
“‘python sync handle = page.evaluate_handle(“({ window, document })”) properties = handle.get_properties() window_handle = properties.get(“window”) document_handle = properties.get(“document”) handle.dispose() “`
76 77 78 |
# File 'lib/playwright_api/js_handle.rb', line 76 def get_properties wrap_impl(@impl.get_properties) end |
#get_property(propertyName) ⇒ Object
Fetches a single property from the referenced object.
83 84 85 |
# File 'lib/playwright_api/js_handle.rb', line 83 def get_property(propertyName) wrap_impl(@impl.get_property(unwrap_impl(propertyName))) end |
#json_value ⇒ Object
Returns a JSON representation of the object. If the object has a ‘toJSON` function, it **will not be called**.
NOTE: The method will return an empty JSON object if the referenced object is not stringifiable. It will throw an error if the object has circular references.
92 93 94 |
# File 'lib/playwright_api/js_handle.rb', line 92 def json_value wrap_impl(@impl.json_value) end |
#off(event, callback) ⇒ Object
– inherited from EventEmitter –
109 110 111 |
# File 'lib/playwright_api/js_handle.rb', line 109 def off(event, callback) event_emitter_proxy.off(event, callback) end |
#on(event, callback) ⇒ Object
– inherited from EventEmitter –
103 104 105 |
# File 'lib/playwright_api/js_handle.rb', line 103 def on(event, callback) event_emitter_proxy.on(event, callback) end |
#once(event, callback) ⇒ Object
– inherited from EventEmitter –
115 116 117 |
# File 'lib/playwright_api/js_handle.rb', line 115 def once(event, callback) event_emitter_proxy.once(event, callback) end |
#to_s ⇒ Object
97 98 99 |
# File 'lib/playwright_api/js_handle.rb', line 97 def to_s wrap_impl(@impl.to_s) end |