我有一个使用 Selenium 的 TestMethod,如下所示:
[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 调用?
谢谢,