【发布时间】:2012-01-26 17:15:58
【问题描述】:
我有一个使用 Selenium 的测试方法,如下所示:
[TestMethod]
public void ShouldSendPasswordReminder()
{
// go to loginregister url
_fireFoxWebDriver.Navigate().GoToUrl(UkPaBaseUrl + "loginregister.aspx");
Thread.Sleep(1000);
// click the forgotten password
_fireFoxWebDriver.FindElement(By.LinkText("Forgotten your password?")).Click();
Thread.Sleep(1000);
// enter your email address
_fireFoxWebDriver.FindElement(By.Id("PasswordResetRequest1_PasswordResetRequest_Username"))
.SendKeys("username.lastname@domain.com");
Thread.Sleep(1000);
// click submit
_fireFoxWebDriver.FindElement(By.Id("PasswordResetRequest1_PasswordResetRequest_PasswordResetRequestSubmit")).Click();
Thread.Sleep(5000);
// assert
Assert.IsTrue(_fireFoxWebDriver.Url.Contains("ThankYou"));
}
如您所见,几乎在每次操作之后,我都必须多次调用 Thread.Sleep(因为页面可能需要一些时间才能完成它所做的事情,因为 javascript 等),因为 Selenium 似乎不是能够处理与 WatiN 不同的页面加载和延迟。
这使得代码相当丑陋而且不太可靠。
处理这种情况的更好方法是什么?您是否也在测试中编写频繁的 Thread.Sleep 调用?
谢谢,
【问题讨论】:
标签: c# unit-testing selenium mstest system-testing