ElementHandle.$$eval() メソッド
現在の要素内で、指定されたセレクターに一致する要素の配列に対して、指定された関数を実行します。
指定された関数がPromiseを返す場合、このメソッドはPromiseが解決するまで待機します。
シグネチャ:
class ElementHandle {
$$eval<
Selector extends string,
Params extends unknown[],
Func extends EvaluateFuncWith<
Array<NodeFor<Selector>>,
Params
> = EvaluateFuncWith<Array<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。
例
HTML
<div class="feed">
<div class="tweet">Hello!</div>
<div class="tweet">Hi!</div>
</div>
JavaScript
const feedHandle = await page.$('.feed');
expect(
await feedHandle.$$eval('.tweet', nodes => nodes.map(n => n.innerText))
).toEqual(['Hello!', 'Hi!']);