Перейти к основному содержимому

JSHandle

JSHandle представляет собой объект JavaScript на странице. JSHandles могут быть созданы с помощью метода page.evaluate_handle().

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

JSHandle предотвращает сборку мусора для ссылочного объекта JavaScript, если только ссылка не будет удалена с помощью js_handle.dispose(). JSHandles автоматически удаляются, когда их исходный фрейм переходит на другую страницу или родительский контекст уничтожается.

Экземпляры 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.

Если expression возвращает Promise, то handle.evaluate будет ожидать разрешения промиса и вернет его значение.

Использование

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.evaluate и jsHandle.evaluateHandle заключается в том, что jsHandle.evaluateHandle возвращает JSHandle.

Если функция, переданная в jsHandle.evaluateHandle, возвращает Promise, то jsHandle.evaluateHandle будет ожидать разрешения промиса и вернет его значение.

Смотрите 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, она не будет вызвана.

примечание

Метод вернет пустой JSON объект, если ссылочный объект не может быть преобразован в строку. Он вызовет ошибку, если объект имеет циклические ссылки.

Использование

js_handle.json_value()

Возвращает


Свойства

as_element

Добавлено до версии v1.9 jsHandle.as_element

Возвращает либо null, либо сам объект, если объект является экземпляром ElementHandle.

Использование

js_handle.as_element()

Возвращает