我需要检查页面的加载时间是否超过n秒。
我将C#与Selenium和NUnit一起使用
我见过几种方法:
1:
var time1=DateTime.Now.Ticks/TimeSpan.TicksPerMillisecond;
driver.Navigate().GoToUrl("http://football.ua");
var time2=DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond;
Console.WriteLine(time2-time1);
//check difference
2:
driver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(10));
driver.Navigate().GoToUrl(---------);
//If the load is greater than 10 seconds, takes exception
//I doubt this method, since exceptions emerge, even if the place is quite large timeout (10 sec)
3:使用显式等待
示例:
IWebDriver driver = new FirefoxDriver();
driver.Url = "http://football.ua";
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
IWebElement myDynamicElement = wait.Until<IWebElement>((d) =>
{
return d.FindElement(By.Id("someDynamicElement"));
});
但我不知道如何锚定等待移动网址。 告诉我,什么是更好,或提供自己的版本。
答案 0 :(得分:0)
如果要检查页面的加载时间是否超过N秒,则应在调用您尝试加载的页面时将pageLoadTimeOut设置为N秒。这也应该是一个try / catch块,因此您可以看到页面何时尝试加载太长时间。据我所知,如果达到超时,则下一行代码将继续执行,因此如果您不想执行代码,则整个代码块应该在try / catch中。