仅在Visual Studio 2015的调试模式下引发WebDriverWait异常

Tar*_*ran 3 c# selenium exception visual-studio selenium-webdriver

我想知道是否还有其他人遇到过类似的问题或有使用WebDriverWait的经验?

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

我可以单击继续,也可以跳过异常。

在此处输入图片说明

小智 5

我相信这是Visual Studio调试模式的怪癖。本质上,在调试模式下,即使在try / catch中适当地处理了异常,有时也会将异常视为中断。

请记住,当您将功能传递给WebDriver中的直到()时,该功能将在一次尝试中在内部执行。VS可能会在该方法中遇到(已处理的)异常,这就是为什么您在正常运行期间看不到它的原因。

有关更多信息,请参见此处


小智 5

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

wait.Until(driver => driver.FindElement(
    By.CssSelector(".cssClass"))
);
Run Code Online (Sandbox Code Playgroud)

你可以这样做:

wait.Until(driver => driver.FindElements(
    By.CssSelector(".cssClass")).FirstOrDefault()
);
Run Code Online (Sandbox Code Playgroud)

它适用于发布和调试环境。