隐含等待Selenium

时间:2017-07-06 15:22:09

标签: c# selenium-webdriver

我进行了多次测试并使用硒来运行它们。在搜索隐式等待的内容和位置时,我看起来是混合的评论。它应该仅在初始化测试时使用,还是应该在任何时候使用它来隐式等待元素被找到?

driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);

1 个答案:

答案 0 :(得分:2)

隐式等待应该只在初始化driver时使用(如果有的话)。调试时显式等待更容易跟踪,并且设计得更精细,例如在Page Object内。

driver上设置隐式等待时间会对您的等待时间产生全局影响,同时保持设置对消费者或未来维护者隐藏起来。这可能会有问题,尤其是在通过WebDriverWait与明确的等待时间配对时。您最终可能会在等待时间中意外添加。

以下是明确等待的示例:

var webDriverWait = new WebDriverWait(driver, TimeSpan.FromSeconds(5));

webDriverWait.Until(ExpectedConditions.ElementExists(By.Id("testId"));

可以找到两者之间利弊的更彻底的比较以及何时使用它们here