What is the method to find all hyperlinks on a webpage using Playwright's locators?


Locating Links with Playwright

You can easily find all links on a webpage using Playwright's locators. Let's use the page.locator() function with a CSS selector or XPath expression that targets the <a> elements.

Here's how you can do it with a CSS selector:

const links = await page.locator('a').elements();

This code will give you an array of ElementHandles for all the link elements on the page. You can then interact with these elements, like clicking them or extracting their attributes.

If you prefer XPath over CSS selectors, you can modify the locator like this:

const links = await page.locator('//a').elements();

This will also give you an array of ElementHandles for all the link elements found using XPath.

Remember, both CSS selectors and XPath expressions are tied to the DOM structure. If the DOM changes, these locators might break. So, try to create locators that are closer to how users see the page or use test ids.

Playwright also supports locating elements within Shadow DOM. But, there might be cases where certain locators don't work within Shadow DOM.

So, to sum up:

  1. Use page.locator() with a CSS selector ('a') or an XPath expression ('//a').
  2. Interact with the returned ElementHandles.
  3. Use resilient locators based on user perception or test ids.
  4. Be aware of potential limitations with Shadow DOM.

For more insights on Playwright, check out this blog post.


Thank you!
Was this helpful?
Still have questions?

If you still have questions, please ask a question and I will try to answer it.

Related Discord Threads

Related Questions

AboutQuestionsDiscord ForumBrowser ExtensionTagsQA Jobs

Rayrun is a community for QA engineers. I am constantly looking for new ways to add value to people learning Playwright and other browser automation frameworks. If you have feedback, email luc@ray.run.