WebDriverWait仅在Visual Studio 2015中的调试模式中抛出异常

时间:2017-02-20 10:07:31

标签: c# visual-studio selenium exception selenium-webdriver

我想知道是否有其他人遇到类似这样的问题或者有使用WebDriverWait的经历?

如果他们知道我为什么会得到NoSuchElementException,似乎只能在调试模式下抛出。在正常运行时运行测试时,我不会抛出此错误。

我可以点击“继续”并跳过例外。

enter image description here

2 个答案:

答案 0 :(得分:5)

我相信这是Visual Studio调试模式的一个怪癖。基本上在调试模式下,即使在try / catch中适当处理异常,异常也会被视为中断。

请记住,当您在WebDriver中将func传递给Until()时,该func将在try内部执行。 VS很可能在该方法中遇到(处理的)异常,这就是为什么在正常运行期间没有看到它的原因。

有关详细信息,请参阅here

答案 1 :(得分:1)

这是一种解决方法,例如,如果您尝试查找元素:

wait.Until(driver => driver.FindElement(
    By.CssSelector(".cssClass"))
);

您可以这样做:

wait.Until(driver => driver.FindElements(
    By.CssSelector(".cssClass")).FirstOrDefault()
);

它可以在发布和调试环境中使用。