Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.
Start by identifying the failure. If UC Mode cannot connect on a GUI-less Linux host, switch from Driver() to the SB() context manager and run Chrome through Xvfb (xvfb=True or --xvfb). SeleniumBase documentation warns that UC Mode is detectable in headless mode. If the browser launches but a site returns a CAPTCHA, block page, or HTTP 429, treat that as a site-side decision rather than a guaranteed framework bug.
Identify which failure you actually have
“Detected” covers several unrelated symptoms. Record the Linux distribution, container image, SeleniumBase and Python versions, browser name and version, UC setting, headless/headed/Xvfb settings, the first failing command, and the complete exception or HTTP response. Then classify the problem:
| Symptom | Likely layer | First diagnostic |
|---|---|---|
| Chrome starts, then a CAPTCHA, challenge, block page or 429 appears | Target site or network policy | Compare the same URL manually from the same network and note the URL stage, response code and challenge provider. |
UC command raises connection refused on Linux, while the script works on Windows or with uc=False |
Local display/driver startup | Use SB(uc=True, xvfb=True) on the GUI-less host. |
| PyAutoGUI or a GUI CAPTCHA helper does nothing | No usable display | Use a regular browser in Xvfb; PyAutoGUI does not work in headless mode. |
| Driver or browser never starts | Installation/runtime | Run a minimal non-UC launch before changing anti-detection options. |
A site can reject a session even when WebDriver is functioning perfectly. Conversely, a local connection-refused exception is not evidence that a website detected automation.
Recommended Free Tools
Use SB with Xvfb for UC Mode on GUI-less Linux
The SeleniumBase maintainer’s February 17, 2026 answer to a Linux connection-refused report is specific: Driver() does not include the special Xvfb virtual-display code needed on a GUI-less Linux machine, while the SB() format does. The project’s UC documentation also says not to combine UC Mode with headless mode because headless operation can be detected.
#1 Best Overall
- Intel Core i5-1335U Processor (12M Cache, 12 Threads, up to 4.6 GHz) - 256GB Solid State Drive - 16GB DDR4 SDRAM
- 15.6" FHD (1920x1080) Non-Touch Anti-Glare Display - Intel UHD 620 Integrated Graphics - Stereo Speakers
- 720p HD Webcam with Privacy Shutter. Integrated Microphone - Intel Dual Band Wireless-AC (2x2) 8265, Bluetooth Version 4.2
- I/O Ports: 2x USB 3.0, 1x USB 3.1 Type-C 3.1, Headphone/Mic Combo Port, 4-in-1 Card Reader, HDMI, Kensington Mini-Lock Slot
- Linux Mint (Cinnamon) 64-Bit - Keyboard with Full NumberPad - Fast Charging
Python context-manager example
from seleniumbase import SB
with SB(uc=True, xvfb=True) as sb:
sb.uc_open_with_reconnect("https://example.com", reconnect_time=4)
print(sb.get_title())
xvfb=True creates or uses a virtual display, allowing a normal headed browser to run without a physical desktop. In some versions, the equivalent command-line option is --xvfb. Check the options accepted by the SeleniumBase version installed on your machine; names and defaults can change.
Why not simply set headless=False?
Setting headless=False can prevent a Linux configuration from silently selecting headless mode, but it does not by itself create a display. On a server or container, pair a headed browser with Xvfb and verify that the process has a valid display. “Headed” is a launch preference, not proof that a virtual display is available.
When Driver() remains appropriate
Driver() can be suitable for ordinary SeleniumBase sessions when the host already has a working display or when UC Mode is not enabled. For UC Mode on a GUI-less Linux host, use the SB manager first, especially when the error occurs before the first page command reaches the site.
Separate headless detection from a site challenge
SeleniumBase’s own documentation warns that UC Mode is detectable in headless mode and recommends Xvfb on Linux. That advice addresses the browser’s display mode; it is not a promise that every website will accept the session. A target can apply IP reputation, request-header checks, browser signals, account rules or rate limits independently.
Rank #2
- Intel Core i5-10210U (up to 4.2GHz) - 1TB PCIe NVMe + 1TB HDD - 32GB DDR4 SDRAM
- 17.3" HD+ (1600x900) Display, Intel UHD Graphics 620
- Built in HD 720p Webcam with Microphone - Bluetooth Version4.2
- I/O Ports: 2x USB 3.1 (Data Only), 1x USB 2.0, 1x HDMI, 1x Headphone/Microphone Combo Jack
- Linux Mint Cinnamon 64-Bit - 6-Row Keyboard w/ Full Numberpad
- If the exception is local and occurs on a WebDriver command, capture the traceback and test a minimal page such as
https://example.com. - If the page loads and then changes to a challenge or 429, record the exact URL, response status and whether a manual browser on the same network receives the same result.
- Do not change five launch flags at once. Change display mode first, then browser binary, then navigation flow so you can identify the variable that mattered.
Check Chrome versus Chromium in Docker
A February 2024 Docker discussion described detection and invalid-request-header behavior that appeared only inside Docker. The maintainer asked whether the image used Chromium and recommended testing Chrome with Xvfb. In that UC Mode context, the maintainer said the modified driver masked traces with Chrome but did not fully mask them with Chromium. Containers frequently include Chromium by default.
Treat this as a controlled diagnostic, not a universal bypass. Hold SeleniumBase version, browser version, launch mode, target URL and network conditions as constant as practical, and compare:
- Inspect the actual binary and version inside the container; do not infer it from the image name.
- Run the same minimal script with the image’s Chromium.
- Run it again with a supported Chrome installation.
- Compare whether the browser starts, whether the same navigation reaches the page, and what response or challenge follows.
The original Docker reporter did not obtain a guaranteed resolution from the suggested settings. A browser that appears normal can still be rejected by the target.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Use UC navigation helpers in the documented flow
UC Mode includes navigation and interaction helpers that temporarily disconnect and reconnect the driver around actions. This can matter when a site checks automation during page loads, submissions or clicks.
Rank #3
- [ULTRA-RUGGED DESIGN] MIL-STD-810G and IP65 certified. Built to survive 6-foot drops, heavy rain, and extreme vibrations. Features a magnesium alloy chassis with an integrated carry handle for maximum portability
- [4G LTE - WORK ANYWHERE] Integrated 4G LTE Multi-Carrier Mobile Broadband. Stay connected to the internet in remote areas or on the road without relying on Wi-Fi or phone hotspots. True mobile freedom for field professionals
- [1200-NIT SUNLIGHT READABLE] 13.1" XGA Touchscreen with CircuLumin technology. At 1200 nits, it is nearly 4x brighter than a standard laptop, ensuring perfect visibility under direct, intense sunlight
- [LINUX UBUNTU PRE-INSTALLED] Fast, secure, and bloatware-free. Optimized for developers, network engineers, and diagnostic software that thrives in a stable, open-source environment
- [LEGACY SERIAL PORT] Features a native RS-232 Serial Port, HDMI, and USB 3.0. Essential for connecting directly to industrial machinery, CNCs, and automotive diagnostic tools without unreliable adapter
Reconnect after navigation
from seleniumbase import SB
with SB(uc=True, xvfb=True) as sb:
sb.uc_open_with_reconnect("https://example.com/login", reconnect_time=4)
# Continue with the documented page flow here.
Use uc_click() where the page’s documented flow requires a click that may trigger an automation check. These methods do not guarantee acceptance by a particular site. Keep a minimal reproduction and note exactly which navigation or action precedes the challenge.
GUI CAPTCHA helpers
SeleniumBase documents uc_gui_click_captcha() and related helpers for some Cloudflare Turnstile and Google reCAPTCHA interactions. They require a suitable GUI/display setup, so they are incompatible with a purely headless session. They are interaction helpers, not universal CAPTCHA solvers; provider behavior and site rules determine whether they can work.
Verify SeleniumBase’s driver layer before tuning detection settings
SeleniumBase normally downloads required WebDrivers into its seleniumbase/drivers directory as needed. A separate driver on PATH is generally unnecessary for ordinary SeleniumBase tests. First prove that a non-UC browser can launch:
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →from seleniumbase import SB
with SB(xvfb=True) as sb:
sb.open("https://example.com")
print(sb.get_title())
If this fails, fix the browser, display, permissions or container dependencies before diagnosing site detection. The project’s driver guide documents manual retrieval commands such as sbase get chromedriver; PATH-based installation is mainly relevant when another tool, such as Selenium Grid, explicitly requires it.
Rank #4
- THE POWER TO STAY PRODUCTIVE – Looking to make your everyday work and home life more manageable without breaking the bank? The Lenovo V15 Gen 4 offers long-term reliability with top-of-the-line features to make you your most productive self.
- CRUSH YOUR TO-DO LIST – The AMD Ryzen CPU pairs quiet performance and enhanced operating power to crush your high-demand workday. It optimizes performance and allows for seamless multitasking.
- TRUE-TO-LIFE VISUALS – The 15.6” FHD IPS display is anti-glare with 300 nits brightness to see your best outside or in. Its 88% screen-to-body ratio makes viewing detailed applications like spreadsheets a breeze.
- SEAMLESS COLLABORATION – Lenovo Smart Appearance enhances your camera effects to protect your privacy and to make you the focus of every video conference. Intelligent noise cancelation minimizes distraction and Dolby Audio provides an elegantly sonorous experience.
- BUILT TO WITHSTAND – Built for military-grade toughness, the V15 Gen 4 is tested to withstand harsh temperatures, pressure, humidity, vibrations and more. Keep your work safe from the board room to your living room and everywhere in between.
Container and Linux checks
- Display: confirm Xvfb is installed and that the process can create a display. Check the runtime’s
DISPLAYvalue and container permissions. - Browser binary: print the resolved executable and version; distinguish Chrome from Chromium.
- Shared libraries: a browser that exits immediately may be missing Linux GUI or font libraries, independent of SeleniumBase.
- Resources: inspect container memory and shared-memory settings. Crashes can look like connection failures when the browser process has already died.
- Version alignment: record SeleniumBase, Python, browser and driver versions together. Historical Chrome 121/122 workarounds from the 2024 discussion are not current version guidance.
- Network: compare DNS, proxy, TLS interception and egress IP between Docker and the host. A 429 or invalid-header response can be network-specific.
Troubleshooting by symptom
“Connection refused” immediately after starting UC Mode
On a GUI-less Linux host, replace Driver(uc=True) with the SB context manager and xvfb=True. Confirm the browser process remains alive and that a minimal non-UC launch works. If the error persists, capture the complete traceback and display configuration; do not assume the target site caused it.
The script works on Windows but fails in Linux
Compare display availability first. Windows normally has a desktop; a Linux server may not. Use SB plus Xvfb, then compare Chrome and Chromium and verify container libraries. Keep browser and SeleniumBase versions explicit rather than comparing “latest” builds.
The page returns 429 or an invalid-request-header message only in Docker
Hold the URL and network conditions steady, test Chrome versus Chromium, and test Xvfb versus headless. Check proxy and egress-IP differences. The Docker discussion did not establish a universal setting that resolves this response, so document the result for the site owner or reduce request rate where appropriate.
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 minuteWindows 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 reinstallPyAutoGUI or a CAPTCHA click helper fails
Run a regular browser in Xvfb, not headless mode. Ensure the virtual display is visible to the process and that window geometry is stable. If the challenge provider or site flow is unsupported, the helper cannot make it universal.
Best Value
- Powerful Linux Laptop: This IdeaPad Slim 3 Laptop comes pre-installed with Ubuntu Linux, offering fast performance, robust security, and a clean, user-friendly experience. Enjoy full customization, seamless hardware compatibility, and access to thousands of open-source apps. Whether you're working, creating, or coding, it's built to keep up with everything you do.
- A Multitasking Master: The latest AMD Ryzen 7 5825U processor (up to 4.5 GHz) delivers powerful performance with 8 cores and 16 threads for smooth multitasking. Integrated AMD Radeon Graphics provide crisp visuals for streaming, browsing, photo editing, and casual gaming. With smart machine intelligence, it adapts to your needs for a fast, responsive experience.
- 15.6" Full HD Display: The IdeaPad Slim 3 boasts an 88% screen-to-body ratio for a floating, edge-to-edge visual experience. TÜV Low Blue Light certification reduces eye strain, making it perfect for long work or study sessions.
- Military-Grade Durability: The smart IdeaPad Slim 3 combines portability and durability, letting you work, study, and play on the go. With a profile 10% slimmer than the previous generation, it's lightweight yet military-grade rugged, ready for anything, anywhere.
- Versatile Connectivity: Enjoy the security of a built-in webcam with a privacy shutter. Connect effortlessly with multiple ports: 2x USB A, 1x USB C, 1x HDMI, 1x SD Card Reader, 1x Headphone/Microphone combo. Bundle comes with Stylus Pen, 256GB Portable SSD and 5-in-1 Docking Station.
Driver download or startup fails
Run the basic non-UC example, inspect the SeleniumBase drivers directory and browser version, and use the project’s documented sbase get chromedriver command only when manual retrieval is needed. Avoid adding a random system driver to PATH before confirming that SeleniumBase actually needs it.
Build a reproducible comparison
- Save a one-page test URL and a target URL separately.
- Run four controlled cases: Chrome with Xvfb, Chromium with Xvfb, Chrome headless and Chromium headless, changing only one variable per run.
- For each run, record startup success, effective display mode, browser version, first failing command, response status, challenge type and elapsed time.
- Repeat from the host and container with the same network route where possible.
- Stop calling it a detection failure when the evidence shows a local browser crash, DNS error, proxy rejection or driver mismatch.
This matrix isolates likely causes; it does not measure a guaranteed “stealth” level. Site defenses and browser releases change over time.
Or skip the browser setup
If your goal is a clean image or PDF rather than interactive browser automation, ScreenshotNeo provides a single HTTP request. It accepts consent banners before capture and removes more than 60 known consent platforms, newsletter popups and chat widgets; each cleanup step can be disabled. Only clean shots are billed: bot checks or CAPTCHAs, blank pages, timeouts, failed loads and cache hits cost nothing, and the response reports the result in X-Page-Verdict and X-Billed headers.
cURL
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
Python
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
Node.js
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
See the ScreenshotNeo API documentation for response handling and options. The service also offers an MCP server with take_screenshot, get_page_info and capture_pdf tools for Claude, Cursor and other MCP clients. Every plan includes its capture features; 1,000 screenshots per month are free with no card, and paid plans start at $5 for 3,000. Create a free ScreenshotNeo account.
Frequently Asked Questions
Should I install a separate ChromeDriver on PATH?
Usually no. SeleniumBase downloads drivers to its own drivers directory as needed; use a PATH installation only when a separate integration specifically requires it.
Is Xvfb a stealth guarantee?
No. Xvfb supplies a virtual display and avoids headless-only behavior, but a site can still apply its own browser, network or account checks.
Why can a browser launch successfully and still be blocked?
Launching proves local WebDriver connectivity, not site acceptance. The target may return a challenge, 429 or block page after navigation.
Free tools Windows power users keep installed
One-click scans. No signup required.
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.

