Text Locator in Playwright
Text Locator in Playwright: definition, detailed explanation, practical usage, examples, mistakes, interview notes, and practice for Playwright automation.
Definition and Brief Explanation
Definition: A text locator finds an element by visible text on the page.
Explanation: Text locators are useful for headings, messages, labels, cards, and simple links. They should be used carefully when the same text appears many times, because repeated text can make the locator ambiguous.
Why It Matters
- It makes tests easier to read because the locator describes the target element clearly.
- It reduces flaky failures caused by layout changes or generated CSS classes.
- It works with Playwright auto-waiting, so actions and assertions wait for the element state.
- It supports maintainable Page Object Model code because selectors are meaningful.
How It Works
- Identify the element by user-facing meaning first: role, label, text, placeholder, alt text, or title.
- Confirm the locator points to the intended element and is unique when used for an action.
- Use filters, chaining, or test ids when the page has repeated controls.
- Avoid positional locators unless order is the behavior being tested.
Syntax and Examples
Example 1: Visible text
await page.getByText('Order completed').click();
Explanation: Finds visible text. Good for messages and static content.
Example 2: Regex text
await expect(page.getByText(/completed/i)).toBeVisible();
Explanation: A regular expression helps when the text case or full sentence may vary.
Common Mistakes
- Using generated CSS classes as the first option.
- Using broad text that appears in many places.
- Adding nth() only to silence strict mode.
- Storing element handles instead of using locators.
Interview Notes
- What is a Text Locator in Playwright?
- When would you choose Text Locator?
- How do you make the locator unique?
- What makes this locator stable or unstable?
Practice Task
Create a small Playwright example for Text Locator. Add one positive assertion, one note about what can go wrong, and one improvement that would make the test more maintainable.