跳至主要內容
版本:23.11.1

Frame.$$eval() 方法

在 frame 中符合指定選取器的元素陣列上執行給定的函式。

如果給定的函式返回 promise,則此方法將等待直到 promise 完成。

簽名

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

參數

參數

類型

描述

selector

Selector

要查詢頁面的選取器CSS 選取器可以直接傳遞,並且 Puppeteer 特有的選取器語法允許透過文字a11y 角色和名稱,以及 xpath在陰影根中組合這些查詢進行查詢。或者,您可以使用前綴指定選取器類型。

pageFunction

string | Func

要在 frame 的上下文中評估的函式。符合給定選取器的元素陣列將作為其第一個引數傳遞給函式。

args

Params

要傳遞給 pageFunction 的其他引數。

返回

Promise<Awaited<ReturnType<Func>>>

函式結果的 Promise。

範例

const divsCounts = await frame.$$eval('div', divs => divs.length);