Free tools Windows power users keep installed
One-click scans. No signup required.
Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.
A Playwright fixture timeout usually means setup or teardown did not finish within the time Playwright allowed—not necessarily that the test body itself is slow. Read the full error and call log, identify the stalled operation and lifecycle phase, then adjust only the timeout that governs that work or fix the missing readiness signal. Fixture setup normally counts toward the test timeout; a fixture can have its own timeout when appropriate.
First identify which timeout expired
Playwright Test has several timeout controls with different scopes. The official Timeouts documentation lists a test timeout, assertion timeout, global timeout, action and navigation timeouts, hook timeouts, and fixture timeouts. Defaults documented there are version-sensitive; the page does not state a publication date or release number.
| Timeout | What it limits | Documented default |
|---|---|---|
| Test | Overall work for a test, including fixture setup and the test body | 30,000 ms |
| Auto-retrying assertion | How long a web-first assertion retries | 5,000 ms |
| Global | The entire test run | No default |
| Action and navigation | Individual browser actions or navigations | No default |
| Individual fixture | A fixture’s setup and teardown when given its own timeout | No default |
| beforeAll and afterAll | Each of these hooks | Defaults to the test timeout |
These defaults are the values documented by Playwright, not a guarantee for every installed version or project configuration. Check your configuration and the official page for the version you use.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallOutdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchUse the error and call log as a map
Read the complete failure output rather than relying on a shortened test-run summary. A fixture name or fixture timeout points toward fixture setup or teardown; an assertion matcher points toward an expect timeout; a locator or navigation call may have its own operation timeout; and a test timeout indicates the broader test budget expired. The phase matters too: setup, test body, and cleanup have different timing rules.
#1 Best Overall
- KEYBOARD: The keyboard works for Windows with hot keys that enable easy access to Media, My Computer, Mute, Volume up/down, and Calculator
- EASY SETUP: Experience simple installation with the USB wired connection
- VERSATILE COMPATIBILITY: This keyboard is designed to work with multiple Windows versions, including Vista, 7, 8, 10 offering broad compatibility across devices.
- SLEEK DESIGN: The elegant black color of the wired keyboard complements your tech and decor, adding a stylish and cohesive look to any setup without sacrificing function.
- FULL-SIZED CONVENIENCE: The standard QWERTY layout of this keyboard set offers a familiar typing experience, ideal for both professional tasks and personal use.
Understand where fixture time is counted
Playwright’s Fixtures documentation says fixture setup and teardown count toward the test timeout. That means a test can time out before reaching its first assertion if a fixture is waiting on authentication, a service, test-data creation, or a readiness check.
Setup and test body
Without a separately configured fixture timeout, setup work consumes the test’s budget. If the fixture is legitimately slow, set an appropriate timeout on that fixture rather than expanding the allowance for every test. Before changing the number, inspect each awaited step and confirm that the expected service or state can actually become ready.
Teardown and afterEach
Playwright documents a separate timeout window of the same value for teardown and afterEach after the test function finishes. A cleanup failure therefore does not necessarily mean fixture setup had too little time. Inspect cleanup awaits and the relevant hook before changing setup-related limits.
Recommended Free Tools
Worker-scoped fixtures
Worker-scoped fixtures have their own timeout, which the fixture guide says defaults to the test timeout and can be changed. Their startup work may be shared across tests in a worker, so distinguish a worker fixture that fails to initialize from a test-scoped fixture that stalls for one test.
Rank #2
- Reliable Plug and Play: The USB receiver provides a reliable wireless connection up to 33 ft (1), so you can forget about drop-outs and delays and you can take it wherever you use your computer
- Type in Comfort: The design of this keyboard creates a comfortable typing experience thanks to the low-profile, quiet keys and standard layout with full-size F-keys, number pad, and arrow keys
- Durable and Resilient: This full-size wireless keyboard features a spill-resistant design (2), durable keys and sturdy tilt legs with adjustable height
- Long Battery Life: MK270 combo features a 36-month keyboard and 12-month mouse battery life (3), along with on/off switches allowing you to go months without the hassle of changing batteries
- Easy to Use: This wireless keyboard and mouse combo features 8 multimedia hotkeys for instant access to the Internet, email, play/pause, and volume so you can easily check out your favorite sites
Diagnose the stalled await before increasing a timeout
- Reproduce one focused test. Avoid changing suite-wide settings before you know which operation is slow.
- Run it with Inspector:
npx playwright test path/to/test.spec.ts --debug. Replace the path with your test file. Debug mode opens Playwright Inspector in a headed browser and sets the default timeout to zero, so it can help you step through a stall without the usual timeout interrupting diagnosis. - Step to the last completed operation. Inspect the actionability log and the exact awaited call that does not complete. Check whether a locator is absent, obscured, disabled, or waiting for the wrong state; whether a navigation or request is pending; or whether the fixture’s service/data setup has a readiness check.
- Choose a meaningful condition. For an element, use a locator action or web-first assertion. For asynchronous application work, wait for the relevant event or observable state rather than elapsed time.
- Re-run normally. Debug mode’s zero default timeout is for diagnosis, not a suitable production setting. Verify the focused test with ordinary settings after the fix.
The Page API documentation explicitly cautions: “Never wait for timeout in production. Tests that wait for time are inherently flaky. Use Locator actions and web assertions that wait automatically.” See Page.waitForTimeout.
Apply the narrowest matching timeout change
The examples below use TypeScript and Playwright Test. Select the control whose scope matches the failing work; the numbers are illustrative except where marked as documented defaults.
Give a legitimately slow fixture its own budget
Use the fixture tuple’s options when setup or teardown for that fixture is expected to take longer than the test’s ordinary allowance. The fixture guide documents this pattern:
import { test as base } from '@playwright/test';
type Fixtures = {
account: { id: string };
};
export const test = base.extend<Fixtures>({
account: [async ({}, use) => {
const account = await createAccount();
await waitForAccountReady(account.id);
await use(account);
await deleteAccount(account.id);
}, { timeout: 60_000 }],
});
Here, 60_000 is an example, not a recommended universal value. Keep the allowance proportionate to measured, expected work. If an awaited operation can hang indefinitely, use an appropriate bound and error handling in that operation too.
Rank #3
- All-day Comfort: The design of this standard keyboard creates a comfortable typing experience thanks to the deep-profile keys and full-size standard layout with F-keys and number pad
- Easy to Set-up and Use: Set-up couldn't be easier, you simply plug in this corded keyboard via USB on your desktop or laptop and start using right away without any software installation
- Compatibility: This full-size keyboard is compatible with Windows 7, 8, 10 or later, plus it's a reliable and durable partner for your desk at home, or at work
- Spill-proof: This durable keyboard features a spill-resistant design (1), anti-fade keys and sturdy tilt legs with adjustable height, meaning this keyboard is built to last
- Plastic parts in K120 include 51% certified post-consumer recycled plastic*
Change the test timeout only for a longer test
The documented default test timeout is 30 seconds. Configure a suite-wide value in playwright.config.ts only when the suite genuinely needs a different overall budget:
import { defineConfig } from '@playwright/test';
export default defineConfig({
timeout: 45_000,
});
For a local exception, use the test API or configure a group:
import { test } from '@playwright/test';
test('imports a large dataset', async ({ page }) => {
test.setTimeout(90_000);
// Test work
});
test.describe('slow integration cases', () => {
test.describe.configure({ timeout: 90_000 });
// Tests in this group
});
A longer test timeout does not change the default expect timeout. Avoid raising the global test allowance just to accommodate one known-slow fixture.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Change an assertion timeout for a slow-to-appear condition
Auto-retrying assertions default to 5 seconds according to the Timeouts page. Configure the shared expectation timeout or pass an exception to one assertion:
Rank #4
- 【Dreamy Rainbow Gaming Keyboard】K521 Gaming Keyboard Adopts a Different LED Backlight Design, Upgraded on the Traditional LED Backlight Effect, Making the Light More Penetrating, Giving You a More Dazzling Visual Effect, Making Your Gaming Process More Enjoyable
- 【One Touch Opens & Visual Feast】The K521 Red Dragon Keyboard has a One-Touch on/off Lighting Button for Added Convenience. It also has a Three-Position Adjustable Breathing Mode and a Four-Position Adjustable Brightness Lighting Mode
- 【Mechanical Feeling & Fast Tapping】The PC Keyboard Keys are Designed for Mechanical Feeling, Giving You a Better Feel During Use and the Ability to Trigger Keys Quickly, Allowing You to Win All Your Games
- 【19 Keys Anti-Ghosting Keyboard】Anti-Ghosting Ensures Every Button Can Be Triggered. This Allows You to Trigger Key Combinations In The Game Accurately, And Each Skill Can Be Accurately Released to Increase Your Winning Rate. Redragon K521 Will Be Your Perfect Partner
- 【12 Multimedia Combination Keys】The K521 Wired Gaming Keyboard is Equipped with 12 Multimedia Keys That Can Greatly Enhance Your Gaming/Office Efficiency and Make It More Convenient to Use
import { defineConfig } from '@playwright/test';
export default defineConfig({
expect: { timeout: 10_000 },
});
import { expect } from '@playwright/test';
await expect(page.getByText('Import complete')).toBeVisible({ timeout: 20_000 });
Prefer improving the condition or application readiness when the assertion is retrying because the test is looking for the wrong thing. Do not expect a larger test timeout to extend this assertion’s independent limit.
Adjust beforeAll or afterAll separately
These hooks have their own timeout, which defaults to the test timeout. If a particular hook legitimately needs more time, set it within that hook:
test.beforeAll(async () => {
test.setTimeout(60_000);
await startSharedService();
});
beforeEach time counts toward the test timeout. Treat a slow beforeEach as part of diagnosing the affected test’s budget rather than assuming it has the same separate window as beforeAll.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Use action or navigation controls only for that operation
Playwright has separate action and navigation timeout settings, with no default documented on the Timeouts page. If the error identifies a particular browser operation, inspect its call log and the applicable setting before changing a broader test timeout. A flaky click often indicates a readiness or actionability problem, not a need to raise every action timeout. The documentation cautions against broad increases without diagnosing the cause.
Best Value
- All-day Comfort: This USB keyboard creates a comfortable and familiar typing experience thanks to the deep-profile keys and standard full-size layout with all F-keys, number pad and arrow keys
- Built to Last: The spill-proof (2) design and durable print characters keep you on track for years to come despite any on-the-job mishaps; it’s a reliable partner for your desk at home, or at work
- Long-lasting Battery Life: A 24-month battery life (4) means you can go for 2 years without the hassle of changing batteries of your wireless full-size keyboard
- Simply plug the USB receiver into a USB port on your desktop, laptop or netbook computer and start using the keyboard right away without any software installation
- Simply Wireless: Forget about drop-outs and delays thanks to a strong, reliable wireless connection with up to 33 ft range (5); K270 is compatible with Windows 7, 8, 10 or later
Reserve global timeout for a whole-run cap
A global timeout limits the entire test run and has no default documented on the Timeouts page. It is not a fix for one slow fixture: increasing it may only allow the overall run to continue longer while the individual test still expires.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Common fixture timeout symptoms and fixes
| Symptom | Likely scope | What to inspect or change |
|---|---|---|
| The test times out before its body starts | Fixture setup or beforeEach work | Find the last awaited setup operation; add a fixture-specific timeout only if the work is expected to be slow. |
| A fixture-specific timeout is reported | Fixture setup or teardown | Check the fixture tuple options, startup/readiness logic, and cleanup awaits. |
An assertion such as toBeVisible times out |
Expect timeout | Confirm the locator and expected state; use an assertion-specific allowance only if the state legitimately takes longer. |
| A click or navigation reports a timeout | Action or navigation | Inspect actionability and navigation call logs, and wait for the actual state/event needed by the test. |
| The failure happens after the test body | Teardown or afterEach | Inspect cleanup and remember teardown/afterEach has a separate same-value window. |
| The run stops despite a single test appearing healthy | Global timeout | Check whether the cap applies to the complete run; do not treat it as a per-fixture setting. |
Reliability and runtime considerations
- Fix synchronization first. A fixed sleep can make a fast run slower and a slow run still flaky. Wait for a locator, assertion, event, or application state that proves the work is done.
- Keep timeout changes local. Per-fixture, per-assertion, per-test, and per-hook settings make a test’s intended allowance easier to understand than a large global increase.
- Bound external work thoughtfully. Network calls, service startup, and data setup can fail for reasons unrelated to Playwright. Give these operations meaningful readiness checks and useful errors instead of allowing an indefinite wait.
- Confirm under normal execution. Inspector’s debug behavior is intentionally different; a passing debug session alone does not prove the test is reliable under the configured timeouts.
Or skip the browser setup
If your goal is a screenshot rather than a browser-driven test, ScreenshotNeo offers a screenshot API and MCP server. A GET request takes a URL and returns an image or PDF without requiring you to configure a Playwright browser locally. See the API 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/consent banners before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets; these steps can be turned off. Bot checks/CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers indicate the page verdict and billing status. Its MCP server provides take_screenshot, get_page_info, and capture_pdf for Claude, Cursor, and other MCP clients. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000. Sign up free for 1,000 screenshots a month, with no card required.
Frequently Asked Questions
Does increasing the test timeout also increase Playwright’s expect timeout?
No. The test and auto-retrying assertion timeouts are separate settings; change the one that governs the failing work.
Should I use waitForTimeout to fix a fixture that is slow?
No. Use a readiness condition, locator, assertion, or relevant event rather than a fixed sleep.
Quick Recap
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.

