我正在使用 Selenium WebDriver 运行测试,如果用户没有访问权限,则页面上不存在 div。我正在尝试等待,以便在显示该项目时返回 true,但如果达到超时则返回 false。
public bool SummaryDisplayed()
{
var wait = new WebDriverWait(_driver, TimeSpan.FromSeconds(5));
var myElement = wait.Until(x => x.FindElement(By.Id("summaryPage")));
return myElement.Displayed;
}
我不想使用 Thread.Sleep,因为如果元素在 2 秒后存在,我希望它继续。但如果该元素在 5 秒后不存在,它应该返回 false。我不希望它抛出异常,在某些测试用例中我希望它不存在。有没有办法可以抑制异常并在超时后返回 false? 谢谢
最佳答案
我想这对你有用。
public bool SummaryDisplayed()
{
try
{
var wait = new WebDriverWait(_driver, TimeSpan.FromSeconds(5));
var myElement = wait.Until(x => x.FindElement(By.Id("summaryPage")));
return myElement.Displayed;
}
catch
{
return false;
}
}
关于c# - WebDriverWait 如何等到项目存在或不存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19573943/