In this tutorial, we will explore how to click a link with specific text using Puppeteer, a powerful Node.js library for controlling headless Chrome or Chromium.
When working with web automation, it is often necessary to interact with buttons or links on a page. In this specific case, let’s say we want to click an “Accept all” cookie button.
To accomplish this task, we can use the following code snippet:
const [linkCookie] = await page.$x("//a[contains(., 'Accept all')]");
if (linkCookie) {
await linkCookie.click();
}
Here, we utilize the page.$x()
function, which allows us to evaluate XPath expressions within the context of the current page. The XPath expression "//a[contains(., 'Accept all')]"
selects an a
element that contains the text “Accept all”. The [linkCookie]
assignment utilizes array destructuring to extract the first element from the resulting array.
If the linkCookie
element exists (i.e., if a match is found), we invoke the click()
method to simulate a user click on the element.
Note: If the button is an HTML button
element instead of an a
element, the code snippet needs to be adjusted accordingly:
page.$x("//button[contains(., 'Accept all')]");
Make sure to select the appropriate element type in your XPath expression.
For a more comprehensive guide on Puppeteer, be sure to check out my full Puppeteer tutorial. It covers various topics, including navigating pages, interacting with forms, taking screenshots, and more.