puppeteer/website/versioned_docs/version-19.4.0/api/puppeteer.frame.__eval.md
release-please[bot] 931d4fced5
chore: release main (#9322)
🤖 I have created a release *beep* *boop*
---


<details><summary>puppeteer: 19.4.0</summary>

##
[19.4.0](https://github.com/puppeteer/puppeteer/compare/puppeteer-v19.3.0...puppeteer-v19.4.0)
(2022-12-07)


### Features

* **chromium:** roll to Chromium 109.0.5412.0 (r1069273)
([#9364](https://github.com/puppeteer/puppeteer/issues/9364))
([1875da6](1875da6191)),
closes [#9233](https://github.com/puppeteer/puppeteer/issues/9233)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * puppeteer-core bumped from 19.3.0 to 19.4.0
</details>

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

##
[19.4.0](https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v19.3.0...puppeteer-core-v19.4.0)
(2022-12-07)


### Features

* ability to send headers via ws connection to browser in node.js
environment
([#9314](https://github.com/puppeteer/puppeteer/issues/9314))
([937fffa](937fffaedc)),
closes [#7218](https://github.com/puppeteer/puppeteer/issues/7218)
* **chromium:** roll to Chromium 109.0.5412.0 (r1069273)
([#9364](https://github.com/puppeteer/puppeteer/issues/9364))
([1875da6](1875da6191)),
closes [#9233](https://github.com/puppeteer/puppeteer/issues/9233)
* **puppeteer-core:** keydown supports commands
([#9357](https://github.com/puppeteer/puppeteer/issues/9357))
([b7ebc5d](b7ebc5d9bb))


### Bug Fixes

* **puppeteer-core:** avoid type instantiation errors
([#9370](https://github.com/puppeteer/puppeteer/issues/9370))
([17f31a9](17f31a9ee4)),
closes [#9369](https://github.com/puppeteer/puppeteer/issues/9369)
</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>
2022-12-07 19:35:29 +01:00

1.8 KiB

sidebar_label
Frame.$$eval

Frame.$$eval() method

Runs the given function on an array of elements matching the given selector in the frame.

If the given function returns a promise, then this method will wait till the promise resolves.

Signature:

class Frame {
  $$eval<
    Selector extends string,
    Params extends unknown[],
    Func extends EvaluateFunc<
      [Array<NodeFor<Selector>>, ...Params]
    > = EvaluateFunc<[Array<NodeFor<Selector>>, ...Params]>
  >(
    selector: Selector,
    pageFunction: Func | string,
    ...args: Params
  ): Promise<Awaited<ReturnType<Func>>>;
}

Parameters

Parameter Type Description
selector Selector The selector to query for.
pageFunction Func | string The function to be evaluated in the frame's context. An array of elements matching the given selector will be passed to the function as its first argument.
args Params Additional arguments to pass to pageFunction.

Returns:

Promise<Awaited<ReturnType<Func>>>

A promise to the result of the function.

Example

const divsCounts = await frame.$$eval('div', divs => divs.length);