0

I use the below waitTillPageLoad method for any click event so that the next step does not fail. This works for the first few events but throws an exception in line

wait.Until(
    wd => js.ExecuteScript("return document.readyState").ToString() == "complete").
<package id="Selenium.Support" version="3.141.0" targetFramework="net452" />
<package id="Selenium.WebDriver" version="3.141.0" targetFramework="net452" />
<package id="Selenium.WebDriver.ChromeDriver" version="76.0.3809.68" targetFramework="net452" />

This was working fine for about two years until last week when my chrome browser was updated to 76.0.3809.100. When I use Firefox, this seems to work. However, our team would like to use Chrome for long term. One of my team member still uses an older chrome/chromedriver version and this is working fine.

public void waitTillPageLoad()
{
    try
    {
        int waitTime = 45;

        Thread.Sleep(200);
        var js = (IJavaScriptExecutor)driver;

        var wait = new WebDriverWait(driver, new TimeSpan(0, 0, waitTime));
        wait.Until(wd =>
            js.ExecuteScript("return document.readyState").ToString() == "complete");

        driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(waitTime);
    }
    catch (WebDriverException ex)
    {
        Console.WriteLine("Webpage did not load for the specified time " + ex);
    }
}
Webpage did not load for the specified timeOpenQA.Selenium.WebDriverTimeoutException: script timeout
  (Session info: chrome=76.0.3809.100)
   at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
   at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
   at OpenQA.Selenium.Remote.RemoteWebDriver.ExecuteScriptCommand(String script, String commandName, Object[] args)
   at OpenQA.Selenium.Remote.RemoteWebDriver.ExecuteScript(String script, Object[] args)
   at Extensions.GlobalDriver.<>c__DisplayClass32_0.<waitTillPageLoad>b__0(IWebDriver wd) in <<FilePath>>:line 345
   at OpenQA.Selenium.Support.UI.DefaultWait`1.Until[TResult](Func`2 condition)
Blarghedy
  • 47
  • 8

2 Answers2

0

This is because of the new chrome browser version. Try using with the updated chrome driver with new chrome browser version.

Zohair
  • 268
  • 2
  • 7
0

I had a similar issue with the version 76 Chrome update which wasn't fixed even by installing the compatible chromedriver version. I was able to rectify my issue by updating to the latest selenium version. At the time of writing this is 3.141.0. Worked immediately after that change was made.

mrduncle1
  • 589
  • 7
  • 11