Selenium’s pageLoadStrategy controls when a navigation command returns: normal waits for document readiness complete, eager for interactive, and none skips the document-readiness wait. It does not tell you whether a dynamic application or a specific element is ready; use condition-based waits for that.
What Selenium’s page load strategy changes
The strategy is a browser-session option that sets the document-readiness threshold WebDriver uses during navigation. It changes when Selenium continues past navigation, not how quickly the browser downloads resources or runs the site’s code. The setting applies to the entire WebDriver session, not just one navigation.
As an Amazon Associate I earn from qualifying purchases.
| Strategy | Readiness threshold | What to expect |
|---|---|---|
normal |
complete |
Default. Navigation waits for the page’s conventional load completion, including resources in its normal load sequence. |
eager |
interactive |
Navigation can return once the DOM is available for access. Other resources, such as images, may still be loading. “Interactive” here is the document readiness state, not a guarantee that the whole page is usable. |
none |
No document-readiness gate | Navigation does not block on document readiness. Navigation activity may still be underway, so the test must wait for the state it needs before interacting. |
Selenium documents these mappings in its browser-options guide.
Choose a strategy based on what the test needs
- Use
normalas a starting point when the test relies on conventional navigation completion, or when your team has not established reliable explicit waits. - Consider
eagerwhen the DOM is enough to begin the next step and waiting for remaining resources does not help the test. Still wait explicitly for the relevant page condition. - Use
noneonly with deliberate synchronization when the test can reliably wait for the required state after navigation. Issuing element commands immediately can create races. - For dynamic applications, keep a suitable strategy and add explicit waits. Changing the navigation threshold alone cannot establish that an asynchronous request or client-side update has finished.
These are practical choices based on Selenium’s documented behavior, not a promise of a particular speedup. The result depends on the page and test, and no universal performance gain follows from choosing eager or none.
#1 Best Overall
Set the strategy before creating the driver
Configure the value in the browser options used to create the WebDriver session. Here is a Python example using Selenium’s options API:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.page_load_strategy = "eager" # "normal", "eager", or "none"
driver = webdriver.Chrome(options=options)
try:
driver.get("https://example.com")
print(driver.title)
finally:
driver.quit()
Replace eager with normal or none as appropriate. The exact spelling of the options property varies by language binding; Selenium’s Python API exposes page_load_strategy and accepts these three values. This is a session setting rather than a per-navigation switch. Check the current documentation for your Selenium binding, browser, driver, and versions; the shared definitions do not establish identical behavior in every browser-driver combination.
Rank #2
Why “page loaded” does not mean an element is ready
A document’s readyState reports document loading progress. It does not certify that a single-page application has completed its JavaScript requests, rendered a particular component, or made the next control usable. Selenium’s waiting-strategies guide describes the race that results when the next command runs before the required state is reached.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitchesWait for the condition that matters to the next action—for example, the target becoming visible or clickable—after navigation or after a state-changing click. Do not treat normal as a guarantee that the application is fully usable, or eager as a guarantee of broad user-facing interactivity.
Rank #3
Page-load timeout is a separate setting
The page-load timeout limits navigation events in conjunction with the selected strategy. Selenium’s browser-options documentation states a default of 300,000 milliseconds for a newly created session; treat that as version-sensitive and check the documentation for your installed Selenium and driver when the exact default matters. If navigation exceeds the configured or applicable default limit, Selenium stops the script with a TimeoutException.
This timeout is not the implicit wait used for element location, nor the script timeout used for asynchronous scripts. Those settings address different operations; changing one does not substitute for configuring the others. See also Selenium’s JavaScript timeouts API reference.
Rank #4
Troubleshoot slow or flaky navigation
- Navigation returns, but an element is missing: The document reached the configured readiness threshold, but the application-specific condition may not be ready. Add an explicit wait for the element’s required state.
- The test races after choosing
none: The strategy removes the document-readiness gate; it does not supply synchronization. Wait for a meaningful condition before issuing element interactions. - The test still waits after choosing
eager:eagertargets document stateinteractive; it does not skip all navigation waiting or guarantee that the application has completed its work. - A page-load timeout occurs: Navigation exceeded the page-load timeout. Check whether the page or its load sequence is actually expected to finish, then review the timeout and strategy together. Do not assume an element wait or script timeout controls this navigation limit.
- The setting is rejected or behaves differently than expected: Confirm that the value is one of
normal,eager, ornone, and verify the options syntax and behavior for the installed Selenium binding, browser, and driver versions.
Or skip the browser setup
If your goal is to obtain a website screenshot rather than automate browser interactions, ScreenshotNeo provides a screenshot API and MCP server. A single request can return a PNG, JPEG, WebP, or PDF. For example, this cURL request saves a WebP screenshot of the target URL:
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 →Repair Windows errors before they cause bigger problemsFix Now →curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com -o shot.webp
See the ScreenshotNeo API documentation for options. It accepts and removes cookie/consent banners, newsletter popups, and chat widgets before capture; each step can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers identify the page verdict and billing status. Its MCP server lets AI agents use take_screenshot, get_page_info, and capture_pdf. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000.
Sign up for ScreenshotNeo to try 1,000 free screenshots a month with no card.
Best Value
Frequently Asked Questions
Can I change pageLoadStrategy for just one driver.get() call?
No. Selenium applies the strategy to the WebDriver session, so set it in the browser options before creating the driver.
Does pageLoadStrategy make a website load faster?
No. It changes when WebDriver returns from navigation, not the browser’s underlying network or rendering speed.
Outdated 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 matchWindows 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 reinstallWhich strategy should I use for a single-page application?
There is no universal choice. Select the navigation threshold appropriate to the test, then explicitly wait for the application condition needed for the next action.
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.




