seleniumwebdriverselenium-firefoxdriverpageloadtimeout

pageLoadTimeout is not working in Selenium - Java


I am testing a website in linux host.The page i am accessing loads infinitely so I am trying to set pageLoadTimeout for selenium. Firefox is triggered correctly but URL is not loading/navigating/added in url bar.just blank firefox window.I am not seeing any errors also.

WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().pageLoadTimeout(2, TimeUnit.SECONDS);
driver.get("http://www.example.com");

However if I remove driver.manage().timeouts().pageLoadTimeout(2, TimeUnit.SECONDS); code is working fine

Selenium version : 3.14.0;

gecko driver : 18 - linux (tested with gecko 16,17 also same issue)

browser : firefox-52

os/platform : linux

If this kind of some issue how do I make sure my driver quit itself after 5 minute.Host will support only firefox 52.

I checked this link but doesnt fix my problem.

Thanks Jk


Solution

  • 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.