Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不同硒含量的差异_Java_Selenium_Wait - Fatal编程技术网

Java 不同硒含量的差异

Java 不同硒含量的差异,java,selenium,wait,Java,Selenium,Wait,隐式等待、显式等待、Fluentwait和Thread.sleep()之间的区别是什么?我总是对这些等待感到困惑,如果有人能解释,我会非常感激 提前感谢。隐含等待 隐式等待将告诉web驱动程序在抛出“无此类元素异常”之前等待一定时间。默认设置为0。一旦我们设置了时间,web驱动程序将在抛出异常之前等待该时间。它可以全局声明,这样声明下的任何代码在抛出异常之前都会等待特定的时间量。 例如: 显式等待 显式等待用于告诉Web驱动程序在引发“ElementNotVisibleException”异常之

隐式等待、显式等待、Fluentwait和Thread.sleep()之间的区别是什么?我总是对这些等待感到困惑,如果有人能解释,我会非常感激


提前感谢。

隐含等待

隐式等待将告诉web驱动程序在抛出“无此类元素异常”之前等待一定时间。默认设置为0。一旦我们设置了时间,web驱动程序将在抛出异常之前等待该时间。它可以全局声明,这样声明下的任何代码在抛出异常之前都会等待特定的时间量。 例如:

显式等待

显式等待用于告诉Web驱动程序在引发“ElementNotVisibleException”异常之前等待某些条件(预期条件)或超过最长时间。声明显式等待后,我们必须使用“ExpectedConditions”,或者我们可以配置使用Fluent wait检查条件的频率。除此之外,已经存在许多预期条件,我们还可以创建自定义预期条件

Thread.sleep()

现在在实现时,我们使用的是Thread.Sleep(),通常不建议使用。这些是java wait,它会告诉线程等待特定的时间(执行将停止,直到等待时间完成)


希望它能消除您的疑虑,有关更多详细信息,请参阅隐式等待-

它通过轮询DOM指示web驱动程序等待一段时间。声明隐式等待后,它将在web驱动程序实例的整个生命周期中可用。默认情况下,该值将为0

driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
显式等待- 这是定制的。如果我们希望执行等待一段时间直到达到某个条件,则将使用它。 默认情况下,该值将为500毫秒

WebDriverWait wait = new WebDriverWait(WebDriverRefrence,20);
WebElement aboutMe;
aboutMe= wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("about_me")));
流畅的等待- fluent wait用于告诉web驱动程序等待条件,以及在抛出“ElementNotVisibleException”异常之前检查条件的频率

Wait wait = new FluentWait(WebDriver reference)
.withTimeout(Duration.ofSeconds(SECONDS))
.pollingEvery(Duration.ofSeconds(SECONDS))
.ignoring(Exception.class);
Thread.sleep()- 是Thread类的静态方法,因此我们可以使用类名Thread来使用它。线睡眠导致当前线程在指定的时间段内暂停执行。sleep()方法接受以毫秒为单位的持续时间

Wait wait = new FluentWait(WebDriver reference)
.withTimeout(Duration.ofSeconds(SECONDS))
.pollingEvery(Duration.ofSeconds(SECONDS))
.ignoring(Exception.class);