JSHandle class
Represents a reference to a JavaScript object. Instances can be created using Page.evaluateHandle().
Handles prevent the referenced JavaScript object from being garbage-collected unless the handle is purposely disposed. JSHandles are auto-disposed when their associated frame is navigated away or the parent context gets destroyed.
Handles can be used as arguments for any evaluation function such as Page.$eval(), Page.evaluate(), and Page.evaluateHandle(). They are resolved to their referenced object.
Signature:
export declare class JSHandle<T = unknown>
Remarks
The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the JSHandle
class.
Example
const windowHandle = await page.evaluateHandle(() => window);
Properties
Property | Modifiers | Type | Description |
---|---|---|---|
[__JSHandleSymbol] | optional | T | Used for nominally typing JSHandle. |
Methods
Method | Modifiers | Description |
---|---|---|
asElement() | ||
dispose() | Releases the object referenced by the handle for garbage collection. | |
evaluate(pageFunction, args) | Evaluates the given function with the current handle as its first argument. | |
evaluateHandle(pageFunction, args) | Evaluates the given function with the current handle as its first argument. | |
getProperties() | Gets a map of handles representing the properties of the current handle. | |
getProperty(propertyName) | Fetches a single property from the referenced object. | |
getProperty(propertyName) | ||
getProperty(propertyName) | ||
jsonValue() | ||
remoteObject() | Provides access to the [Protocol.Runtime.RemoteObject](https://chromedevtools.github.io/devtools-protocol/tot/Runtime/\#type-RemoteObject) backing this handle. | |
toString() | Returns a string representation of the JSHandle. |