Skip to main content
Version: Next

Frame.waitForSelector() method

Signature:

class Frame {
waitForSelector<Selector extends string>(
selector: Selector,
options?: WaitForSelectorOptions
): Promise<ElementHandle<NodeFor<Selector>> | null>;
}

Parameters

ParameterTypeDescription
selectorSelectorthe selector to wait for.
optionsWaitForSelectorOptions(Optional) options to define if the element should be visible and how long to wait before timing out.

Returns:

Promise<ElementHandle<NodeFor<Selector>> | null>

a promise which resolves when an element matching the selector string is added to the DOM.

Remarks

Wait for the selector to appear in page. If at the moment of calling the method the selector already exists, the method will return immediately. If the selector doesn't appear after the timeout milliseconds of waiting, the function will throw.

This method works across navigations.

Example

const puppeteer = require('puppeteer');

(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
let currentURL;
page
.mainFrame()
.waitForSelector('img')
.then(() => console.log('First URL with image: ' + currentURL));

for (currentURL of [
'https://example.com',
'https://google.com',
'https://bbc.com',
]) {
await page.goto(currentURL);
}
await browser.close();
})();