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.
19 20 21 |
# File 'lib/playwright_api/js_handle.rb', line 19 def as_element wrap_impl(@impl.as_element) end |
#dispose ⇒ Object
The jsHandle.dispose method stops referencing the element handle.
24 25 26 |
# File 'lib/playwright_api/js_handle.rb', line 24 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.
Examples:
“‘python sync tweet_handle = page.query_selector(“.tweet .retweets”) assert tweet_handle.evaluate(“node => node.innerText”) == “10 retweets” “`
40 41 42 |
# File 'lib/playwright_api/js_handle.rb', line 40 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.
55 56 57 |
# File 'lib/playwright_api/js_handle.rb', line 55 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.
“‘python sync handle = page.evaluate_handle(“document”) properties = handle.get_properties() window_handle = properties.get(“window”) document_handle = properties.get(“document”) handle.dispose() “`
68 69 70 |
# File 'lib/playwright_api/js_handle.rb', line 68 def get_properties wrap_impl(@impl.get_properties) end |
#get_property(propertyName) ⇒ Object
Fetches a single property from the referenced object.
74 75 76 |
# File 'lib/playwright_api/js_handle.rb', line 74 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.
82 83 84 |
# File 'lib/playwright_api/js_handle.rb', line 82 def json_value wrap_impl(@impl.json_value) end |
#off(event, callback) ⇒ Object
– inherited from EventEmitter –
93 94 95 |
# File 'lib/playwright_api/js_handle.rb', line 93 def off(event, callback) event_emitter_proxy.off(event, callback) end |
#on(event, callback) ⇒ Object
– inherited from EventEmitter –
105 106 107 |
# File 'lib/playwright_api/js_handle.rb', line 105 def on(event, callback) event_emitter_proxy.on(event, callback) end |
#once(event, callback) ⇒ Object
– inherited from EventEmitter –
99 100 101 |
# File 'lib/playwright_api/js_handle.rb', line 99 def once(event, callback) event_emitter_proxy.once(event, callback) end |
#to_s ⇒ Object
87 88 89 |
# File 'lib/playwright_api/js_handle.rb', line 87 def to_s wrap_impl(@impl.to_s) end |