class Playwright::JSHandle

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.

Public Instance Methods

as_element() click to toggle source

Returns either `null` or the object handle itself, if the object handle is an instance of `ElementHandle`.

# File lib/playwright_api/js_handle.rb, line 19
def as_element
  wrap_impl(@impl.as_element)
end
dispose() click to toggle source

The `jsHandle.dispose` method stops referencing the element handle.

# File lib/playwright_api/js_handle.rb, line 24
def dispose
  wrap_impl(@impl.dispose)
end
evaluate(expression, arg: nil) click to toggle source

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” “`

# 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) click to toggle source

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.

# 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() click to toggle source

The method returns a map with **own property names** as keys and JSHandle instances for the property values.

“`python sync handle = page.evaluate_handle(“{window, document}”) properties = handle.get_properties() window_handle = properties.get(“window”) document_handle = properties.get(“document”) handle.dispose() “`

# File lib/playwright_api/js_handle.rb, line 68
def get_properties
  wrap_impl(@impl.get_properties)
end
Also aliased as: properties
get_property(propertyName) click to toggle source

Fetches a single property from the referenced object.

# File lib/playwright_api/js_handle.rb, line 74
def get_property(propertyName)
  wrap_impl(@impl.get_property(unwrap_impl(propertyName)))
end
json_value() click to toggle source

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.

# File lib/playwright_api/js_handle.rb, line 82
def json_value
  wrap_impl(@impl.json_value)
end
off(event, callback) click to toggle source

– inherited from EventEmitter – @nodoc

# File lib/playwright_api/js_handle.rb, line 105
def off(event, callback)
  event_emitter_proxy.off(event, callback)
end
on(event, callback) click to toggle source

– inherited from EventEmitter – @nodoc

# File lib/playwright_api/js_handle.rb, line 99
def on(event, callback)
  event_emitter_proxy.on(event, callback)
end
once(event, callback) click to toggle source

– inherited from EventEmitter – @nodoc

# File lib/playwright_api/js_handle.rb, line 93
def once(event, callback)
  event_emitter_proxy.once(event, callback)
end
properties()
Alias for: get_properties
to_s() click to toggle source

@nodoc

# File lib/playwright_api/js_handle.rb, line 87
def to_s
  wrap_impl(@impl.to_s)
end

Private Instance Methods

event_emitter_proxy() click to toggle source
# File lib/playwright_api/js_handle.rb, line 109
        def event_emitter_proxy
  @event_emitter_proxy ||= EventEmitterProxy.new(self, @impl)
end