メインコンテンツにスキップ

JSHandle

JSHandle は、ページ内の JavaScript オブジェクトを表します。JSHandle は、page.evaluateHandle() メソッドで作成できます。

const windowHandle = await page.evaluateHandle(() => window);
// ...

JSHandle は、ハンドルが jsHandle.dispose() で公開されない限り、参照されている JavaScript オブジェクトがガベージコレクションされるのを防ぎます。JSHandle は、元のフレームがナビゲートされるか、親コンテキストが破棄されると自動的に破棄されます。

JSHandle インスタンスは、page.$eval()page.evaluate()、および page.evaluateHandle() メソッドの引数として使用できます。


メソッド

asElement

v1.9 より前に追加 jsHandle.asElement

オブジェクトハンドルが ElementHandle のインスタンスである場合、null またはオブジェクトハンドル自体を返します。

使用法

jsHandle.asElement();

戻り値


dispose

v1.9 より前に追加 jsHandle.dispose

jsHandle.dispose メソッドは、要素ハンドルへの参照を停止します。

使用法

await jsHandle.dispose();

戻り値


evaluate

v1.9 より前に追加 jsHandle.evaluate

pageFunction の戻り値を返します。

このメソッドは、このハンドルを pageFunction の最初の引数として渡します。

pageFunctionPromise を返す場合、handle.evaluate は Promise が解決されるのを待ってその値を返します。

使用法

const tweetHandle = await page.$('.tweet .retweets');
expect(await tweetHandle.evaluate(node => node.innerText)).toBe('10 retweets');

引数

戻り値


evaluateHandle

v1.9 より前に追加 jsHandle.evaluateHandle

pageFunction の戻り値を JSHandle として返します。

このメソッドは、このハンドルを pageFunction の最初の引数として渡します。

jsHandle.evaluatejsHandle.evaluateHandle の唯一の違いは、jsHandle.evaluateHandleJSHandle を返すことです。

jsHandle.evaluateHandle に渡された関数が Promise を返す場合、jsHandle.evaluateHandle は Promise が解決されるのを待ってその値を返します。

詳細については、page.evaluateHandle() を参照してください。

使用法

await jsHandle.evaluateHandle(pageFunction);
await jsHandle.evaluateHandle(pageFunction, arg);

引数

戻り値


getProperties

v1.9 より前に追加 jsHandle.getProperties

このメソッドは、自身のプロパティ名をキーとし、プロパティ値の JSHandle インスタンスを持つマップを返します。

使用法

const handle = await page.evaluateHandle(() => ({ window, document }));
const properties = await handle.getProperties();
const windowHandle = properties.get('window');
const documentHandle = properties.get('document');
await handle.dispose();

戻り値


getProperty

v1.9 より前に追加 jsHandle.getProperty

参照されているオブジェクトから単一のプロパティを取得します。

使用法

await jsHandle.getProperty(propertyName);

引数

  • propertyName string#

    取得するプロパティ

戻り値


jsonValue

v1.9 より前に追加 jsHandle.jsonValue

オブジェクトの JSON 表現を返します。オブジェクトに toJSON 関数がある場合でも、呼び出されません

note

参照されているオブジェクトが文字列化可能でない場合、このメソッドは空の JSON オブジェクトを返します。オブジェクトに循環参照がある場合は、エラーがスローされます。

使用法

await jsHandle.jsonValue();

戻り値