2

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

但我不知道如何锚定等待移动 url。告诉我,有什么更好的,或者提供他们自己的版本。

4

1 回答 1

0

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

于 2013-07-31T21:07:25.077 回答