【发布时间】:2018-01-24 12:43:26
【问题描述】:
如何用显式等待替换这种隐式等待?
driver = new ChromeDriver(capabilities);
driver.manage().deleteAllCookies();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
这在 Before 方法中使用。我能够替换代码中的所有 Thread.sleep(),但我不确定该怎么做。
【问题讨论】:
-
这样做的原因是什么?在大多数情况下,隐式等待比显式等待要好。
-
我明白,作为最佳实践,建议不要混合使用隐式等待和显式等待。我还选择使用显式等待,因为它可以节省 Maven 运行测试的时间
-
@AbhishekSingh 使用隐式等待不是一个好的做法(应该避免),而使用显式等待是一个最佳做法。
-
@JeffC 我真的很奇怪有些人说我们应该使用 explict others 隐式,你们在哪里找到你的参考资料?
-
@eusoubrasileiro 其中一些来自阅读大量文章等,但我不记得有什么是我脑海中浮现的。我确实记得几年前在 seleniumconf 上看到 Simon Stewart 在他的主题演讲中说不要使用它。 Simon Stewart 是 Selenium 项目的负责人。您可以在youtu.be/gyfUpOysIF8?t=2200 找到他的主题演讲。那是排队到他在隐式等待而不使用它的地方。那年我在 seleniumconf 上看到了其他一些贡献者对它的评论,但我不记得是哪些视频。
标签: java selenium selenium-webdriver webdriverwait implicitwait