如何替换Thread.Sleep()?虽然所有元素都已加载
public void Test()
{
home.OpenHomePage();
users.Login(new Logins("test1", "test2"));
Thread.Sleep(2000);
BtnOk();
Thread.Sleep(2000);
..................}
例如:
BtnOk ();
在此之前,我等到元素加载:
(driver.FindElement (By.XPath ("// button")). Click ()
答案 0 :(得分:0)
停止使用Thread.sleep(),因为即使下一个元素加载也会延迟执行。切换到显式等待。 在您的情况下,可以使用以下等待:
wait.until(ExpectedConditions.visibilityOfElementLocated(By.XPath ("// button")));
答案 1 :(得分:0)
根据您的问题/代码块,在函数BtnOk()
之前检查 WebElement 是否可点击并在其上调用Click()
您必须使WebDriverWait ExpectedConditions ElementToBeClickable作为{{3}},如下所示:
wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
element = wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath("// button")));
element.Click();