我添加了一些断点我的测试在调试模式下工作。但删除断点后,我得到Timeout异常。我使用了Thread.Sleep并且它有用,而不是使用thread.sleep
[Test]
public void OpenStockControl()
{
driver.Navigate().GoToUrl("http://testdeneme.com");
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(1));
IWebElement userName = driver.FindElement(By.Id("LoginNew1_tU"));
userName.SendKeys("TEST3");
IWebElement userPassword = driver.FindElement(By.Id("LoginNew1_tP"));
userPassword.SendKeys("A7535");
IWebElement buttonSubmit = driver.FindElement(By.Id("LoginNew1_bGo"));
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(5));
buttonSubmit.Click();
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(20));
SwitchWindow("ABC MA", driver);
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(20));
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
IWebElement element = wait.Until(ExpectedConditions.ElementExists(By.Id("ext-gen54")));
element.Click();
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
IWebElement element2 = wait.Until(ExpectedConditions.ElementExists(By.Id("ext-gen207")));
element2.Click();
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
IWebElement element3 = wait.Until(ExpectedConditions.ElementExists(By.Id("ext-gen260")));
element3.Click();
}
答案 0 :(得分:1)
您的等待(WebDriverWait)等待10秒钟才能显示元素。不符合ExpectedCondition,因此抛出异常。您可以增加调用WebDriverWait构造函数的时间量。
答案 1 :(得分:0)
你看过http://www.seleniumhq.org/docs/04_webdriver_advanced.jsp了吗?我发现添加我自己的方法,如bool WaitForPage([WebDriver],[Page],[time])及其推论WaitForNotPage(...)解决了许多超时问题。显式等待和隐式等待确实解决了很多问题,但你仍会偶尔发现自己使用Thread.Sleep()。