What are the methods in Selenium to wait until a page is completely loaded?

What are the methods in Selenium to wait until a page is completely loaded?

Hi Anju,

I hope this message finds you well. In response to your question regarding the utilization of WebDriverWait with ExpectedConditions in Selenium, particularly to wait for the completion of page loading, I would like to provide you with a structured explanation and code snippet.

Using WebDriverWait with ExpectedConditions: Use WebDriverWait in conjunction with ExpectedConditions to wait until the JavaScript returns that the document.readyState is ‘complete’. This means the entire page, including its resources like images, scripts, and stylesheets, has finished loading.


import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.openqa.selenium.support.ui.ExpectedConditions;

// Assuming ‘driver’ is an instance of WebDriver

WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.jsReturnsValue("return document.readyState === 'complete';"));

I trust this clarifies your query. If you have any further questions or require additional assistance, please do not hesitate to reach out.

Hi Anju,

I trust this message finds you well. In response to your query regarding page load strategies in Selenium, I would like to highlight the effective use of the PageLoadStrategy feature, which empowers developers to exert control over the browser’s behavior during page loading.

Selenium offers three distinct PageLoadStrategy options, namely NORMAL, EAGER, and NONE, each catering to specific needs in managing the waiting time for a page to load. In the context of your inquiry, the utilization of PageLoadStrategy.NORMAL ensures that the WebDriver patiently waits for the complete page load, encompassing all associated resources, before proceeding with subsequent commands.

To implement this strategy in your Selenium script, you can follow the provided code snippet:


import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.chrome.ChromeDriver;

ChromeOptions options = new ChromeOptions();
options.setPageLoadStrategy(PageLoadStrategy.NORMAL); // or EAGER or NONE
WebDriver driver = new ChromeDriver(options);