检查Selenium中的页面加载时间

时间:2013-07-30 21:20:51

标签: c# selenium nunit selenium-webdriver

我需要检查页面的加载时间是否超过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"));
    });

但我不知道如何锚定等待移动网址。 告诉我,什么是更好,或提供自己的版本。

1 个答案:

答案 0 :(得分:0)

如果要检查页面的加载时间是否超过N秒,则应在调用您尝试加载的页面时将pageLoadTimeOut设置为N秒。这也应该是一个try / catch块,因此您可以看到页面何时尝试加载太长时间。据我所知,如果达到超时,则下一行代码将继续执行,因此如果您不想执行代码,则整个代码块应该在try / catch中。