C# 等待页面加载
我试图创建一个方法,等待页面通过C# 等待页面加载,c#,selenium,selenium-webdriver,C#,Selenium,Selenium Webdriver,我试图创建一个方法,等待页面通过javascript加载,但出现了一个错误。可能我没有正确使用这个方法 public static void WaitForLoad(this IWebDriver driver, int timeoutSec = 15) { WebDriverWait wait = new WebDriverWait(driver, new TimeSpan(0, 0, timeoutSec)); wait.Until(wd =>
javascript
加载,但出现了一个错误。可能我没有正确使用这个方法
public static void WaitForLoad(this IWebDriver driver, int timeoutSec = 15)
{
WebDriverWait wait = new WebDriverWait(driver, new TimeSpan(0, 0, timeoutSec));
wait.Until(wd => wd.ExecuteJavaScript("return document.readyState") == "complete");
}
错误是:
The type arguments for method 'WebdriverExtensions.ExecuteJavaScript<T>(IWerbDriver,string,params object[]' cannot be inferred from the usage.Try specifying the type arguments explicity)
无法从用法中推断方法“WebdriverExtensions.ExecuteJavaScript(IWerbDriver,string,params object[]”的类型参数。请尝试明确指定类型参数)
在等待加载(…)
函数中,您正在检查(“return document.readyState”)=“complete”
实际上,对函数WaitForLoad(…)
的调用纯粹是重载,没有实际效果。这是因为Selenium DLL/JAR/模块的设计方式是,只有当您使用的浏览器将document.readyState==“complete”
发送到webdriver时,webdriver
才会执行下一行代码
在您的情况下,与其验证document.readyState==“complete”
,不如等待更有效,即诱导ExplicitWait下一个Web元素,我们打算与element可见(By)
,element可禁用(By)中的相应子句进行交互
,元素可选择(IWebElement)
,元素可选择(IWebElement,布尔值)
,等等。此线程应可帮助您: