Skip to main content
Version: 10.1.0

puppeteer.elementhandle._eval

Home > puppeteer > ElementHandle > $eval

ElementHandle.$eval() method#

This method runs document.querySelector within the element and passes it as the first argument to pageFunction. If there's no element matching selector, the method throws an error.

If pageFunction returns a Promise, then frame.$eval would wait for the promise to resolve and return its value.

Signature:
$eval<ReturnType>(selector: string, pageFunction: (element: Element, ...args: unknown[]) => ReturnType | Promise<ReturnType>, ...args: SerializableOrJSHandle[]): Promise<WrapElementHandle<ReturnType>>;

Parameters#

ParameterTypeDescription
selectorstring
pageFunction(element: Element, ...args: unknown[]) => ReturnType | Promise<ReturnType>
argsSerializableOrJSHandle[]
Returns:

Promise<WrapElementHandle<ReturnType>>

Example#

const tweetHandle = await page.$('.tweet');expect(await tweetHandle.$eval('.like', node => node.innerText)).toBe('100');expect(await tweetHandle.$eval('.retweets', node => node.innerText)).toBe('10');