public interface JSHandle
Page.evaluateHandle() method.
JSHandle windowHandle = page.evaluateHandle("() => window");
// ...
JSHandle prevents the referenced JavaScript object being garbage collected unless the handle is exposed with 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 Page.evalOnSelector(), Page.evaluate() and Page.evaluateHandle() methods.
| Modifier and Type | Method and Description |
|---|---|
ElementHandle |
asElement()
Returns either
null or the object handle itself, if the object handle is an instance of ElementHandle. |
void |
dispose()
The
jsHandle.dispose method stops referencing the element handle. |
default Object |
evaluate(String expression)
Returns the return value of
expression. |
Object |
evaluate(String expression,
Object arg)
Returns the return value of
expression. |
default JSHandle |
evaluateHandle(String expression)
Returns the return value of
expression as a JSHandle. |
JSHandle |
evaluateHandle(String expression,
Object arg)
Returns the return value of
expression as a JSHandle. |
Map<String,JSHandle> |
getProperties()
The method returns a map with **own property names** as keys and JSHandle instances for the property values.
|
JSHandle |
getProperty(String propertyName)
Fetches a single property from the referenced object.
|
Object |
jsonValue()
Returns a JSON representation of the object.
|
ElementHandle asElement()
null or the object handle itself, if the object handle is an instance of ElementHandle.void dispose()
jsHandle.dispose method stops referencing the element handle.default Object evaluate(String expression)
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:
ElementHandle tweetHandle = page.querySelector(".tweet .retweets");
assertEquals("10 retweets", tweetHandle.evaluate("node => node.innerText"));
expression - JavaScript expression to be evaluated in the browser context. If it looks like a function declaration, it is interpreted
as a function. Otherwise, evaluated as an expression.Object evaluate(String expression, Object arg)
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:
ElementHandle tweetHandle = page.querySelector(".tweet .retweets");
assertEquals("10 retweets", tweetHandle.evaluate("node => node.innerText"));
expression - JavaScript expression to be evaluated in the browser context. If it looks like a function declaration, it is interpreted
as a function. Otherwise, evaluated as an expression.arg - Optional argument to pass to expression.default JSHandle evaluateHandle(String expression)
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 Page.evaluateHandle() for more details.
expression - JavaScript expression to be evaluated in the browser context. If it looks like a function declaration, it is interpreted
as a function. Otherwise, evaluated as an expression.JSHandle evaluateHandle(String expression, Object arg)
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 Page.evaluateHandle() for more details.
expression - JavaScript expression to be evaluated in the browser context. If it looks like a function declaration, it is interpreted
as a function. Otherwise, evaluated as an expression.arg - Optional argument to pass to expression.Map<String,JSHandle> getProperties()
JSHandle handle = page.evaluateHandle("() => ({window, document}"););
Map<String, JSHandle> properties = handle.getProperties();
JSHandle windowHandle = properties.get("window");
JSHandle documentHandle = properties.get("document");
handle.dispose();
JSHandle getProperty(String propertyName)
propertyName - property to getObject jsonValue()
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.
Copyright © 2021. All rights reserved.