Pageloadtimeout in Selenium Not Working

pageLoadTimeout in Selenium not working

The solution to your pageLoadTimeout issue would be to bump up your Selenium version to v3.5.0. Here is effective code block and the resulted org.openqa.selenium.TimeoutException: Timeout loading page after 2000ms of your own code in minimal lines:

  • Code block:

    public class Q45591282_pageloadtimeout 
    {
    public static void main(String[] args)
    {
    System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
    WebDriver driver=new FirefoxDriver();
    driver.manage().timeouts().pageLoadTimeout(2, TimeUnit.SECONDS);
    driver.get("https://www.booking.com/hotel/in/the-taj-mahal-palace-tower.html?label=gen173nr-1FCAEoggJCAlhYSDNiBW5vcmVmaGyIAQGYATG4AQbIAQzYAQHoAQH4AQKSAgF5qAID;sid=338ad58d8e83c71e6aa78c67a2996616;dest_id=-2092174;dest_type=city;dist=0;group_adults=2;hip_dst=1;hpos=1;room1=A%2CA;sb_price_type=total;srfid=ccd41231d2f37b82d695970f081412152a59586aX1;srpvid=c71751e539ea01ce;type=total;ucfs=1&#hotelTmpl");
    }
    }
  • Console Output:

    1502530864350   geckodriver INFO    geckodriver 0.18.0
    1502530864365 geckodriver INFO Listening on 127.0.0.1:29688
    1502530865042 geckodriver::marionette INFO Starting browser C:\Program Files\Mozilla Firefox\firefox.exe with args ["-marionette"]
    1502530903170 Marionette INFO Listening on port 1900
    Aug 12, 2017 3:11:44 PM org.openqa.selenium.remote.ProtocolHandshake createSession
    INFO: Detected dialect: W3C
    Exception in thread "main" org.openqa.selenium.TimeoutException: Timeout loading page after 2000ms
    Build info: version: '3.5.0', revision: '8def36e068', time: '2017-08-10T23:00:22.093Z'
    System info: host: 'ATECHM-03', ip: '192.168.1.48', os.name: 'Windows 8', os.arch: 'amd64', os.version: '6.2', java.version: '1.8.0_77'
    Driver info: org.openqa.selenium.firefox.FirefoxDriver
    Capabilities [{moz:profile=C:\Users\ATECHM~1\AppData\Local\Temp\rust_mozprofile.LSsvaNqlDbxE, rotatable=false, timeouts={implicit=0.0, pageLoad=300000.0, script=30000.0}, pageLoadStrategy=normal, platform=ANY, specificationLevel=0.0, moz:accessibilityChecks=false, acceptInsecureCerts=false, browserVersion=53.0, platformVersion=6.2, moz:processID=3652.0, browserName=firefox, javascriptEnabled=true, platformName=windows_nt}]
    Session ID: 8b841376-00fd-4359-8cae-a68912b23706
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:185)
    at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:120)
    at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:164)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:641)
    at org.openqa.selenium.remote.RemoteWebDriver.get(RemoteWebDriver.java:368)
    at demo.Q45591282_pageloadtimeout.main(Q45591282_pageloadtimeout.java:20)

Catching the WebDriverException

  • Code Block:

    public class pageLoadTimeout 
    {
    public static void main(String[] args)
    {
    System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.manage().timeouts().pageLoadTimeout(2, TimeUnit.SECONDS);
    try{
    driver.get("https://www.booking.com/hotel/in/the-taj-mahal-palace-tower.html?label=gen173nr-1FCAEoggJCAlhYSDNiBW5vcmVmaGyIAQGYATG4AQbIAQzYAQHoAQH4AQKSAgF5qAID;sid=338ad58d8e83c71e6aa78c67a2996616;dest_id=-2092174;dest_type=city;dist=0;group_adults=2;hip_dst=1;hpos=1;room1=A%2CA;sb_price_type=total;srfid=ccd41231d2f37b82d695970f081412152a59586aX1;srpvid=c71751e539ea01ce;type=total;ucfs=1&#hotelTmpl");
    }catch(WebDriverException e){
    System.out.println("WebDriverException occured");
    }
    driver.quit();
    }
    }
  • Console Output:

    Only local connections are allowed.
    Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
    Jul 17, 2019 8:53:26 PM org.openqa.selenium.remote.ProtocolHandshake createSession
    INFO: Detected dialect: W3C
    [1563377008.449][SEVERE]: Timed out receiving message from renderer: 1.999
    [1563377008.450][SEVERE]: Timed out receiving message from renderer: -0.001
    [1563377008.461][SEVERE]: Timed out receiving message from renderer: -0.012
    [1563377010.466][SEVERE]: Timed out receiving message from renderer: 1.998
    [1563377010.467][SEVERE]: Timed out receiving message from renderer: -0.001
    [1563377010.476][SEVERE]: Timed out receiving message from renderer: -0.010
    WebDriverException occured

pageLoadTimeout is not working in Selenium - Java

You can set the pageload strategy for browser which will then make the page not wait for the full page load for your other Selenium commands to be executed. Below is the sample code snippet in Java. There are three supported values:

normal

This stategy causes Selenium to wait for the full page loading (html content and subresources downloaded and parsed).

eager

This stategy causes Selenium to wait for the DOMContentLoaded event (html content downloaded and parsed only).

none

This strategy causes Selenium to return immediately after the initial page content is fully received (html content downloaded).

By default, when Selenium loads a page, it follows the normal pageLoadStrategy.

DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("pageLoadStrategy", "eager");
FirefoxOptions opt = new FirefoxOptions();
opt.merge(caps);
WebDriver driver = new FirefoxDriver(opt);
driver.get("https://www.google.com/");

If you are interested only in the HTML of the page, better use the "eager" strategy.

Page load timeout is not working in Selenium WebDriver

The likely scenario is that you are creating a new instance of the driver inside your Loginpage page object instead of passing the existing instance so it's not initialized... thus the NPE.

PageloadTimeout() not working in IE11 with selenium 3.4

You can use JavascriptExecutor for pageload as below:

private static boolean isloadComplete(WebDriver driver)
{
return ((JavascriptExecutor) driver).executeScript("return document.readyState").equals("loaded")
|| ((JavascriptExecutor) driver).executeScript("return document.readyState").equals("complete");
}

Unable to catch TimeOutException from pageLoadTimeout and refresh page using selenium Java FireFox Driver

The result is pretty much as expected and as per the specifications.

This error message...

Exception in thread "main" org.openqa.selenium.TimeoutException: Timeout loading page after 10000ms

...is the result of pageLoadTimeout() which you have configured as:

driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);

For a detailed analysis about the reason for the exception you can always catch the WebDriverException. You can find a detailed discussion in pageLoadTimeout in Selenium not working.


Outro

How to make selenium to reload the desired url if it takes too long loading

Selenium: pageLoadTimeout not working for constantly redirecting sites

you can wait untill js return page complete status.

private WebDriverWait wait;

try
{
wait = new WebDriverWait(driver, TimeSpan.FromSeconds(60));
wait.Until(driver1 => ((IJavaScriptExecutor)driver).ExecuteScript("return document.readyState").Equals("complete"));
}
catch(Exception ex)
{}


Related Topics



Leave a reply



Submit