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

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はPromiseが解決され、その値を返すのを待ちます。

使用法

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はそのPromiseが解決されるのを待ってその値を返します。

詳細については、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]#