Latest
class JSHandle
import { JSHandle } from "https://dotland.deno.dev/x/puppeteer@16.2.0/vendor/puppeteer-core/puppeteer/common/JSHandle.d.ts";

Represents a reference to a JavaScript object. Instances can be created using {@link Page.evaluateHandle}.

Handles prevent the referenced JavaScript object from being garbage-collected unless the handle is purposely {@link JSHandle.dispose | 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 {@link Page.$eval}, {@link Page.evaluate}, and {@link Page.evaluateHandle}. They are resolved to their referenced object.

Examples

Example 1

const windowHandle = await page.evaluateHandle(() => window);

Constructors

new
JSHandle(
client: CDPSession,
remoteObject: Protocol.Runtime.RemoteObject,
)

Type Parameters

optional
T = unknown

Properties

readonly
client: CDPSession
readonly
disposed: boolean
optional
[__JSHandleSymbol]: T

Used for nominally typing JSHandle.

Methods

asElement(): ElementHandle<any> | null
dispose(): Promise<void>

Releases the object referenced by the handle for garbage collection.

evaluate<Params extends unknown[], Func extends EvaluateFunc<[this, ...Params]> = EvaluateFunc<[this, ...Params]>>(pageFunction: Func | string, ...args: Params): Promise<Awaited<ReturnType<Func>>>

Evaluates the given function with the current handle as its first argument.

evaluateHandle<Params extends unknown[], Func extends EvaluateFunc<[this, ...Params]> = EvaluateFunc<[this, ...Params]>>(pageFunction: Func | string, ...args: Params): Promise<HandleFor<Awaited<ReturnType<Func>>>>

Evaluates the given function with the current handle as its first argument.

getProperties(): Promise<Map<string, JSHandle>>

Gets a map of handles representing the properties of the current handle.

getProperty<K extends keyof T>(propertyName: HandleOr<K>): Promise<HandleFor<T[K]>>

Fetches a single property from the referenced object.

getProperty(propertyName: string): Promise<JSHandle<unknown>>
jsonValue(): Promise<T>
remoteObject(): Protocol.Runtime.RemoteObject

Provides access to the Protocol.Runtime.RemoteObject backing this handle.

toString(): string

Returns a string representation of the JSHandle.