【发布时间】:2016-08-10 08:39:06
【问题描述】:
在我的一些项目中,要正确保存表单,用户需要执行单击“保存”或“保存更改”按钮。该点击会导致整个页面重新加载(重新加载后所做的更改将在页面上可见),但如果出现错误,验证将停止页面重新加载。 我想创建一个简单的断言来检查该页面是否被重新加载,如果没有,我的测试将失败。我尝试使用此代码:
public bool WasPageRefreshed(float seconds)
{
DriverLocal.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.MinValue);
string getReadyState = "return document.readyState;";
for (int i = 0; i < 10; i++)
{
string readyState = GetJsExecutor().ExecuteScript(getReadyState) as string;
if (readyState != "complete")
return true;
Thread.Sleep(TimeSpan.FromMilliseconds(seconds / 10));
}
DriverLocal.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(60));
return false;
}
我在 Assert.True() 中使用它来检查页面是否已重新加载,但它并不总是有效(我可以在同一表单上使用它 5 次 - 3 次正常,2 次测试将失败)。 有没有办法升级它以在 100% 的使用情况下正常工作? 或者也许有另一种方法来检查页面是否重新加载?
【问题讨论】:
标签: c# selenium webdriver automated-tests