Selenium和Thread.Sleep中Wait方法的区别

时间:2014-11-08 22:32:21

标签: java selenium-webdriver

请帮助我理解以下三种等待方法与程序中有效使用之间的区别,

  1. 的Thread.sleep(5000);

  2. driver.manage()。timeouts()。隐式等待(5,TimeUnit.SECONDS);

  3. ExplicitWait();


  4. 由于

1 个答案:

答案 0 :(得分:1)

阻塞线程实际上是java用来控制多线程应用程序的块。

显式等待是您定义的代码,用于在进一步执行代码之前等待某个条件发生。最糟糕的情况是Thread.sleep(),它将条件设置为等待的确切时间段。提供了一些便捷方法,可帮助您编写仅在需要时等待的代码。 WebDriverWait与ExpectedCondition相结合是一种可以实现的方法。

隐式等待是告诉WebDriver在尝试查找一个或多个元素(如果它们不是立即可用)时轮询DOM一段时间。默认设置为0.设置后,将为WebDriver对象实例的生命周期设置隐式等待。

您不应该使用Java的thread.sleep作为selenium的替代品,因为您可能会根据您在应用程序中执行的操作创建多线程错误。 (例如死锁,或竞争条件)