Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

In Playwright, use getByRole() with an accessible name for interactive controls, getByLabel() for labeled form fields, and getByText() for ordinary visible text. When a page repeats the same control, first locate its card or row, then find the control inside that container. Make a single-target locator unique before clicking; Playwright waits for actionability, but it cannot tell whether you chose the right element.

Choose a locator that matches what the test is checking

Playwright describes locators as “the central piece of Playwright’s auto-waiting and retry-ability.” The locator API gives tests ways to identify elements by user-facing semantics or by explicit implementation hooks. Prefer the user-facing option that expresses the behavior under test where possible. See the Playwright locator guide.

Interactive controls: role and accessible name

For buttons, links, checkboxes, and headings, use getByRole() with a meaningful accessible name:

const signInButton = page.getByRole('button', { name: 'Sign in' });
await signInButton.click();

This targets the control by the role and name available to users and assistive technology, and makes those semantics part of the test’s contract. If the role or accessible name is wrong, a role-based test can reveal that mismatch.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Elebase USB to USB C Adapter for iPhone 18 Pro Max,USBC Car Charger Adapter
  • Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
  • Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
  • Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
  • Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
  • 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.

Form fields: label first

For a labeled input, use getByLabel():

await page.getByLabel('Password').fill('example-password');

A placeholder can be useful if the input has no label and the placeholder is meaningful:

await page.getByPlaceholder('Search products').fill('camera');

Prefer a label when one exists: placeholder text is not a substitute for a properly labeled form control.

Non-interactive text and other attributes

Use getByText() for ordinary visible content, such as a message or paragraph:

Rank #2
Anker USB-C Hub, 5-in-1 USB Hub for Laptops, 4K HDMI Multiport Adapter
  • 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
  • 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
  • Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
  • 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
  • What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
await expect(page.getByText('Your changes have been saved')).toBeVisible();

Text matching normalizes whitespace; use exact matching when the distinction matters:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
page.getByText('Saved', { exact: true });

Playwright also provides locators based on alt text and title. Use them when that attribute is the relevant, intentional way to identify the element. The supported alternatives are documented in Other locators.

Test IDs: an explicit test contract

Use getByTestId() when a stable testing hook is more suitable than user-facing text or semantics:

Rank #3
Sale
Anker USB C Hub, 7in1 Multi-Port USB Adapter, 4K@60Hz USBC to HDMI Splitter
  • Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
  • Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
  • Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
  • Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
  • What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
await page.getByTestId('account-menu').click();

Playwright uses data-testid by default, and the attribute can be configured. A test ID can survive copy changes, but it does not establish that the element has the correct role, accessible name, or user-facing text. Use it deliberately rather than as a default for every element. See the locator guide.

Make repeated elements specific by scoping them

If several cards each have an “Add to cart” button, identify the intended card first, then locate its button. This expresses which item the test means rather than relying on the button’s position in the page.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
const product = page.getByRole('listitem').filter({ hasText: 'Product 2' });
await product.getByRole('button', { name: 'Add to cart' }).click();

The locator inside filter({ has: ... }) is evaluated relative to the outer match. You can also scope with a child locator that identifies a distinctive part of a row or card:

Rank #4
Sale
UGREEN USB to USB C Adapter Combo 4-Pack, 10Gbps USB C Converter Space Gray
  • Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
  • Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
  • Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
  • Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
  • Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
const row = page.getByRole('row').filter({ hasText: 'Alex Morgan' });
await row.getByRole('button', { name: 'Edit' }).click();

Choose a container and identifying text that distinguish one item from the others. Playwright’s best-practices guide recommends user-facing locators and locator composition over selectors tied to implementation details.

Resolve ambiguity instead of guessing an index

Actions such as click() are strict: they require one matching element. If a locator matches multiple buttons, Playwright reports a strictness error instead of silently choosing one. Refine it by adding a role and accessible name, matching more specific text, or scoping it to a unique row or card.

Methods such as .first(), .last(), and .nth() can select an item by position, but an index may refer to a different item when the page’s order changes. Use positional selection only when order itself is meaningful and stable for the test. Otherwise, make the locator identify the intended item by its content or a deliberate test hook.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
Anker USB C Hub, 5-in-1 USBC to HDMI Splitter with 4K Display
  • 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
  • Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
  • Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
  • HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
  • What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Understand what auto-waiting checks

Before a click, Playwright waits for the locator to resolve to exactly one element and for that element to be visible, stable, enabled, and able to receive events. If a required check does not pass before the timeout, the action times out. These checks make actions wait for readiness; they do not verify that the locator points to the element your test intended. Consult Playwright’s actionability documentation.

When an action times out, investigate whether the element is present, visible, enabled, stable, unobscured, and uniquely matched. A longer delay does not fix a locator that identifies the wrong target or a page state that never becomes ready.

Use CSS and XPath when they express a real need

page.locator() supports CSS and XPath selectors. They can be useful when the target has no suitable user-facing locator or test ID, or when the test intentionally checks a structural detail. For example:

const price = page.locator('[data-price]');

A long selector that depends on several class names, ancestor levels, or element position can break when the implementation is redesigned—even if the user-facing behavior is unchanged. Prefer a role, label, text, or explicit test ID when that better expresses the target. Playwright discusses selector trade-offs in its best practices and other locators documentation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Generate and review locator suggestions with Codegen

Playwright’s Codegen can inspect a page and propose locators. Its suggestions prioritize role, text, and test IDs, but generated code is a starting point: review whether the locator reflects the intended behavior and uniquely identifies the target. See Writing tests.

Troubleshoot common locator failures

Symptom Likely cause What to change
Strictness error on a click The locator matches more than one element. Add a meaningful role and name, refine the text, or scope the locator to the intended card or row.
Action times out The element did not satisfy one or more actionability checks before the timeout, or the page never reached the expected state. Check presence, visibility, stability, enabled state, event reception, and uniqueness. Fix the page-state or locator issue rather than adding an arbitrary delay.
Locator breaks after a redesign The selector depended on CSS classes or DOM structure that changed. Use a user-facing role, label, or text locator, or a deliberate test ID if that is the intended contract.
A text locator finds the wrong control The text is shared or does not identify the interactive element’s semantics. Use getByRole() with the control’s accessible name and scope it to the relevant container if necessary.
.nth() selects a different item The list order changed, so the index now points elsewhere. Identify the row or card by its content or stable test hook, then locate the intended child control.

Or skip the browser setup

If you need a screenshot rather than an interactive test, ScreenshotNeo offers a website screenshot API. For an API key, this cURL request returns a WebP screenshot for the target URL; parameter details are in the ScreenshotNeo documentation.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

ScreenshotNeo accepts cookie or consent banners as a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; each of those steps can be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, and the response identifies the page verdict and billing status in headers. Its MCP server offers take_screenshot, get_page_info, and capture_pdf for AI agents and MCP clients. The Free plan includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots. Sign up for free and get 1,000 screenshots a month with no card.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.