Interface JSHandle
-
- All Known Subinterfaces:
ElementHandle
public interface JSHandle
JSHandle represents an in-page JavaScript object. JSHandles can be created with thePage.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()
andPage.evaluateHandle()
methods.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description ElementHandle
asElement()
Returns eithernull
or the object handle itself, if the object handle is an instance ofElementHandle
.void
dispose()
ThejsHandle.dispose
method stops referencing the element handle.default Object
evaluate(String expression)
Returns the return value ofexpression
.Object
evaluate(String expression, Object arg)
Returns the return value ofexpression
.default JSHandle
evaluateHandle(String expression)
Returns the return value ofexpression
as aJSHandle
.JSHandle
evaluateHandle(String expression, Object arg)
Returns the return value ofexpression
as aJSHandle
.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.
-
-
-
Method Detail
-
asElement
ElementHandle asElement()
Returns eithernull
or the object handle itself, if the object handle is an instance ofElementHandle
.- Since:
- v1.8
-
dispose
void dispose()
ThejsHandle.dispose
method stops referencing the element handle.- Since:
- v1.8
-
evaluate
default Object evaluate(String expression)
Returns the return value ofexpression
.This method passes this handle as the first argument to
expression
.If
expression
returns a Promise, thenhandle.evaluate
would wait for the promise to resolve and return its value.Usage
ElementHandle tweetHandle = page.querySelector(".tweet .retweets"); assertEquals("10 retweets", tweetHandle.evaluate("node => node.innerText"));
- Parameters:
expression
- JavaScript expression to be evaluated in the browser context. If the expression evaluates to a function, the function is automatically invoked.- Since:
- v1.8
-
evaluate
Object evaluate(String expression, Object arg)
Returns the return value ofexpression
.This method passes this handle as the first argument to
expression
.If
expression
returns a Promise, thenhandle.evaluate
would wait for the promise to resolve and return its value.Usage
ElementHandle tweetHandle = page.querySelector(".tweet .retweets"); assertEquals("10 retweets", tweetHandle.evaluate("node => node.innerText"));
- Parameters:
expression
- JavaScript expression to be evaluated in the browser context. If the expression evaluates to a function, the function is automatically invoked.arg
- Optional argument to pass toexpression
.- Since:
- v1.8
-
evaluateHandle
default JSHandle evaluateHandle(String expression)
Returns the return value ofexpression
as aJSHandle
.This method passes this handle as the first argument to
expression
.The only difference between
jsHandle.evaluate
andjsHandle.evaluateHandle
is thatjsHandle.evaluateHandle
returnsJSHandle
.If the function passed to the
jsHandle.evaluateHandle
returns a Promise, thenjsHandle.evaluateHandle
would wait for the promise to resolve and return its value.See
Page.evaluateHandle()
for more details.- Parameters:
expression
- JavaScript expression to be evaluated in the browser context. If the expression evaluates to a function, the function is automatically invoked.- Since:
- v1.8
-
evaluateHandle
JSHandle evaluateHandle(String expression, Object arg)
Returns the return value ofexpression
as aJSHandle
.This method passes this handle as the first argument to
expression
.The only difference between
jsHandle.evaluate
andjsHandle.evaluateHandle
is thatjsHandle.evaluateHandle
returnsJSHandle
.If the function passed to the
jsHandle.evaluateHandle
returns a Promise, thenjsHandle.evaluateHandle
would wait for the promise to resolve and return its value.See
Page.evaluateHandle()
for more details.- Parameters:
expression
- JavaScript expression to be evaluated in the browser context. If the expression evaluates to a function, the function is automatically invoked.arg
- Optional argument to pass toexpression
.- Since:
- v1.8
-
getProperties
Map<String,JSHandle> getProperties()
The method returns a map with **own property names** as keys and JSHandle instances for the property values.Usage
JSHandle handle = page.evaluateHandle("() => ({ window, document })"); Map<String, JSHandle> properties = handle.getProperties(); JSHandle windowHandle = properties.get("window"); JSHandle documentHandle = properties.get("document"); handle.dispose();
- Since:
- v1.8
-
getProperty
JSHandle getProperty(String propertyName)
Fetches a single property from the referenced object.- Parameters:
propertyName
- property to get- Since:
- v1.8
-
jsonValue
Object jsonValue()
Returns a JSON representation of the object. If the object has atoJSON
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.
- Since:
- v1.8
-
-