Spec-Zone.ru › Playwright

Worker

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

page.on('worker', worker => {
  console.log('Worker created: ' + worker.url());
  worker.on('close', worker => console.log('Worker destroyed: ' + worker.url()));
});

console.log('Current workers:');
for (const worker of page.workers())
  console.log('  ' + worker.url());

Методы​

evaluate​

Добавлено до версии 1.9

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

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

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

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

await worker.evaluate(pageFunction);
await worker.evaluate(pageFunction, arg);

Аргументы

  • pageFunction function | string

    Функция, выполняемая в контексте worker.

  • arg EvaluationArgument (необязательно)

    Необязательный аргумент, передаваемый в pageFunction.

Возвращает

  • Promise<Serializable>

evaluateHandle​

Добавлено до версии 1.9

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

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

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

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

await worker.evaluateHandle(pageFunction);
await worker.evaluateHandle(pageFunction, arg);

Аргументы

  • pageFunction function | string

    Функция, выполняемая в контексте worker.

  • arg EvaluationArgument (необязательно)

    Необязательный аргумент, передаваемый в pageFunction.

Возвращает

  • Promise<JSHandle>

url​

Добавлено до версии 1.9

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

worker.url();

Возвращает

  • string

waitForEvent​

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

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

// Start waiting for download before clicking. Note no await.
const consolePromise = worker.waitForEvent('console');
await worker.evaluate('console.log(42)');
const consoleMessage = await consolePromise;

Аргументы

  • event string

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

  • optionsOrPredicate function | Object (необязательно)

    • predicate function

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

    • timeout number (необязательно)

      Максимальное время ожидания в миллисекундах. По умолчанию 0 — без тайм-аута. Значение по умолчанию можно изменить с помощью параметра actionTimeout в конфигурации или методами browserContext.setDefaultTimeout() либо page.setDefaultTimeout().

    Функция-предикат, получающая событие, или объект параметров. Необязательно.

  • options Object (необязательно)

    • predicate function (необязательно)

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

    • signal AbortSignal (необязательно)

      Позволяет отменить ожидание с помощью AbortSignal. Если сигнал прерван, ожидание будет отменено, а операция выбросит ошибку. Обратите внимание: передача сигнала не отключает тайм-аут по умолчанию. Его можно изменить с помощью browserContext.setDefaultTimeout(); передайте timeout: 0, чтобы полностью отключить тайм-аут.

Возвращает

  • Promise<Object>

События​

on('close')​

Добавлено до версии 1.9

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

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

worker.on('close', data => {});

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

  • Worker

on('console')​

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

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

worker.on('console', data => {});

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

  • ConsoleMessage

© 2026 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/api/class-worker

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API