Skip to main content
Version: 22.3.0 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.


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


selectorstringA selector to search for element to click. If there are multiple elements satisfying the selector, the first will be clicked
optionsReadonly<ClickOptions>(Optional) Object



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


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),, clickOptions),

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