调试时 WebDriverWait 的行为有所不同

Bil*_*ega 6 selenium-webdriver

开始使用 Selenium WebDriver。当我运行测试时,WebDriverWait 工作正常,但我得到:

OpenQA.Selenium.NoSuchElementException {“没有这样的元素:无法定位元素:{\“方法\”:\“id \”,\“选择器\”:\“exampleInputEmail1 \”}\n(会话信息:chrome=54.0 .2840.71)\n (驱动程序信息: chromedriver=2.25.426923 (0390b88869384d6eb0d5d09729679f934aab9eed), platform=Windows NT 10.0.14393 x86_64)"}

当我调试测试时。

这是失败的代码:

Driver.Navigate().GoToUrl($"{BaseUrl}user/login");
var wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(3));
wait.Until(d => d.FindElement(By.Id("exampleInputEmail1")));
Run Code Online (Sandbox Code Playgroud)

最后一行抛出。如果我添加 30 毫秒睡眠,如下所示:

Driver.Navigate().GoToUrl($"{BaseUrl}user/login");
Thread.Sleep(30);
var wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(3));
wait.Until(d => d.FindElement(By.Id("exampleInputEmail1")));
Run Code Online (Sandbox Code Playgroud)

它也适用于调试器。为什么它们会有所不同?我尝试搜索,但没有找到与 run v debug 结果相关的任何内容。感谢您的指点。

相关详情:

  • 视觉工作室 2015
  • 使用Resharper 9.2在NUnit下运行测试
  • 引用 WebDriver 和 WebDriver.Support 3.0.0