Interface JSHandle
- All Known Subinterfaces:
ElementHandle
- All Known Implementing Classes:
ElementHandleImpl,JSHandleImpl
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.
-
Method Summary
Modifier and TypeMethodDescriptionReturns eithernullor the object handle itself, if the object handle is an instance ofElementHandle.voiddispose()ThejsHandle.disposemethod stops referencing the element handle.default ObjectReturns the return value ofexpression.Returns the return value ofexpression.default JSHandleevaluateHandle(String expression) Returns the return value ofexpressionas aJSHandle.evaluateHandle(String expression, Object arg) Returns the return value ofexpressionas aJSHandle.The method returns a map with **own property names** as keys and JSHandle instances for the property values.getProperty(String propertyName) Fetches a single property from the referenced object.Returns a JSON representation of the object.
-
Method Details
-
asElement
ElementHandle asElement()Returns eithernullor the object handle itself, if the object handle is an instance ofElementHandle.- Since:
- v1.8
-
dispose
void dispose()ThejsHandle.disposemethod stops referencing the element handle.- Since:
- v1.8
-
evaluate
Returns the return value ofexpression.This method passes this handle as the first argument to
expression.If
expressionreturns a Promise, thenhandle.evaluatewould 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
Returns the return value ofexpression.This method passes this handle as the first argument to
expression.If
expressionreturns a Promise, thenhandle.evaluatewould 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
Returns the return value ofexpressionas aJSHandle.This method passes this handle as the first argument to
expression.The only difference between
jsHandle.evaluateandjsHandle.evaluateHandleis thatjsHandle.evaluateHandlereturnsJSHandle.If the function passed to the
jsHandle.evaluateHandlereturns a Promise, thenjsHandle.evaluateHandlewould 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
Returns the return value ofexpressionas aJSHandle.This method passes this handle as the first argument to
expression.The only difference between
jsHandle.evaluateandjsHandle.evaluateHandleis thatjsHandle.evaluateHandlereturnsJSHandle.If the function passed to the
jsHandle.evaluateHandlereturns a Promise, thenjsHandle.evaluateHandlewould 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
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
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 atoJSONfunction, 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
-