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Возвращает значение, возвращаемое 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)
Аргументы
-
JavaScript выражение для выполнения в контексте браузера. Если выражение оценивается как функция, функция автоматически вызывается.
-
argEvaluationArgument (опционально)#Опциональный аргумент для передачи в expression.
Возвращает
evaluate_handle
Добавлено до версии v1.9Возвращает значение, возвращаемое 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)
Аргументы
-
JavaScript выражение для выполнения в контексте браузера. Если выражение оценивается как функция, функция автоматически вызывается.
-
argEvaluationArgument (опционально)#Опциональный аргумент для передачи в expression.
Возвращает
expect_event
Добавлено в: v1.57Ждёт срабатывания события и передаёт его значение в функцию-предикат. Возвращается, когда предикат возвращает truthy-значение. Выбросит ошибку, если страница будет закрыта до того, как событие сработает. Возвращает значение данных события.
Использование
- Sync
- Async
with worker.expect_event("console") as event_info:
worker.evaluate("console.log(42)")
message = event_info.value
async with worker.expect_event("console") as event_info:
await worker.evaluate("console.log(42)")
message = await event_info.value
Аргументы
-
Имя события — то же, которое обычно передают в
*.on(event). -
predicateCallable (опционально)#Получает данные события и возвращает truthy-значение, когда ожидание должно завершиться.
-
Максимальное время ожидания в миллисекундах. По умолчанию
30000(30 секунд). Передайте0, чтобы отключить таймаут. Значение по умолчанию можно изменить с помощью browser_context.set_default_timeout().
Возвращает
Свойства
url
Добавлено до версии v1.9Использование
worker.url
Возвращает
События
on("close")
Добавлено до версии v1.9Генерируется, когда этот выделенный WebWorker завершает работу.
Использование
worker.on("close", handler)
Данные события
on("console")
Добавлено в: v1.57Срабатывает, когда JavaScript внутри worker вызывает один из методов Console API, например console.log или console.dir.
Использование
worker.on("console", handler)
Данные события