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

Worker

Класс Worker представляет WebWorker. Событие worker генерируется на объекте страницы для сигнализации о создании воркера. Событие close генерируется на объекте воркера, когда воркер завершает работу.

def handle_worker(worker):
print("worker created: " + worker.url)
worker.on("close", lambda: print("worker destroyed: " + worker.url))

page.on('worker', handle_worker)

print("current workers:")
for worker in page.workers:
print(" " + worker.url)

Методы

evaluate

Добавлено до версии v1.9 worker.evaluate

Возвращает значение, возвращаемое expression.

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

Если функция, переданная в worker.evaluate(), возвращает значение, не являющееся Serializable, то worker.evaluate() возвращает undefined. Playwright также поддерживает передачу некоторых дополнительных значений, которые не сериализуются через JSON: -0, NaN, Infinity, -Infinity.

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

worker.evaluate(expression)
worker.evaluate(expression, **kwargs)

Аргументы

  • expression str#

    JavaScript выражение для выполнения в контексте браузера. Если выражение оценивается как функция, функция автоматически вызывается.

  • arg EvaluationArgument (опционально)#

    Опциональный аргумент для передачи в expression.

Возвращает


evaluate_handle

Добавлено до версии v1.9 worker.evaluate_handle

Возвращает значение, возвращаемое expression в виде JSHandle.

Единственное отличие между worker.evaluate() и worker.evaluate_handle() заключается в том, что worker.evaluate_handle() возвращает JSHandle.

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

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

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

Аргументы

  • expression str#

    JavaScript выражение для выполнения в контексте браузера. Если выражение оценивается как функция, функция автоматически вызывается.

  • arg EvaluationArgument (опционально)#

    Опциональный аргумент для передачи в expression.

Возвращает


expect_event

Добавлено в: v1.57 worker.expect_event

Ждёт срабатывания события и передаёт его значение в функцию-предикат. Возвращается, когда предикат возвращает truthy-значение. Выбросит ошибку, если страница будет закрыта до того, как событие сработает. Возвращает значение данных события.

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

with worker.expect_event("console") as event_info:
worker.evaluate("console.log(42)")
message = event_info.value

Аргументы

  • event str#

    Имя события — то же, которое обычно передают в *.on(event).

  • predicate Callable (опционально)#

    Получает данные события и возвращает truthy-значение, когда ожидание должно завершиться.

  • timeout float (опционально)#

    Максимальное время ожидания в миллисекундах. По умолчанию 30000 (30 секунд). Передайте 0, чтобы отключить таймаут. Значение по умолчанию можно изменить с помощью browser_context.set_default_timeout().

Возвращает


Свойства

url

Добавлено до версии v1.9 worker.url

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

worker.url

Возвращает


События

on("close")

Добавлено до версии v1.9 worker.on("close")

Генерируется, когда этот выделенный WebWorker завершает работу.

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

worker.on("close", handler)

Данные события


on("console")

Добавлено в: v1.57 worker.on("console")

Срабатывает, когда JavaScript внутри worker вызывает один из методов Console API, например console.log или console.dir.

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

worker.on("console", handler)

Данные события