waitForFunction(pageFunction, arg[, options])
Documentation
Grafana k6
JavaScript API
k6/browser
Page
waitForFunction(pageFunction, arg[, options])
Open source
waitForFunction(pageFunction, arg[, options])
Returns when the pageFunction
returns a truthy value.
Parameter | Type | Default | Description |
---|---|---|---|
pageFunction | function | Function to be evaluated in the page context. | |
arg | string | '' | Optional argument to pass to pageFunction |
options | object | null | |
options.polling | number or raf | raf | If polling is 'raf' , then pageFunction is constantly executed in requestAnimationFrame callback. If polling is a number, then it is treated as an interval in milliseconds at which the function would be executed. |
options.timeout | number | 30000 | Maximum time in milliseconds. Pass 0 to disable the timeout. Default is overridden by the setDefaultTimeout option on
BrowserContext or
Page. |
Returns
Type | Description |
---|---|
Promise< JSHandle> | The JSHandle instance associated with the page. |
Example
JavaScript
import { browser } from 'k6/browser';
import { check } from 'https://jslib.k6.io/k6-utils/1.5.0/index.js';
export const options = {
scenarios: {
browser: {
executor: 'shared-iterations',
options: {
browser: {
type: 'chromium',
},
},
},
},
};
export default async function () {
const page = await browser.newPage();
try {
await page.evaluate(() => {
setTimeout(() => {
const el = document.createElement('h1');
el.innerHTML = 'Hello';
document.body.appendChild(el);
}, 1000);
});
const ok = await page.waitForFunction("document.querySelector('h1')", {
polling: 'mutation',
timeout: 2000,
});
await check(ok, {
'waitForFunction successfully resolved': async (ok) =>
await ok.innerHTML() == 'Hello'
});
} finally {
await page.close();
}
}
Was this page helpful?
Related resources from Grafana Labs
Additional helpful documentation, links, and articles:
24 Apr

Getting started with Grafana dashboard design
In this webinar, you'll learn how to design stylish and easily accessible Grafana dashboards that tell a story.
08 May

Grafana 12 deep dive
It wouldn’t be GrafanaCON without a new release. Join us as we dive into the latest features of Grafana 12, including dashboards as code, Git-based configs, dynamic dashboards, and more.
08 May

Monitoring EA App’s 200+ core error metrics with a scalable, color-coded Grafana dashboard
Learn how engineers at Electronic Arts built a Grafana dashboard that client teams can use to monitor 200+ core error metrics.