puppeteer/website/versioned_docs/version-22.6.5/api/puppeteer.jshandle.md
release-please[bot] e0932e5cce
chore: release main (#12274)
🤖 I have created a release *beep* *boop*
---


<details><summary>browsers: 2.2.2</summary>

##
[2.2.2](https://github.com/puppeteer/puppeteer/compare/browsers-v2.2.1...browsers-v2.2.2)
(2024-04-15)


### Bug Fixes

* remove NetworkServiceInProcess2 set by default
([#12261](https://github.com/puppeteer/puppeteer/issues/12261))
([ff4f70f](ff4f70f4ae)),
closes [#12257](https://github.com/puppeteer/puppeteer/issues/12257)
</details>

<details><summary>puppeteer: 22.6.5</summary>

##
[22.6.5](https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.6.4...puppeteer-v22.6.5)
(2024-04-15)


### Miscellaneous Chores

* **puppeteer:** Synchronize puppeteer versions


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * puppeteer-core bumped from 22.6.4 to 22.6.5
    * @puppeteer/browsers bumped from 2.2.1 to 2.2.2
</details>

<details><summary>puppeteer-core: 22.6.5</summary>

##
[22.6.5](https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v22.6.4...puppeteer-core-v22.6.5)
(2024-04-15)


### Bug Fixes

* remove NetworkServiceInProcess2 set by default
([#12261](https://github.com/puppeteer/puppeteer/issues/12261))
([ff4f70f](ff4f70f4ae)),
closes [#12257](https://github.com/puppeteer/puppeteer/issues/12257)
* use setImmediate to reduce flakiness when processing events
([#12264](https://github.com/puppeteer/puppeteer/issues/12264))
([73403b3](73403b323e))


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @puppeteer/browsers bumped from 2.2.1 to 2.2.2
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
2024-04-15 07:06:55 +00:00

3.6 KiB

sidebar_label
JSHandle

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 abstract 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

_

optional

T

Used for nominally typing JSHandle.

move

() => this

Methods

Method

Modifiers

Description

asElement()

Either null or the handle itself if the handle is an instance of ElementHandle.

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)

jsonValue()

A vanilla object representing the serializable portions of the referenced object.

remoteObject()

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

toString()

Returns a string representation of the JSHandle.