ElementHandle.waitForXPath() method
Warning: This API is now obsolete.
Use ElementHandle.waitForSelector() with the
xpath
prefix.Wait for the
xpath
within the element. If at the moment of calling the method thexpath
already exists, the method will return immediately. If thexpath
doesn't appear after thetimeout
milliseconds of waiting, the function will throw.If
xpath
starts with//
instead of.//
, the dot will be appended automatically.This method works across navigation
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
let currentURL;
page
.waitForXPath('//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();
})();
Signature:
class ElementHandle {
waitForXPath(
xpath: string,
options?: {
visible?: boolean;
hidden?: boolean;
timeout?: number;
}
): Promise<ElementHandle<Node> | null>;
}
Parameters
Parameter | Type | Description |
---|---|---|
xpath | string | A xpath of an element to wait for |
options | { visible?: boolean; hidden?: boolean; timeout?: number; } | (Optional) Optional waiting parameters |
Returns:
Promise<ElementHandle<Node> | null>
Promise which resolves when element specified by xpath string is added to DOM. Resolves to null
if waiting for hidden: true
and xpath is not found in DOM.
Remarks
The optional Argument options
have properties:
visible
: A boolean to wait for element to be present in DOM and to be visible, i.e. to not havedisplay: none
orvisibility: hidden
CSS properties. Defaults tofalse
.hidden
: A boolean wait for element to not be found in the DOM or to be hidden, i.e. havedisplay: none
orvisibility: hidden
CSS properties. Defaults tofalse
.timeout
: A number which is maximum time to wait for in milliseconds. Defaults to30000
(30 seconds). Pass0
to disable timeout. The default value can be changed by using the Page.setDefaultTimeout() method.