Skip to main content
Version: 23.10.0

Page.click() method

This method fetches an element with selector, scrolls it into view if needed, and then uses Page.mouse to click in the center of the element. If there's no element matching selector, the method throws an error.

Signature

class Page {
click(selector: string, options?: Readonly<ClickOptions>): Promise<void>;
}

Parameters

Parameter

Type

Description

selector

string

selector to query the page for. CSS selectors can be passed as-is and a Puppeteer-specific selector syntax allows quering by text, a11y role and name, and xpath and combining these queries across shadow roots. Alternatively, you can specify the selector type using a prefix. If there are multiple elements satisfying the selector, the first will be clicked

options

Readonly<ClickOptions>

(Optional) Object

Returns:

Promise<void>

Promise which resolves when the element matching selector is successfully clicked. The Promise will be rejected if there is no element matching selector.

Remarks

Bear in mind that if click() triggers a navigation event and there's a separate page.waitForNavigation() promise to be resolved, you may end up with a race condition that yields unexpected results. The correct pattern for click and wait for navigation is the following:

const [response] = await Promise.all([
page.waitForNavigation(waitOptions),
page.click(selector, clickOptions),
]);

Shortcut for page.mainFrame().click(selector[, options]).