Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

First identify which operation timed out: starting Chrome, creating a Selenium session, reaching the Grid, loading a page, running an asynchronous script, or waiting for an element. Those failures have different causes, and increasing a timeout at random will not fix a crashed browser or an unready container. Work through the checks below in that order, then set only the timeout that matches the failing operation.

Identify what timed out before changing settings

Use the exception text and the time at which it appears to classify the failure. Messages such as “Chrome failed to start: exited abnormally” and “Chrome failed to start: exited normally (chrome not reachable)” point toward startup or browser availability, but they do not by themselves prove a particular root cause.

When it fails Likely category First evidence to check
Before a session is created Chrome startup, driver, or session creation Chrome and ChromeDriver logs and versions, image tag, container memory and shared memory, and headless/Xvfb configuration
While the client connects or requests a session Selenium service or Grid readiness Container logs and an application-level readiness or Grid status check
During navigation Page-load timeout or a page that does not reach the selected readiness state Requested URL, page-load strategy, load behavior, and browser logs
After navigation, while finding an element Element wait or application readiness Current page state, selector, frame context, and whether JavaScript has exposed the target
While an asynchronous script runs Script timeout The script and the script-specific timeout setting

Capture the complete exception and timestamp, not just the word “timeout.” A useful reproduction also records the Selenium binding and version, full image tag, Chrome and ChromeDriver versions, Docker runtime and resource limits, and the command or capabilities used to launch Chrome.

Check container readiness, logs, and resources

Wait for Selenium to be ready

A running container process does not establish that Selenium inside it is ready to accept sessions. Before creating a driver, poll the Grid status/readiness endpoint or perform an equivalent application-level health check. If the client requests a session too early, fix the startup sequence rather than increasing a navigation or element timeout.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Philips 24 Inch Computer Monitor FHD 100Hz VA VESA Flicker-Free, 241V8LB
  • CRISP CLARITY: This 23.8″ Philips V line monitor delivers crisp Full HD 1920x1080 visuals. Enjoy movies, shows and videos with remarkable detail
  • INCREDIBLE CONTRAST: The VA panel produces brighter whites and deeper blacks. You get true-to-life images and more gradients with 16.7 million colors
  • THE PERFECT VIEW: The 178/178 degree extra wide viewing angle prevents the shifting of colors when viewed from an offset angle, so you always get consistent colors
  • WORK SEAMLESSLY: This sleek monitor is virtually bezel-free on three sides, so the screen looks even bigger for the viewer. This minimalistic design also allows for seamless multi-monitor setups that enhance your workflow and boost productivity
  • A BETTER READING EXPERIENCE: For busy office workers, EasyRead mode provides a more paper-like experience for when viewing lengthy documents

Read the container output

Inspect the service output with docker logs <container-name-or-id>. Look around the failure time for Selenium startup errors, Chrome crashes, driver errors, and evidence that the service was still initializing. Selenium’s Docker documentation describes increasing log detail with SE_OPTS="--log-level FINE"; use the logging options supported by the image tag you run.

Check shared memory and workload pressure

For its published browser images, the Selenium Docker project documents --shm-size=2g as a commonly used workaround for browser crashes related to shared-memory pressure. The project explicitly describes that amount as arbitrary: it is not a universal Chrome requirement, and the right allocation depends on the workload. For example, the option can be added to a Docker run command as --shm-size=2g, but measure and tune for your concurrency and page workload rather than assuming that every container needs exactly 2 GB.

Also check container memory limits and concurrent sessions. Raising shared memory alone will not fix an overall memory shortage, an incompatible driver, a bad launch configuration, or a service that has not become ready.

Pin versions and verify the browser startup configuration

Use a fully tagged image

Pin a complete Selenium browser image tag instead of relying on a floating tag. Record that exact tag in the reproduction, then verify the Chrome, ChromeDriver, and Selenium versions actually installed in the container. A full tag makes the environment more reproducible; it does not remove the need to check whether the browser and driver in that image work together.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
Philips 22 Inch Computer Monitor FHD 100Hz VA VESA Flicker-Free, 221V8LB
  • CRISP CLARITY: This 22 inch class (21.5″ viewable) Philips V line monitor delivers crisp Full HD 1920x1080 visuals. Enjoy movies, shows and videos with remarkable detail
  • 100HZ FAST REFRESH RATE: 100Hz brings your favorite movies and video games to life. Stream, binge, and play effortlessly
  • SMOOTH ACTION WITH ADAPTIVE-SYNC: Adaptive-Sync technology ensures fluid action sequences and rapid response time. Every frame will be rendered smoothly with crystal clarity and without stutter
  • INCREDIBLE CONTRAST: The VA panel produces brighter whites and deeper blacks. You get true-to-life images and more gradients with 16.7 million colors
  • THE PERFECT VIEW: The 178/178 degree extra wide viewing angle prevents the shifting of colors when viewed from an offset angle, so you always get consistent colors

ChromeDriver’s security guidance recommends keeping Chrome and ChromeDriver current and using ChromeDriver in a protected environment. The available guidance does not establish a universal version-pair compatibility matrix, so check the versions and installation method in your specific image rather than inferring compatibility from a general rule.

Match headless and Xvfb settings to the image

Follow the startup instructions for the exact Docker Selenium image and Chrome version. Docker Selenium describes failures when Xvfb is disabled but Chrome is not actually launched headlessly. Its guidance also notes that requirements can vary with newer Chrome headless modes. Before changing a copied flag or environment variable, record the Chrome version, image tag, headless argument, and SE_START_XVFB setting, then compare them with the instructions for that image.

Chrome’s official Headless mode documentation confirms that Headless Chrome can be used with Selenium WebDriver. It does not make every image’s launch flags interchangeable; use the configuration appropriate to the versions you have pinned.

Set the timeout for the operation that failed

Selenium has distinct waits for navigation, asynchronous scripts, and application elements. Treat them independently. Selenium’s Waiting Strategies documentation explains that navigation normally waits for a document readyState—by default, complete—but that does not guarantee JavaScript-generated content or a target element is ready. The same documentation warns that mixing implicit and explicit waits can make actual wait duration unpredictable.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
Dell 24 Monitor - SE2426H - 23.8-inch FHD (1920x1080) 144Hz 1ms Display, in-Plane Switching (IPS) Technology, AMD FreeSync™, TÜV 3-Star 2X HDMI, Tilt
  • Clear visuals. Fluid motion: A 144Hz refresh rate and 1ms MPRT deliver smooth, tear‑free motion across work, gaming, and streaming for clearer, more fluid viewing.
  • Eye comfort: TÜV Rheinland 3‑star* certification reduces harmful blue light while preserving stunning color quality without compromise. *TÜV Rheinland 3-star eye comfort certification.
  • Wide viewing angle: Get consistent views across a wide 178° /178° viewing angle.
  • In-Plane Switching (IPS): See excellent color accuracy and consistency across wide viewing angles with In-plane Switching (IPS) technology.
  • Ultra-thin bezels: Maximize your viewing experience with thin bezels.

Navigation: page-load timeout

Use a page-load timeout when navigation itself is exceeding its allowance. In Python, Selenium’s Chrome WebDriver API exposes set_page_load_timeout(time_to_wait). Choose a deliberate limit appropriate to the page and test; an indefinitely stalled resource or page may still make navigation fail at that limit.

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--headless")

driver = webdriver.Chrome(options=options)
driver.set_page_load_timeout(30)

try:
    driver.get("https://example.com")
finally:
    driver.quit()

The Selenium Python Chrome WebDriver API documentation (4.33.0) documents this method. The example’s 30 seconds is an application choice, not a recommended universal value.

Dynamic content: explicit condition-based wait

If navigation returns but the application has not yet exposed the element, wait for the condition the test needs. The following Python example waits for a specific element to be visible; replace the URL and selector with values from the application under test.

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait

options = webdriver.ChromeOptions()
options.add_argument("--headless")

driver = webdriver.Chrome(options=options)
driver.set_page_load_timeout(30)

try:
    driver.get("https://example.com")
    target = WebDriverWait(driver, 15).until(
        EC.visibility_of_element_located((By.CSS_SELECTOR, "main h1"))
    )
    print(target.text)
finally:
    driver.quit()

Here, the 15-second explicit wait is separate from the 30-second navigation limit. Set the condition and allowance based on the behavior the test requires. If it expires, inspect the rendered page and confirm the selector, current frame, and application state; simply extending the wait may hide a broken test or application.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
Samsung 27" Essential S3 (S36GD) Series FHD 1800R Curved Computer Monitor
  • CURVED FOR ENHANCED ENGAGEMENT: An immersive viewing experience with a curved monitor that wraps more closely around your field of vision; It creates a wider view, enhancing depth perception and minimizing peripheral distraction
  • SMOOTH PERFORMANCE FOR SEAMLESS CONTENT: Stay in the action when playing games, watching videos, or working on creative projects; The 100Hz refresh rate reduces lag and motion blur so you don't miss a thing in fast-paced moments¹
  • MORE GAMING POWER: Gain the edge with optimizable game settings; Color and image contrast can be adjusted to see scenes more vividly and spot enemies hiding in the dark; Game Mode adjusts any game to fill the screen so you can view every detail²
  • KEEP IT EASY ON THE EYES: Care for your eyes and stay comfortable, even during long sessions; Advanced eye comfort technology certified by TÜV reduces eye strain by minimizing blue light and reducing irritating screen flicker²
  • INCREASED VERSATILITY: Connect to more; Plug devices straight into your monitor for increased flexibility, making your computing environment even more convenient

Asynchronous scripts: script timeout

A script timeout concerns asynchronous script execution, not ordinary navigation or element discovery. Identify the script that is waiting and configure the script timeout through the Selenium binding’s script-timeout API. If the exception is a page-load timeout or a wait for an element, changing the script timeout addresses the wrong operation.

Avoid overlapping implicit and explicit waits

Use explicit waits for specific application conditions and avoid adding an implicit wait on top of them. Selenium warns that the combination can make actual elapsed time unpredictable. A wait should describe a state the test needs, such as visibility or clickability, rather than act as a general delay that is expected to make every page reliable.

Troubleshoot by symptom

Symptom Likely causes to investigate Practical next step
“Chrome failed to start: exited abnormally” Browser crash, shared-memory or memory pressure, startup flags, or version problems Read Selenium and Chrome logs; check container resource limits, shared memory, image tag, installed versions, and headless/Xvfb settings.
“Chrome failed to start: exited normally (chrome not reachable)” Chrome is no longer reachable by the driver; the message alone does not identify why Check the browser process and driver logs at the failure timestamp, then verify resources, versions, and launch configuration.
Session request or Grid connection stalls Container is running but Selenium is not ready, or service connectivity is wrong Poll a readiness/status check before creating a session and inspect container logs for startup or connection errors.
Navigation exceeds its limit Slow or stalled page resources, or a readiness condition that is not reached Confirm the page-load strategy and URL behavior; set a navigation-specific limit instead of changing element or script waits.
Element wait expires after navigation Dynamic content is not ready, selector is wrong, element is in another frame, or the application state differs Inspect the current page and frame, verify the selector, and wait for the required condition.
Async script exceeds its limit The script does not complete or its callback path is not reached Inspect the script’s completion behavior and adjust the script-specific timeout only if the expected work needs longer.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Make failures reproducible and resource use deliberate

  • Log the exception text, operation, and timestamp so startup, navigation, script, and element failures are not conflated.
  • Record the full Selenium image tag and the actual Selenium, Chrome, and ChromeDriver versions.
  • Record Docker runtime settings, memory limits, shared-memory allocation, concurrency, launch arguments, and Xvfb setting.
  • Wait for service readiness before requesting sessions; a retry against an unready service is not a substitute for a readiness check.
  • Keep timeouts bounded and specific to an operation. Larger limits can make a real failure slower to detect without correcting its cause.
  • Tune memory and shared-memory allocation against the workload. More browser concurrency increases resource demand; the documented 2 GB shared-memory setting is a starting point, not a universal sizing rule.

Or skip the browser setup

If your task is to capture a website image or PDF rather than run an interactive Selenium test, ScreenshotNeo offers a one-request screenshot API. The endpoint accepts a URL and can return PNG, JPEG, WebP, or PDF. For example, this cURL request saves a WebP screenshot; replace the sample URL with the page you need and provide your API key.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

See the ScreenshotNeo API documentation for request options. Cookie banners are accepted and removed before capture, along with supported newsletter popups and chat widgets; each step can be turned off. Bot checks/CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and responses indicate the page verdict and billing status in headers. An MCP server provides screenshot tools for AI agents, including 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 shots.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Sign up for ScreenshotNeo’s free plan to get 1,000 screenshots a month with no card.

Best Value
Sale
Sceptre New 22-Inch Gaming Monitor, FHD 1080p, Up to 144Hz, HDMI, DisplayPort, Built-in Speakers, Machine Black (E225W-FW144 Series, 2026)
  • 【INTEGRATED SPEAKERS】Whether you're at work or in the midst of an intense gaming session, our built-in speakers provide rich and seamless audio, all while keeping your desk clutter-free.
  • 【EASY ON THE EYES】 Protect your eyes and enhance your comfort with Blue-Light Shift technology. This feature reduces harmful blue light emissions from your screen, helping to alleviate eye strain during long hours of use and promoting healthier viewing habits.
  • 【WIDEN YOUR PERSPECTIVE】Our sleek minimal bezel design ensures undivided attention. The nearly bezel-free display seamlessly connects in a dual monitor arrangement, delivering an unobstructed view that lets you focus on more at once, completely distraction-free.

Frequently Asked Questions

Does a Selenium navigation timeout mean Chrome crashed?

No. A navigation timeout and a Chrome startup or reachability failure describe different stages. Check the exception and browser logs to identify which operation failed.

Is `–shm-size=2g` required for every headless Chrome container?

No. Selenium’s Docker project documents it as a commonly used workaround and says the amount is arbitrary and should be tuned to the workload.

Can I use Headless Chrome with Selenium?

Yes. Chrome’s official Headless documentation confirms Selenium WebDriver use; startup flags and Xvfb settings should still match the specific Chrome and Docker Selenium image versions.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.