pageLoadTimeout in Selenium not working pageLoadTimeout in Selenium not working selenium selenium

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.01502530864365   geckodriver INFO    Listening on 127.0.0.1:296881502530865042   geckodriver::marionette INFO    Starting browser C:\Program Files\Mozilla Firefox\firefox.exe with args ["-marionette"]1502530903170   Marionette  INFO    Listening on port 1900Aug 12, 2017 3:11:44 PM org.openqa.selenium.remote.ProtocolHandshake createSessionINFO: Detected dialect: W3CException in thread "main" org.openqa.selenium.TimeoutException: Timeout loading page after 2000msBuild 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.FirefoxDriverCapabilities [{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 createSessionINFO: 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.010WebDriverException occured


if you specify the time, and selenium is not able to load the site is specified time, it will throw TimedoutException. You should handle that in your code.

    driver.manage().timeouts().pageLoadTimeout(4, TimeUnit.SECONDS);    long startTime = System.currentTimeMillis();    try{        driver.get("https://yahoo.com");    }catch (TimeoutException te){        long estimatedTime = System.currentTimeMillis() - startTime;        System.out.println("it took "+estimatedTime+" Time");    }

if it's not throwing TimeoutException, either website has done loading within specified time or something is wrong with Selenium API.


WebDriver.Timeouts -> pageLoadTimeout(long time, java.util.concurrent.TimeUnit unit)Sets the amount of time to wait for a page load to complete before throwing an error.

pageLoadTimeout

WebDriver.Timeouts pageLoadTimeout(long time,java.util.concurrent.TimeUnit unit)

Sets the amount of time to wait for a page load to complete before throwing an error. If the timeout is negative, page loads can be indefinite.Parameters:time - The timeout value.unit - The unit of time.Returns:A Timeouts interface.

https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebDriver.Timeouts.html