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

JSHandle

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

JSHandle windowHandle = page.evaluateHandle("() => window");
// ...

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

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


メソッド

asElement

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

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

使用法

JSHandle.asElement();

戻り値


dispose

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

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

使用法

JSHandle.dispose();

戻り値


evaluate

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

expression の戻り値を返します。

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

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

使用法

ElementHandle tweetHandle = page.querySelector(".tweet .retweets");
assertEquals("10 retweets", tweetHandle.evaluate("node => node.innerText"));

引数

  • expression String#

    ブラウザコンテキストで評価されるJavaScript式。式が関数として評価される場合、その関数は自動的に呼び出されます。

  • arg EvaluationArgument (オプション)#

    expression に渡すオプションの引数。

戻り値


evaluateHandle

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

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

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

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

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

詳細はPage.evaluateHandle() を参照してください。

使用法

JSHandle.evaluateHandle(expression);
JSHandle.evaluateHandle(expression, arg);

引数

  • expression String#

    ブラウザコンテキストで評価されるJavaScript式。式が関数として評価される場合、その関数は自動的に呼び出されます。

  • arg EvaluationArgument (オプション)#

    expression に渡すオプションの引数。

戻り値


getProperties

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

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

使用法

JSHandle handle = page.evaluateHandle("() => ({ window, document })");
Map<String, JSHandle> properties = handle.getProperties();
JSHandle windowHandle = properties.get("window");
JSHandle documentHandle = properties.get("document");
handle.dispose();

戻り値


getProperty

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

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

使用法

JSHandle.getProperty(propertyName);

引数

  • propertyName String#

    取得するプロパティ

戻り値


jsonValue

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

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

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

使用法

JSHandle.jsonValue();

戻り値