Timeouts in Playwright
Timeouts in Playwright: definition, detailed explanation, practical usage, examples, mistakes, interview notes, and practice for Playwright automation.
Definition and Brief Explanation
Definition: Timeouts in Playwright is used to wait for and verify a specific browser, page, network, or UI condition.
Explanation: Timeouts 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: Assertion timeout
await expect(page.getByText('Report ready')).toBeVisible({ timeout: 10000 });
Explanation: Gives this assertion up to ten seconds because report generation may be slow.
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 Timeouts 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 Timeouts. Add one positive assertion, one note about what can go wrong, and one improvement that would make the test more maintainable.