driver.manage.wait(long timeout)
driver.manage.wait(long timeout)
实际上是java.lang.Object.wait() https://www.tutorialspoint.com/java/lang/object_wait_timeout.htm方法是来自java.lang.Object Class https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html这会导致当前线程等待,直到另一个线程调用notify()
方法或notifyAll()
该对象的方法或已经过了指定的时间。当前线程必须拥有该对象的监视器。该线程释放此监视器的所有权并等待,直到另一个线程通过调用notify 方法或notifyAll 方法通知在此对象的监视器上等待的线程被唤醒。然后,线程等待,直到它可以重新获得监视器的所有权并恢复执行。
宣言
的声明java.lang.Object.wait()
方法如下:
public final void wait() throws InterruptedException
{
//code logic
}
参数
timeout - the maximum time to wait in milliseconds.
返回值
This method does not return a value.
Usage
在单参数版本中,可能会出现中断和虚假唤醒,因此应始终在循环中使用此方法,如下所示:
synchronized (obj) {
while (<condition does not hold>)
obj.wait();
... // Perform action appropriate to condition
}
此方法只能由该对象监视器的所有者的线程调用。
例外
Throws :
-
InterruptedException
:如果另一个线程中断了当前线程。当抛出该异常时,当前线程的中断状态被清除。
-
IllegalArgumentException
:如果超时值为负数。
-
IllegalMonitorStateException
:如果当前线程不是对象监视器的所有者。
Explicit Wait
Explicit Wait
是您为 WebDriver 实例定义、配置和实现的代码块,用于等待满足特定条件,然后再继续执行下一行代码。有一些方法可以帮助我们实现 ExplicitWait,它只等待需要的时间。 WebDriverWait 与 ExpectedCondition 的结合是实现 ExplicitWait 的方式之一。
您可以找到有关的详细讨论Explicit Wait
以及它在质量检查中的实施
回答这个问题
obj.wait()
与 没有关系WebDriverWait
. obj.wait()
处理线程级别的内部逻辑,其中WebDriverWait
交易范围内HTML DOM
.