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
nullor the object handle itself, if the object handle is an instance ofElementHandle. -
#dispose ⇒ Object
The
jsHandle.disposemethod 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
expressionas aJSHandle. -
#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 |