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より前に追加オブジェクトハンドルが ElementHandle のインスタンスである場合、null
またはオブジェクトハンドル自体を返します。
使用例
JsHandle.AsElement();
戻り値
DisposeAsync
v1.9より前に追加jsHandle.dispose
メソッドは、要素ハンドルへの参照を停止します。
使用例
await JsHandle.DisposeAsync();
戻り値
EvaluateAsync
v1.9より前に追加expression の戻り値を返します。
このメソッドは、このハンドルを expression の最初の引数として渡します。
expression が Promise を返す場合、handle.evaluate
はPromiseが解決されるのを待って、その値を返します。
使用例
var tweetHandle = await page.QuerySelectorAsync(".tweet .retweets");
Assert.AreEqual("10 retweets", await tweetHandle.EvaluateAsync("node => node.innerText"));
引数
-
ブラウザコンテキストで評価されるJavaScript式。式が関数として評価される場合、関数は自動的に呼び出されます。
-
arg
EvaluationArgument? (オプション)#expression に渡すオプションの引数。
戻り値
- [object]#
EvaluateHandleAsync
v1.9より前に追加expression の戻り値を JSHandle として返します。
このメソッドは、このハンドルを expression の最初の引数として渡します。
jsHandle.evaluate
と jsHandle.evaluateHandle
の唯一の違いは、jsHandle.evaluateHandle
が JSHandle を返すことです。
jsHandle.evaluateHandle
に渡された関数が Promise を返す場合、jsHandle.evaluateHandle
はPromiseが解決されるのを待って、その値を返します。
詳細については、Page.EvaluateHandleAsync() を参照してください。
使用例
await JsHandle.EvaluateHandleAsync(expression, arg);
引数
-
ブラウザコンテキストで評価されるJavaScript式。式が関数として評価される場合、関数は自動的に呼び出されます。
-
arg
EvaluationArgument? (オプション)#expression に渡すオプションの引数。
戻り値
GetPropertiesAsync
v1.9より前に追加このメソッドは、独自のプロパティ名をキーとし、プロパティ値に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より前に追加参照されているオブジェクトから単一のプロパティを取得します。
使用例
await JsHandle.GetPropertyAsync(propertyName);
引数
戻り値
JsonValueAsync
v1.9より前に追加オブジェクトのJSON表現を返します。オブジェクトに toJSON
関数がある場合でも、それは呼び出されません。
参照されているオブジェクトが文字列化可能でない場合、このメソッドは空のJSONオブジェクトを返します。オブジェクトに循環参照がある場合は、エラーをスローします。
使用例
await JsHandle.JsonValueAsync();
戻り値
- [object]#