Java 使WebDriver在没有预期条件的情况下等待

Java 使WebDriver在没有预期条件的情况下等待,java,selenium,firefox,selenium-webdriver,Java,Selenium,Firefox,Selenium Webdriver,Java/SeleniumWebDriver/Firefox 页面上有一个文本“输入”字段。然后在它下面有一个“提交”按钮。 加载页面时,输入字段和提交按钮都已启用。 在输入字段中输入文本后,是否有方法让WebDriver在单击提交按钮之前等待“x”秒,而不是立即单击它 我看到的选项是Thread.sleep(x),我知道这不是一种有效的方法。 另一个选项是在没有预期条件的情况下使用新的WebDriverWait(驱动程序,'x')(因为这里没有预期条件,因为提交按钮已经可见并可单击)。在本文中

Java/SeleniumWebDriver/Firefox

页面上有一个文本“输入”字段。然后在它下面有一个“提交”按钮。 加载页面时,输入字段和提交按钮都已启用。 在输入字段中输入文本后,是否有方法让WebDriver在单击提交按钮之前等待“x”秒,而不是立即单击它

我看到的选项是Thread.sleep(x),我知道这不是一种有效的方法。 另一个选项是在没有预期条件的情况下使用新的WebDriverWait(驱动程序,'x')(因为这里没有预期条件,因为提交按钮已经可见并可单击)。在本文中,这与使用Thread.sleep(x)相同吗? 还有其他选择吗

硒被设计为等待特定条件<代码>隐式等待正在等待元素存在于
驱动程序的DOM中。findElement()
显式等待
正在等待
预期条件

但是,一旦满足条件,代码将继续,或者,如果条件失败,将引发异常

通过使用一些操作,可以使代码在没有线程的情况下“休眠”

WebDriverWait tempWait = new WebDriverWait(driver, 10); // define local/temp wait only for the "sleep"
try {
    tempWait.until(ExpectedCondition); // condition you are certain won't be true
}
catch (TimeoutException) {
    continue; // catch the exception and continue the code
}
// continue the code
这将导致代码模拟“睡眠”10秒钟(代码不会继续,但
tempWait.Toll
将反复检查是否满足
ExpectedCondition

这是一项肮脏的工作,甚至比
Thread.sleep()
效率更低。如果目的是等待一段时间,而不管web状况如何,我建议您使用
Thread.sleep()