page.$$(selector)
Warning
When possible, use locator-based
page.locator(selector)instead.However, using
locators may not always work when selecting an element from a list or table, especially if there isn’t a reliable way to consistently identify a single element (for example, due to changing or non-unique attributes). In such cases,$$remains useful.
The method finds all elements matching the specified selector within the page. If no elements match the selector, the return value resolves to []. This is particularly useful when you want to retrieve a list of elements, and iterate through them to find the one that you need for your test case.
Returns
| Type | Description | 
|---|---|
| Promise<ElementHandle[]> | A Promise that fulfills with the ElementHandle array of the selector when matching elements are found. | 
Example
import { browser } from 'k6/browser';
export const options = {
  scenarios: {
    browser: {
      executor: 'shared-iterations',
      options: {
        browser: {
          type: 'chromium',
        },
      },
    },
  },
};
export default async function () {
  const page = await browser.newPage();
  await page.goto('https://test.k6.io/');
  // Retrieve all the td elements.
  const cells = await page.$$('td');
  for (let i = 0; i < cells.length; i++) {
    if ((await cells[i].innerText()) == '/pi.php?decimals=3') {
      // When the element is found, click on it and
      // wait for the navigation.
      await Promise.all([page.waitForNavigation(), cells[i].click()]);
      break;
    }
  }
  // Wait for an important element to load.
  await page.locator('//pre[text()="3.141"]').waitFor();
}





