Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsSome links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.
Use Chrome’s modern headless mode, choose the least-blocking page-load strategy that your assertions can support, replace fixed sleeps with explicit waits, and keep your browser/driver versions aligned. On macOS, these changes usually matter more than obscure Chrome flags. There is no authoritative universal percentage improvement: measure the pages and flows you actually run, with your Python, Selenium, Chrome and Mac versions recorded.
1. Start with a lean, measurable configuration
Install a current Selenium release in the Python environment used by your tests:
python -m pip install -U selenium
Chrome’s unified headless mode runs without a visible user interface. Selenium’s current Python pattern is --headless=new. Selenium Manager, included with Selenium, can discover Chrome and manage a compatible driver on macOS, so a separate webdriver-manager package is normally unnecessary.
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument("--headless=new")
options.add_argument("--window-size=1440,900")
options.page_load_strategy = "eager"
driver = webdriver.Chrome(options=options)
driver.set_page_load_timeout(30)
driver.set_script_timeout(30)
try:
driver.get("https://example.com")
print(driver.title)
finally:
driver.quit()
set_page_load_timeout and set_script_timeout bound how long WebDriver waits. They do not accelerate a slow server; they stop a pathological navigation or asynchronous script from holding the test indefinitely.
#1 Best Overall
- SUPERCHARGED BY M5 — The 14-inch MacBook Pro with M5 brings next-generation speed and powerful on-device AI to personal, professional, and creative tasks. Featuring all-day battery life and a breathtaking Liquid Retina XDR display with up to 1600 nits peak brightness, it’s pro in every way.*
- HAPPILY EVER FASTER — Along with its faster CPU and unified memory, M5 features a more powerful GPU with a Neural Accelerator built into each core, delivering faster AI performance. So you can blaze through demanding workloads at mind-bending speeds.
- BUILT FOR APPLE INTELLIGENCE — Apple Intelligence is the personal intelligence system that helps you write, express yourself, and get things done effortlessly. With groundbreaking privacy protections, it gives you peace of mind that no one else can access your data — not even Apple.*
- ALL-DAY BATTERY LIFE — MacBook Pro delivers the same exceptional performance whether it’s running on battery or plugged in.
- APPS FLY WITH APPLE SILICON — All your favorites, including Microsoft 365 and Adobe Creative Cloud, run lightning fast in macOS.*
2. Select the right page-load strategy
Selenium exposes three strategies. The faster strategy is useful only if the next operation has a reliable readiness condition.
| Strategy | What navigation waits for | Use when | Main risk |
|---|---|---|---|
normal |
All resources finish loading. | The test contract requires images, stylesheets, frames or other subresources to be complete. | Slow third-party resources delay every navigation. |
eager |
The DOM is available while other resources may still load. | Assertions need the document structure and application controls, not every image or late resource. | An element can exist before its data, styling or event handlers are ready. |
none |
WebDriver does not block on navigation completion. | Your test has application-specific readiness checks that are stronger than document-load events. | The next command can run against an unusable page, producing races and flaky failures. |
Use eager as the practical compromise for many UI tests. Choose normal if “loaded” is part of what you verify. Choose none only when you immediately wait for a known condition such as a post-login dashboard marker, a network-backed result, or a framework-specific ready flag.
3. Replace sleeps with explicit, bounded waits
A fixed time.sleep(5) always costs five seconds, even when the page is ready after half a second. It can also fail when a slow run needs six seconds. Wait for the condition your assertion actually needs:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 20)
driver.get("https://example.com/app")
button = wait.until(
EC.element_to_be_clickable((By.CSS_SELECTOR, "button[data-test='continue']"))
)
button.click()
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "[data-test='results']")))
Useful conditions include presence, visibility, clickability, a URL change, a title change, an element’s text, or a JavaScript application state. Keep the timeout finite and choose a polling condition that represents user-visible readiness. If you use none, perform this wait immediately after get(); do not assume that a returned call means the page is ready.
Rank #2
- FAST RUNS IN THE FAMILY — The 16-inch MacBook Pro with the M5 Pro or M5 Max chip brings next-generation speed and powerful on-device AI to personal, professional, and creative tasks. With all-day battery life, double the starting storage,* and a breathtaking Liquid Retina XDR display, it’s pro in every way.*
- BUCKLE UP — Along with a next-generation CPU, faster unified memory, and up to 2x faster SSD storage,* M5 Pro and M5 Max feature a more powerful GPU with a Neural Accelerator built into each core, delivering faster AI performance and on-device training capabilities. So you can blaze through demanding workloads at mind-bending speeds.
- BUILT FOR AI — Apple silicon, and every major component that powers it, is designed to run demanding on-device AI workloads like LLM inference and training. And Apple Intelligence helps you write, express yourself, and get things done effortlessly with groundbreaking privacy protections at every step.*
- ALL-DAY BATTERY LIFE — MacBook Pro delivers the same exceptional performance whether it’s running on battery or plugged in.*
- MACOS RUNS APPS FAST — All your go-to apps run lightning fast in macOS, including built-in apps like FaceTime and Messages. Plus, built-in virus protection and free software updates help keep your Mac running smoothly and securely.
4. Remove work the test never uses
- Do not open tabs, download files, take screenshots, install extensions or visit pages that no assertion needs.
- Reuse one session for related cases when isolation permits. Browser startup and teardown are measurable overhead. Reset cookies, local storage and application state deliberately between cases; a long-lived session without cleanup leaks state.
- Use a viewport that matches the scenario instead of an unnecessarily large window. Keep the explicit size so layout-dependent tests are repeatable.
- Avoid disabling JavaScript, CSS or images unless the test proves those resources are irrelevant. Removing a dependency that an assertion needs creates false positives or flaky behavior.
Resource blocking can help a page dominated by advertising or analytics, but it is a correctness decision, not a universal speed switch. Compare the same test with and without each block rule and retain only rules that do not change the behavior under test.
5. Keep Chrome and its driver compatible
Current Selenium guidance favors passing Chrome arguments through Options and letting built-in Selenium Manager discover and manage the matching browser/driver toolchain. This reduces manual downloads and version mismatch work. It does not make JavaScript execution or network transfer intrinsically faster.
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument("--headless=new")
options.page_load_strategy = "eager"
driver = webdriver.Chrome(options=options)
Older tutorials often add webdriver-manager. Do not install it merely because a tutorial does. Add a separate manager only when your organization has a specific, tested reason to control driver binaries outside Selenium Manager.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →6. Measure the change on your Mac
Benchmark representative URLs and complete test flows rather than a blank page. Run the same URLs, account data and network conditions in each comparison. Record:
Rank #3
- FAST RUNS IN THE FAMILY — The 16-inch MacBook Pro with the M5 Pro or M5 Max chip brings next-generation speed and powerful on-device AI to personal, professional, and creative tasks. With all-day battery life, double the starting storage,* and a breathtaking Liquid Retina XDR display, it’s pro in every way.*
- BUCKLE UP — Along with a next-generation CPU, faster unified memory, and up to 2x faster SSD storage,* M5 Pro and M5 Max feature a more powerful GPU with a Neural Accelerator built into each core, delivering faster AI performance and on-device training capabilities. So you can blaze through demanding workloads at mind-bending speeds.
- BUILT FOR AI — Apple silicon, and every major component that powers it, is designed to run demanding on-device AI workloads like LLM inference and training. And Apple Intelligence helps you write, express yourself, and get things done effortlessly with groundbreaking privacy protections at every step.*
- ALL-DAY BATTERY LIFE — MacBook Pro delivers the same exceptional performance whether it’s running on battery or plugged in.*
- MACOS RUNS APPS FAST — All your go-to apps run lightning fast in macOS, including built-in apps like FaceTime and Messages. Plus, built-in virus protection and free software updates help keep your Mac running smoothly and securely.
- Chrome, Selenium and Python versions;
- Mac model, processor architecture and operating-system version;
- whether the target is local, on a private network or remote;
- browser startup time;
- time from
get()to the readiness condition; - end-to-end test duration and failure rate.
from time import perf_counter
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
options = Options()
options.add_argument("--headless=new")
options.page_load_strategy = "eager"
driver = webdriver.Chrome(options=options)
driver.set_page_load_timeout(30)
try:
start = perf_counter()
driver.get("https://example.com/app")
WebDriverWait(driver, 20).until(
EC.presence_of_element_located((By.CSS_SELECTOR, "[data-test='app-ready']"))
)
print(f"ready: {perf_counter() - start:.3f}s")
finally:
driver.quit()
Run multiple iterations and compare the distribution, not only the fastest run. A shorter get() time with more stale-element or timeout failures is not a speed improvement. Official Selenium and Chrome documentation defines the semantics of these settings, but does not establish a universal macOS percentage gain.
7. Troubleshoot common failures
SessionNotCreatedException or driver errors
Chrome and the driver are incompatible, Chrome is missing, or the environment cannot obtain a driver. Update Selenium and Chrome, remove stale manually managed binaries from PATH, and retry with webdriver.Chrome(options=options) so Selenium Manager can resolve the pair.
The script continues before the application is usable
This is expected with eager when you wait only for navigation, and especially common with none. Add an explicit wait for the application’s real ready marker, data result, URL state or enabled control.
Free tools Windows power users keep installed
One-click scans. No signup required.
Timeouts occur only on large or image-heavy pages
Use normal only if complete resource loading is required. Otherwise test eager, remove irrelevant work, and increase the bounded timeout for a genuinely slow endpoint. Do not hide a server outage with an unlimited timeout.
Rank #4
- SUPERCHARGED BY M5 — The 14-inch MacBook Pro with M5 brings next-generation speed and powerful on-device AI to personal, professional, and creative tasks. Featuring all-day battery life and a breathtaking Liquid Retina XDR display with up to 1600 nits peak brightness, it’s pro in every way.*
- HAPPILY EVER FASTER — Along with its faster CPU and unified memory, M5 features a more powerful GPU with a Neural Accelerator built into each core, delivering faster AI performance. So you can blaze through demanding workloads at mind-bending speeds.
- BUILT FOR APPLE INTELLIGENCE — Apple Intelligence is the personal intelligence system that helps you write, express yourself, and get things done effortlessly. With groundbreaking privacy protections, it gives you peace of mind that no one else can access your data — not even Apple.*
- ALL-DAY BATTERY LIFE — MacBook Pro delivers the same exceptional performance whether it’s running on battery or plugged in.
- APPS FLY WITH APPLE SILICON — All your favorites, including Microsoft 365 and Adobe Creative Cloud, run lightning fast in macOS.*
Headless and headed layouts differ
Set a deterministic window size, wait for fonts or layout-dependent controls when necessary, and verify selectors at that viewport. A headless run is not a guarantee that every visual breakpoint matches your interactive desktop window.
Flakiness appears after reusing a session
Clear cookies and storage, return to a known URL, close extra windows, and reset application data between cases. If isolation is more valuable than startup time, create a fresh driver per test group.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.8. Or skip the browser setup
If your goal is a static capture rather than interaction, a screenshot API avoids maintaining a local Chrome session. ScreenshotNeo is a website screenshot API and MCP server. One GET request returns PNG, JPEG, WebP or PDF, and it is designed to produce clean captures: it accepts cookie or consent banners and removes more than 60 known consent platforms, newsletter popups and chat widgets before capture. Bot checks, blank pages, timeouts, failed loads and cache hits are not billed, and response headers identify the page verdict and whether the request was billed.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →Using the ScreenshotNeo API documentation:
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,
)
r.raise_for_status()
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}`);
if (!res.ok) throw new Error(`${res.status} ${res.statusText}`);
const fs = await import('node:fs/promises');
await fs.writeFile('shot.webp', Buffer.from(await res.arrayBuffer()));
ScreenshotNeo supports full-page captures with lazy images loaded, CSS-selector element capture, dark mode, 12 device presets plus custom viewports, retina scale, PDF paper and page-range controls, HTML/CSS rendering, custom JavaScript and CSS, clicks before capture, selector hiding, selector/delay/network-idle waits, request and resource blocking, headers, cookies, user agents, authorization, timezone and geolocation, transparent backgrounds, resizing, configurable-TTL caching, signed image links, asynchronous jobs with signed webhooks, bulk capture of up to 100 URLs per call, a usage API and an OpenAPI specification. Parameter names used by other screenshot APIs also work, which can simplify migration.
An MCP server supplies take_screenshot, get_page_info and capture_pdf tools to Claude, Cursor and other MCP clients. Every feature is on every plan: 1,000 shots per month free with no card; Starter is $5 for 3,000, Growth $15 for 15,000, Pro $39 for 60,000, Scale $99 for 250,000 and Business $249 for 1,000,000. Yearly billing provides two months free. Create a free ScreenshotNeo account to start with the 1,000 monthly shots.
Best Value
- SUPERCHARGED BY M5 — The 14-inch MacBook Pro with M5 brings next-generation speed and powerful on-device AI to personal, professional, and creative tasks. Featuring all-day battery life and a breathtaking Liquid Retina XDR display with up to 1600 nits peak brightness, it’s pro in every way.*
- HAPPILY EVER FASTER — Along with its faster CPU and unified memory, M5 features a more powerful GPU with a Neural Accelerator built into each core, delivering faster AI performance. So you can blaze through demanding workloads at mind-bending speeds.
- BUILT FOR APPLE INTELLIGENCE — Apple Intelligence is the personal intelligence system that helps you write, express yourself, and get things done effortlessly. With groundbreaking privacy protections, it gives you peace of mind that no one else can access your data — not even Apple.*
- ALL-DAY BATTERY LIFE — MacBook Pro delivers the same exceptional performance whether it’s running on battery or plugged in.
- APPS FLY WITH APPLE SILICON — All your favorites, including Microsoft 365 and Adobe Creative Cloud, run lightning fast in macOS.*
FAQ
Is headless Chrome always faster than headed Chrome on macOS?
Not by a guaranteed amount. Headless removes visible UI work, but network latency, server processing, JavaScript and test synchronization often dominate. Measure the same flow in both modes.
Should I set every test to none?
No. It returns control before WebDriver knows navigation is complete. Use it only with dependable, application-specific readiness checks; otherwise prefer eager or normal.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Can Selenium Manager replace a page-speed optimization?
No. It simplifies browser and driver discovery and reduces setup failures. It does not reduce the time Chrome needs to load or execute a page.
Frequently Asked Questions
Does headless Chrome consume less memory on every Mac?
Not necessarily. Headless removes visible UI rendering, but page complexity, tabs, extensions and JavaScript determine memory use. Measure your workload rather than assuming a fixed saving.
Can I change page-load strategy after creating the driver?
Set options.page_load_strategy before calling webdriver.Chrome. Create separate driver configurations when comparing strategies.
What should a readiness marker look like?
Use a stable application-owned signal such as [data-test='app-ready'], a populated result element, an expected URL, or an enabled control that appears only after required data is available.
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.

