【发布时间】:2017-02-20 10:07:31
【问题描述】:
我想知道是否有其他人遇到过类似的问题或有使用 WebDriverWait 的经验?
如果他们知道为什么我得到一个 NoSuchElementException 似乎只在调试模式下抛出。在正常运行时运行测试时,我没有收到此错误。
我也可以单击继续并跳过异常。
【问题讨论】:
标签: c# visual-studio selenium exception selenium-webdriver
我想知道是否有其他人遇到过类似的问题或有使用 WebDriverWait 的经验?
如果他们知道为什么我得到一个 NoSuchElementException 似乎只在调试模式下抛出。在正常运行时运行测试时,我没有收到此错误。
我也可以单击继续并跳过异常。
【问题讨论】:
标签: c# visual-studio selenium exception selenium-webdriver
我相信这是 Visual Studio 调试模式的一个怪癖。基本上在调试模式下,即使在 try/catch 中适当地处理异常,有时也会将其视为中断。
请记住,当您在 WebDriver 中将 func 传递给 Until() 时,该 func 会在 try 内部执行。 VS 可能会在该方法中遇到(已处理的)异常,这就是为什么您在正常运行期间看不到它的原因。
请参阅here 了解更多信息。
【讨论】:
这是一种解决方法,例如,如果您要查找元素:
wait.Until(driver => driver.FindElement(
By.CssSelector(".cssClass"))
);
你可以这样做:
wait.Until(driver => driver.FindElements(
By.CssSelector(".cssClass")).FirstOrDefault()
);
它适用于发布和调试环境。
【讨论】: