我是使用硒Webdriver
并编写c#
的新手。我在脚本中使用了很多thread.sleep()
命令来确保Selenium不会尝试点击太快。在大量的研究,我发现这是令人难以接受的,并有“更好”的方式来做到这一点,所以我开始使用: -Selenium c#wait.until(expectedconditions)...函数无法在屏幕上找到对象/元素
wait.Until(ExpectedConditions.ElementToBeClickable(By.Id("FieldId")));
等待在另一个类中定义为: -
wait = new WebDriverWait(driver, new TimeSpan(0, 0, 0, 10));
我只能得到这个工作运行脚本的2/10倍没有得到:
没有这样的元素例外:无法找到元素......
我现在有很多这个问题的例子,我已经停止使用thread.sleep
。经过大量的研究,我总是发现这是建议的方式,但它似乎完全不可靠。我错过了什么吗?元素在2秒后总是在那里,并且在10秒过去之前发生错误。我已经阅读了至少10个其他类似的帖子,但没有一个能够解决这个问题......除了Thread.Sleep(5000)
!
如果你正在使用'WebDriverWait',你怎么能''没有这样的元素异常',而它抛出'TimeoutException''? –
@SaurabhGaur'Until()'如果它们不在忽略列表中,则抛出异常 –
您还在使用隐式等待吗?如果您同时使用隐式和显式等待,您可能会收到意想不到的结果。 – JeffC