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 | 參數 | 要傳遞給 |
返回
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');