跳至主要內容
版本:23.11.1

Frame.$eval() 方法

在 frame 中,於第一個符合指定選擇器的元素上執行給定的函式。

如果給定的函式回傳一個 Promise,則此方法會等待直到 Promise 完成。

簽名

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

參數

參數

類型

描述

selector

Selector

查詢頁面的選擇器CSS 選擇器可以直接傳入,而 Puppeteer 特定的選擇器語法允許透過文字a11y 角色和名稱、以及xpath 以及 跨 Shadow Root 結合這些查詢來進行查詢。 或者,您可以使用前綴來指定選擇器類型。

pageFunction

string | Func

要在 frame 的上下文中評估的函式。第一個符合選擇器的元素將作為第一個參數傳遞給函式。

args

Params

要傳遞給 pageFunction 的其他參數。

回傳

Promise<Awaited<ReturnType<Func>>>

一個指向函式結果的 Promise。

範例

const searchValue = await frame.$eval('#search', el => el.value);