【发布时间】:2017-11-16 23:45:01
【问题描述】:
我使用下面的代码,发现 TRY 块不适用于元素不存在的情况:
try
{
var actual = new WebDriverWait(m_WebDriver, TimeSpan
.FromSeconds(5))
.Until(ExpectedConditions
.ElementIsVisible(By.XPath(XpathUnderTest)))
.Displayed;
return actual;
}
catch (Exception ex)
{
return false;
}
我有一个用例,其中 Webelement 的存在取决于其他条件,因此它在网页上始终不存在或不可见。如果元素存在,则它正在工作,如果元素不存在,则 Try catch 无法使用您上面的代码处理场景。
我也试过:bool isPresent = Driver.Findelements.(xpath).Count() > 0; // 列表 但如果元素不存在,它就不能正常工作
【问题讨论】:
-
你的意思是“无法处理这种情况”?你有错误吗?
-
是的,我收到失败消息:openqa.selenium.webdriverexception 对远程 WebDriver 的 HTTP 请求在 60 秒后超时。不知何故,我得到了 syas 代码能够进入 Catch 块的跟踪日志,但是我又不确定它为什么卡在那里。为什么司机无法继续前进?
-
请分享您调用此函数的代码。既然您说 catch 块已被处理,那么问题可能是在它返回 false 之后发生的。被骗回来了怎么办?
标签: c# selenium selenium-webdriver try-catch webdriverwait