我知道你可以在Selenium中使用的三种不同类型的等待。我知道为什么Thread.Sleep和ImplicitWait永远不是一个好选择。所以我总是使用ExplicitWaits,例如等到按钮可点击。但是,由于Explictwait似乎失败,因此有时会在一百个测试集合中进行一到两次测试失败。
我读了一篇非常有趣的文章:https://bocoup.com/weblog/a-day-at-the-races 关于测试可能不时失败的原因和显式等待作为此间歇性故障的解决方案。这使我更加确信使用ExplictWaits。
所以我想知道有没有人知道情况是Explicitwait没有做正确的工作。
这是我的C#代码,用于等待Webelement可点击:
public static Boolean waitElementToBeClickable(IWebDriver driver, int seconds, IWebElement webelement)
{
Boolean clickable = true;
try
{
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(seconds));
wait.Until(ExpectedConditions.ElementToBeClickable(webelement));
}
catch
{
clickable = false;
}
return clickable;
}