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

JSHandle

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

var windowHandle = await page.EvaluateHandleAsync("() => window");

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

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


メソッド

AsElement

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

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

使用方法

JsHandle.AsElement();

戻り値


DisposeAsync

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

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

使用方法

await JsHandle.DisposeAsync();

戻り値


EvaluateAsync

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

expressionの戻り値を返します。

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

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

使用方法

var tweetHandle = await page.QuerySelectorAsync(".tweet .retweets");
Assert.AreEqual("10 retweets", await tweetHandle.EvaluateAsync("node => node.innerText"));

引数

  • expression string#

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

  • arg EvaluationArgument? (任意)#

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

戻り値

  • [object]#

EvaluateHandleAsync

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

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

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

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

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

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

使用方法

await JsHandle.EvaluateHandleAsync(expression, arg);

引数

  • expression string#

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

  • arg EvaluationArgument? (任意)#

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

戻り値


GetPropertiesAsync

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

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

使用方法

var handle = await page.EvaluateHandleAsync("() => ({ window, document }");
var properties = await handle.GetPropertiesAsync();
var windowHandle = properties["window"];
var documentHandle = properties["document"];
await handle.DisposeAsync();

戻り値


GetPropertyAsync

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

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

使用方法

await JsHandle.GetPropertyAsync(propertyName);

引数

  • propertyName string#

    取得するプロパティ名

戻り値


JsonValueAsync

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

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

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

使用方法

await JsHandle.JsonValueAsync();

戻り値

  • [object]#