Skip to content

Worker

Source URL: https://playwright.dev/docs/api/class-worker

The Worker class represents a WebWorker. worker event is emitted on the page object to signal a worker creation. close event is emitted on the worker object when the worker is gone.

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());

Added before v1.9 worker.evaluate

Returns the return value of pageFunction.

If the function passed to the worker.evaluate() returns a Promise, then worker.evaluate() would wait for the promise to resolve and return its value.

If the function passed to the worker.evaluate() returns a non-Serializable value, then worker.evaluate() returns undefined. Playwright also supports transferring some additional values that are not serializable by JSON: -0, NaN, Infinity, -Infinity.

Usage

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

Arguments

Function to be evaluated in the worker context.

Optional argument to pass to pageFunction.

Returns


Added before v1.9 worker.evaluateHandle

Returns the return value of pageFunction as a JSHandle.

The only difference between worker.evaluate() and worker.evaluateHandle() is that worker.evaluateHandle() returns JSHandle.

If the function passed to the worker.evaluateHandle() returns a Promise, then worker.evaluateHandle() would wait for the promise to resolve and return its value.

Usage

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

Arguments

Function to be evaluated in the worker context.

Optional argument to pass to pageFunction.

Returns


Added before v1.9 worker.url

Usage

worker.url();

Returns


Added in: v1.57 worker.waitForEvent

Waits for event to fire and passes its value into the predicate function. Returns when the predicate returns truthy value. Will throw an error if the page is closed before the event is fired. Returns the event data value.

Usage

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

Arguments

Event name, same one typically passed into *.on(event).

Receives the event data and resolves to truthy value when the waiting should resolve.

* `timeout` [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type "Number") _(optional)_

Maximum time to wait for in milliseconds. Defaults to 0 - no timeout. The default value can be changed via actionTimeout option in the config, or by using the browserContext.setDefaultTimeout() or page.setDefaultTimeout() methods.

Either a predicate that receives an event or an options object. Optional.

Receives the event data and resolves to truthy value when the waiting should resolve.

Returns


Added before v1.9 worker.on(‘close’)

Emitted when this dedicated WebWorker is terminated.

Usage

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

Event data


Added in: v1.57 worker.on(‘console’)

Emitted when JavaScript within the worker calls one of console API methods, e.g. console.log or console.dir.

Usage

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

Event data