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

JSHandle

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

window_handle = page.evaluate_handle("window")
# ...

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

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


メソッド

dispose

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

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

使用法

js_handle.dispose()

戻り値


evaluate

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

expression の戻り値を返します。

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

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

使用法

tweet_handle = page.query_selector(".tweet .retweets")
assert tweet_handle.evaluate("node => node.innerText") == "10 retweets"

引数

  • expression str#

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

  • arg EvaluationArgument (オプション)#

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

戻り値


evaluate_handle

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

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

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

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

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

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

使用法

js_handle.evaluate_handle(expression)
js_handle.evaluate_handle(expression, **kwargs)

引数

  • expression str#

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

  • arg EvaluationArgument (オプション)#

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

戻り値


get_properties

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

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

使用法

handle = page.evaluate_handle("({ window, document })")
properties = handle.get_properties()
window_handle = properties.get("window")
document_handle = properties.get("document")
handle.dispose()

戻り値


get_property

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

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

使用法

js_handle.get_property(property_name)

引数

  • property_name str#

    取得するプロパティ

戻り値


json_value

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

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

note

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

使用法

js_handle.json_value()

戻り値


プロパティ

as_element

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

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

使用法

js_handle.as_element()

戻り値