跳至主要内容
版本:22.5.0

ElementHandle.$eval() 方法

在当前元素中,对与给定选择器匹配的第一个元素运行给定的函数。

如果给定的函数返回一个 Promise,则此方法将等待 Promise 解决。

签名:

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

参数

参数类型描述
selector选择器要查询的选择器。
pageFunctionFunc | string要在该元素页面上下文中执行的函数。与选择器匹配的第一个元素将作为第一个参数传入。
argsParams传递给pageFunction的附加参数。

返回值

Promise<Awaited<ReturnType<Func>>>

函数结果的 Promise。

示例

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');