Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Playwright does not have one universal timeout. A failed test may have exceeded the test limit, an assertion may have stopped retrying, a navigation may have stalled, or a fixture or hook may have taken too long. Read the timeout error and call log first, then change only the setting that controls that operation. Playwright Test documents a 30,000 ms default per test and a 5,000 ms default for auto-retrying assertions; action and navigation timeouts in the test-runner options default to no timeout.
Identify which Playwright timeout failed
The wording of the error normally identifies the scope. Look for the operation named immediately before “Timeout” and inspect the call log printed by the runner.
- Test timeout: the test function, fixture setup, and
beforeEachwork exceeded the test limit. - Assertion timeout: an auto-retrying
expectcondition never became true within its own retry period. - Action timeout: a click, fill, check, or another locator action never became actionable.
- Navigation timeout:
goto,reload,waitForURL, or another navigation method did not complete. - Fixture or hook timeout: setup, teardown,
beforeAll, orafterAllexceeded its separate limit. - Global timeout: the entire test run reached the configured
globalTimeout.
Do not raise every timeout when only one operation is slow. A broad increase can hide a bad locator, an incorrect readiness condition, or an application defect.
Playwright timeout defaults and scope
| Scope | Documented default | Change it with | What it covers |
|---|---|---|---|
| Individual test | 30,000 ms | timeout in config, test.setTimeout(), or supported testInfo.setTimeout() |
Test body, fixture setup, and beforeEach; teardown receives a separate period of the same value. |
| Auto-retrying assertion | 5,000 ms | expect.timeout in config or an assertion’s timeout |
How long an expect retry loop waits. |
| Whole run | No global default | globalTimeout |
The complete test run. |
| Action | No timeout in the test-runner low-level option default | use.actionTimeout or an action-level timeout |
Locator actions such as click, fill, and check. |
| Navigation | No timeout in the test-runner low-level option default | use.navigationTimeout, a navigation call’s timeout, or page/context navigation defaults |
Navigation methods and URL transitions. |
| Fixture | No fixture-specific default | The fixture definition’s timeout |
A separately timed fixture setup. |
beforeAll/afterAll |
30,000 ms by default, equal to the test timeout | test.setTimeout() inside the hook |
The hook itself, independently of an individual test. |
These are Playwright’s documented defaults; exact behavior can vary across installed versions, so check the documentation for the version in your project when compatibility matters.
Free tools Windows power users keep installed
One-click scans. No signup required.
#1 Best Overall
- Compact Mouse: With a comfortable and contoured shape, this Logitech ambidextrous wireless mouse feels great in either right or left hand and is far superior to a touchpad
- Durable and Reliable: This USB wireless mouse features a line-by-line scroll wheel, up to 1 year of battery life (2) thanks to a smart sleep mode function, and comes with the included AA battery
- Universal Compatibility: Your Logitech mouse works with your Windows PC, Mac, or laptop, so no matter what type of computer you own today or buy tomorrow your mouse will be compatible
- Plug and Play Simplicity: Just plug in the tiny nano USB receiver and start working in seconds with a strong, reliable connection to your wireless computer mouse up to 33 feet / 10 m (5)
- Better than touchpad: Get more done by adding M185 to your laptop; according to a recent study, laptop users who chose this mouse over a touchpad were 50% more productive (3) and worked 30% faster (4)
Change the timeout for a whole test suite
Increase the per-test limit
Set timeout in playwright.config.ts when most tests legitimately need the same larger budget.
import { defineConfig } from '@playwright/test';
export default defineConfig({
timeout: 60_000,
});
This includes test code, fixture setup, and beforeEach. It does not automatically extend assertion, action, navigation, or global-run limits.
Set a run-wide limit
import { defineConfig } from '@playwright/test';
export default defineConfig({
globalTimeout: 15 * 60_000,
});
Use this as a safety ceiling for a complete run. It is not a replacement for fixing an individual test timeout.
Change one test without changing the suite
Call test.setTimeout inside the test when one scenario is known to need more time.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemsimport { test } from '@playwright/test';
test('imports a large account', async ({ page }) => {
test.setTimeout(120_000);
// test steps
});
If tripling the normal test timeout is appropriate, test.slow() is a readable alternative. It communicates that the test is intentionally slower rather than silently assigning a large number.
Rank #2
- The next-generation optical HERO sensor delivers incredible performance and up to 10x the power efficiency over previous generations, with 400 IPS precision and up to 12,000 DPI sensitivity
- Ultra-fast LIGHTSPEED wireless technology gives you a lag-free gaming experience, delivering incredible responsiveness and reliability with 1 ms report rate for competition-level performance
- G305 wireless mouse boasts an incredible 250 hours of continuous gameplay on just 1 AA battery; switch to Endurance mode via Logitech G HUB software and extend battery life up to 9 months
- Wireless does not have to mean heavy, G305 lightweight mouse provides high maneuverability coming in at only 3.4 oz thanks to efficient lightweight mechanical design and ultra-efficient battery usage
- The durable, compact design with built-in nano receiver storage makes G305 not just a great portable desktop mouse, but also a great laptop travel companion, use with a gaming laptop and play anywhere
Extend a hook only
A hook has its own timeout. In a beforeEach, the guide demonstrates extending the current budget with:
test.beforeEach(async ({}, testInfo) => {
testInfo.setTimeout(testInfo.timeout + 30_000);
// slow setup
});
beforeAll and afterAll can likewise call test.setTimeout() inside the hook. A fixture that is slow for legitimate reasons can receive an independent timeout in its fixture definition instead of forcing every test to wait longer.
Increase an assertion timeout
Raising the test timeout does not extend an assertion’s retry period. Configure assertions globally when the suite consistently waits longer for eventual UI state:
import { defineConfig } from '@playwright/test';
export default defineConfig({
expect: { timeout: 10_000 },
});
Prefer a local override for an exceptional assertion:
await expect(locator).toBeVisible({ timeout: 10_000 });
Use the smallest value that matches the application’s real propagation time. If the locator never represents the state you intend to test, a larger assertion timeout only delays the same failure.
Rank #3
- Compact Mouse: With a comfortable and contoured shape, this Logitech ambidextrous wireless mouse feels great in either right or left hand and is far superior to a touchpad
- Durable and Reliable: This USB wireless mouse features a line-by-line scroll wheel, up to 1 year of battery life (2) thanks to a smart sleep mode function, and comes with the included AA battery
- Universal Compatibility: Your Logitech mouse works with your Windows PC, Mac, or laptop, so no matter what type of computer you own today or buy tomorrow your mouse will be compatible
- Plug and Play Simplicity: Just plug in the tiny nano USB receiver and start working in seconds with a strong, reliable connection to your wireless computer mouse up to 33 feet / 10 m (5)
- Better than touchpad: Get more done by adding M185 to your laptop; according to a recent study, laptop users who chose this mouse over a touchpad were 50% more productive (3) and worked 30% faster (4)
Set action and navigation timeouts
Suite-wide action and navigation defaults
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
actionTimeout: 10_000,
navigationTimeout: 30_000,
},
});
These settings apply to operations covered by the corresponding API defaults. Navigation-specific defaults take precedence over general page defaults where the Page API defines both.
Override one operation
await page.goto('https://example.com', { timeout: 30_000 });
await page.getByRole('button', { name: 'Continue' }).click({ timeout: 10_000 });
A local value is safer when only one endpoint or interaction is slow. Passing timeout: 0 disables the timeout for the documented Page and BrowserContext timeout APIs; use that deliberately because an unbounded wait can leave CI running forever.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →Page and context defaults
page.setDefaultTimeout() changes the default for methods that accept a timeout. page.setDefaultNavigationTimeout() controls navigation methods and takes priority over the page’s general default timeout. Browser-context defaults can also be set, with page-level settings taking priority over context-level settings.
Navigation timeouts: wait for the right event
The waitUntil option determines when a navigation method considers navigation complete. The Page API documents load as the default and also supports domcontentloaded, commit, and networkidle.
commitfinishes when the response is committed, useful when you only need the new document to begin loading.domcontentloadedwaits for the initial HTML to be parsed.loadwaits for the page’s load event and is the default.networkidlewaits for a period with no network connections, but Playwright marks it as discouraged for testing.
Most explicit waitForLoadState() calls are unnecessary because Playwright auto-waits before actions. After navigation, assert the application state your test actually needs instead of using networkidle as a generic cure:
Rank #4
- Computer mouse for easily navigating a computer interface; click, scroll, and more
- USB-A wired connection; if existing device only supports USB-C, an additional adapter will be required
- High-definition (1000 dpi) optical tracking ensures responsive cursor control for precise tracking and easy text selection
- 3 buttons offer effortless fingertip control
- Plug-and-go ready for instant use
await page.goto('https://example.com', {
waitUntil: 'domcontentloaded',
timeout: 30_000,
});
await expect(page.getByRole('heading', { name: 'Dashboard' })).toBeVisible();
A systematic way to fix a timeout
- Read the operation and call log. Determine whether the runner, assertion, action, navigation, fixture, hook, or whole run stopped.
- Verify the condition. Check the locator, URL, test data, authentication state, and the application’s actual readiness signal.
- Reproduce with diagnostics. Run the single test, preserve the call log and trace available in your project, and identify the last successful step.
- Apply the narrowest change. Use an assertion or operation-level timeout for one slow step; use shared configuration only when many tests share the same legitimate need.
- Re-run under CI-like conditions. Slower workers, cold services, network latency, and parallelism can expose setup races that do not appear locally.
Intermittent failures deserve investigation rather than an automatic increase. A flaky test may be waiting for the wrong UI state, racing a fixture, using a locator that matches nothing, or depending on an external service. Playwright’s low-level action and navigation timeouts are preconfigured so most projects should not need to change them globally.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Common symptoms, causes, and fixes
“Test timeout of 30000ms exceeded”
The test body, setup, or beforeEach consumed the test budget. Find the slow step, then use test.setTimeout() for that test or adjust the shared timeout only if the suite’s normal workload changed.
“expect(…).toBe… timed out”
The assertion’s 5-second default expired independently of the test timeout. Confirm that the locator and expected state are correct, then set the assertion’s timeout or the config’s expect.timeout.
Click or fill timed out
The element may be missing, covered, disabled, outside the expected frame, or matched by an overly broad or incorrect locator. Inspect the call log and page state before increasing actionTimeout; a local action timeout is preferable to a large suite-wide value.
page.goto timed out
Check DNS, server health, redirects, authentication, and the selected waitUntil condition. Set navigationTimeout or the call’s timeout only after confirming that the URL is valid and the chosen completion event is appropriate.
Best Value
- 【Plug and Play for Home/Office/School】The wireless computer mouse features 2.4GHz connectivity, delivering a stable, interference-free connection up to 32ft. Designed for 𝐦𝐞𝐝𝐢𝐮𝐦 𝐭𝐨 𝐥𝐚𝐫𝐠𝐞 𝐬𝐢𝐳𝐞𝐝 𝐡𝐚𝐧𝐝𝐬, it ensures comfortable use all day. Simply plug in the USB-A receiver for instant pairing—no drivers needed. 📌📌 If the mouse isn’t suitable, place the USB receiver in the battery compartment and return both.
- 【3 Levels Adjustable DPI】This travel USB mouse offers 3 adjustable DPI settings (800, 1200, 1600), allowing you to customize sensitivity for precise design work. Effortlessly switch to match your task and elevate your productivity. 📌 Please remove the film at the bottom of the mouse before use.
- 【Effortless Browsing】Equipped with forward and backward buttons, this computer mice streamlines your workflow, making it easy to navigate through web pages and files with a simple click. 📌Side button does not work on Mac.
- 【Visible Indicator Light】 The pc mouse features a visual indicator for DPI levels and low battery alerts. The red light flashes once for 800 DPI, twice for 1200 DPI, and three times for 1600 DPI. When the battery level is below 10%, the light flashes red until the mouse is completely out of power.
- 【Click to Wake】With smart sleep mode, it saves power by standby after 10 inactive minutes, just 2-3 clicks to wake. This efficient design delivers 3x longer battery life than motion-wake mice. Engineered for durability, its buttons and scroll wheel are tested for 10 million clicks, ensuring long-term reliability and consistent performance.
Timeout occurs in a fixture or hook
Separate setup and teardown from the test body. Give a slow fixture its own fixture timeout, or extend the hook with test.setTimeout(); do not inflate every test to accommodate one expensive setup path.
The run hangs after setting a huge timeout
Remove the blanket increase and replace it with a bounded, local value. Never disable a timeout casually: timeout: 0 can leave a worker waiting indefinitely when a service or locator is broken.
Performance, reliability, and maintenance guidance
- Keep normal limits tight enough to fail quickly when a regression occurs.
- Use operation-level values to document an intentional exception near the slow operation.
- Separate assertion waiting from navigation waiting; they answer different questions.
- Prefer application assertions over arbitrary sleeps and over generic
networkidlewaits. - Review timeout changes with the test’s expected environment, including CI workers and parallel execution.
- When upgrading Playwright, verify defaults and precedence against the installed version’s documentation.
Or skip the browser setup
If your goal is simply to capture a page image while diagnosing a slow or changing page, ScreenshotNeo provides a website screenshot API. It accepts consent banners as a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; each step can be disabled. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers identify the page verdict and billing result. Its MCP server lets Claude, Cursor, and other MCP clients call take_screenshot, get_page_info, and capture_pdf.
One GET request returns PNG, JPEG, WebP, or PDF. See the ScreenshotNeo API documentation for all options, including waits, custom headers, cookies, user agents, JavaScript, CSS, selectors, device presets, PDFs, caching, webhooks, and bulk capture.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com -o shot.webp
There is a free allowance of 1,000 screenshots per month with no card. Paid plans start at $5 for 3,000 screenshots; every feature is included on every plan. Create a free ScreenshotNeo account.
Frequently Asked Questions
Does increasing the test timeout increase assertion timeouts too?
No. Test and auto-retrying assertion timeouts are separate settings; change the assertion timeout when the expectation is the part that needs more time.
Should I use networkidle to stop Playwright timeouts?
Usually not. Playwright discourages networkidle for tests; choose an appropriate navigation event and assert the application state you need.
Can I disable a Playwright timeout?
The documented Page and BrowserContext timeout APIs accept timeout: 0 to disable a timeout, but an unbounded wait can hang a test run and should be used only deliberately.
Recommended Free Tools
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.

