我进行了多次测试并使用硒来运行它们。在搜索隐式等待的内容和位置时,我看起来是混合的评论。它应该仅在初始化测试时使用,还是应该在任何时候使用它来隐式等待元素被找到?
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);
答案 0 :(得分:2)
隐式等待应该只在初始化driver
时使用(如果有的话)。调试时显式等待更容易跟踪,并且设计得更精细,例如在Page Object内。
在driver
上设置隐式等待时间会对您的等待时间产生全局影响,同时保持设置对消费者或未来维护者隐藏起来。这可能会有问题,尤其是在通过WebDriverWait
与明确的等待时间配对时。您最终可能会在等待时间中意外添加。
以下是明确等待的示例:
var webDriverWait = new WebDriverWait(driver, TimeSpan.FromSeconds(5));
webDriverWait.Until(ExpectedConditions.ElementExists(By.Id("testId"));
可以找到两者之间利弊的更彻底的比较以及何时使用它们here。