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 | 选择器 | 要查询的选择器。 |
pageFunction | Func | string | 要在该元素页面上下文中执行的函数。与选择器匹配的第一个元素将作为第一个参数传入。 |
args | Params | 传递给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');