JSHandle
JSHandle represents an in-page JavaScript object. JSHandles can be created with the page.evaluateHandle method.
JSHandle prevents the referenced JavaScript object being garbage collected unless the handle is disposed. 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.$eval(), page.evaluate() and page.evaluateHandle() methods.
- jsHandle.asElement()
- jsHandle.dispose()
- jsHandle.evaluate(pageFunction[, arg])
- jsHandle.evaluateHandle(pageFunction[, arg])
- jsHandle.getProperties()
- jsHandle.getProperty(propertyName)
- jsHandle.jsonValue()
jsHandle.asElement()#
- returns: <?ElementHandle>
Returns either null or the object handle itself, if the object handle is an instance of ElementHandle.
jsHandle.dispose()#
- returns: <Promise> Promise which resolves when the object handle is successfully disposed.
The jsHandle.dispose method stops referencing the element handle.
jsHandle.evaluate(pageFunction[, arg])#
pageFunction<function(Object)> Function to be evaluated in browser contextarg<EvaluationArgument> Optional argument to pass topageFunction- returns: <Promise<Serializable>> Promise which resolves to the return value of
pageFunction
This method passes this handle as the first argument to pageFunction.
If pageFunction returns a Promise, then handle.evaluate would wait for the promise to resolve and return its value.
Examples:
jsHandle.evaluateHandle(pageFunction[, arg])#
pageFunction<function|string> Function to be evaluatedarg<EvaluationArgument> Optional argument to pass topageFunction- returns: <Promise<JSHandle>> Promise which resolves to the return value of
pageFunctionas in-page object (JSHandle)
This method passes this handle as the first argument to pageFunction.
The only difference between jsHandle.evaluate and jsHandle.evaluateHandle is that jsHandle.evaluateHandle returns in-page object (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.
jsHandle.getProperties()#
The method returns a map with own property names as keys and JSHandle instances for the property values.
jsHandle.getProperty(propertyName)#
Fetches a single property from the referenced object.
jsHandle.jsonValue()#
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.