跳至主要內容
版本: 23.11.1

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

選擇器

要查詢頁面的選擇器CSS 選擇器可以按原樣傳遞,而Puppeteer 特定的選擇器語法允許通過文字輔助功能角色和名稱以及xpath在 shadow root 中組合這些查詢進行查詢。或者,您可以使用前綴指定選擇器類型。

pageFunction

函式 | 字串

要在這個元素的頁面上下文中求值的函式。符合選擇器的第一個元素將作為第一個引數傳遞。

args

參數

要傳遞給 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');