Text Assertions in Playwright
Text Assertions in Playwright: definition, detailed explanation, practical usage, examples, mistakes, interview notes, and practice for Playwright automation.
Definition and Brief Explanation
Definition: Text Assertions in Playwright is used to wait for and verify a specific browser, page, network, or UI condition.
Explanation: Text Assertions makes tests reliable because it checks the state that matters instead of waiting for a guessed amount of time. In Playwright, expect assertions retry for a short period, which helps with dynamic pages.
Why It Matters
- It proves the application reached the expected state.
- It replaces fixed sleeps with meaningful waits.
- It gives clearer failure messages than manual checks.
- It helps separate real product bugs from timing issues.
How It Works
- Trigger the behavior that should change state.
- Choose the exact condition that proves success.
- Use retrying expect assertions where possible.
- Keep custom timeout changes local and justified.
Syntax and Examples
Example 1: Exact text
await expect(page.getByTestId('total')).toHaveText('$100');
Explanation: Checks exact text after retrying.
Example 2: Contains text
await expect(page.locator('.alert')).toContainText('success');
Explanation: Passes when the element contains success.
Common Mistakes
- Waiting for a generic condition when a specific assertion is available.
- Increasing global timeout instead of fixing the wait target.
- Asserting text or count too broadly.
- Using non-retrying checks on dynamic UI.
Interview Notes
- What does Text Assertions verify?
- Why is a retrying assertion useful?
- How do you debug a timeout?
- What is a better alternative to waitForTimeout?
Practice Task
Create a small Playwright example for Text Assertions. Add one positive assertion, one note about what can go wrong, and one improvement that would make the test more maintainable.