C#Selenium,如何在页面仍在加载时在Web驱动程序上执行javascript

时间:2016-09-23 19:48:10

标签: javascript c# selenium selenium-webdriver

所以我有一个页面需要很长时间才能加载,因为它加载了一些背景资料。我希望能够在加载DOM并且readyState是“交互式”时立即与其进行交互。基本上我只是想点击一个链接把我带离这个页面,因为在我继续前进之前我不需要加载整个东西。但是,在页面加载之前,我似乎无法在驱动程序上运行Javascript;会发生什么事情,ExecuteJavascript函数也会在我身上超时。

try
{
    element.Click(); //BrowserCommandTimeout was set to 10 seconds
}
catch (Timeout e)
{
     string state = driver.ExecuteJs("return document.readyState").ToString(); //Also times out after 10 seconds

     while ((state != "complete") && state != "interactive")
     {
          Utilities.Sleep(2000);
     }
}

任何人都知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

就是这个

Dim r As New Random() 'Should be declared at the topmost level
Dim value As Double = r.NextDouble()