Java / Selenium WebDriver / Firefox
页面上有一个文本“输入”字段 . 然后在它下方有一个“提交”按钮 . 加载页面时,输入字段和“提交”按钮都已启用 . 在输入字段中输入文本后,有没有办法让WebDriver在单击“提交”按钮之前等待“x”秒,而不是立即单击它 . 我能看到的选项是Thread.sleep(x),我理解这不是一种有效的方法 . 另一个选项是使用没有预期条件的新WebDriverWait(驱动程序,'x')(因为此处没有预期条件,因为“提交”按钮已经可见且可单击) . 在这种情况下,这与使用Thread.sleep(x)相同吗?还有其他选择吗?
1 回答
Selenium waits旨在等待特定条件 .
Implicit wait
正在等待元素存在于driver.findElement()
中的DOM中,而explicit wait
正在等待ExpectedCondition
为true
.但是,只要满足条件,代码就会继续,或者如果条件失败,则会抛出异常 .
通过使用一些操作,您可以在没有线程的情况下使代码“休眠”
这将导致代码模拟"sleep"持续10秒(代码将不会继续,但
tempWait.until
将在满足ExpectedCondition
时重复检查) .这是肮脏的工作,甚至比
Thread.sleep()
效率更低 . 如果目的是等待一段时间,无论网络状况如何,我建议您使用Thread.sleep()
.