【发布时间】:2015-07-09 20:57:48
【问题描述】:
正如Selenium Documentation 所述,我们绝不应该混淆显式和隐式等待时间:
警告:不要混合隐式和显式等待。这样做会导致不可预测的等待时间。例如,设置 10 秒的隐式等待和 15 秒的显式等待,可能会导致 20 秒后发生超时。
我已将隐式等待时间设置为 5000 毫秒。在一些浏览器交互结束时,我只想验证所需的链接是否可点击。
我知道这可以通过使用ExpectedConditions 来完成,但这意味着如下例所示的明确等待时间。
protected PageNewDocument isElementClickable(WebElement element)
{
(new WebDriverWait(driver, 1)).until(ExpectedConditions.elementToBeClickable(element));
return this;
}
如何在没有明确等待时间定义的情况下检查可点击的元素?
【问题讨论】:
-
使用隐式等待有什么问题?
-
@HelpingHands 你的意思是,隐式等待时间的目的是什么?某些内容会动态重新加载,因此由于延迟可能无法立即使用。通过隐式等待时间,我不必关心动态内容。
-
不,我的意思是你说你正在使用 5000 毫秒的隐式等待时间,所以这不起作用吗?
-
@HelpingHands 是的,它有效。我需要的是某事。喜欢:
boolean clickable = driver.isElementClickable(element); -
所以你只想返回YES/NO?或者您想检查元素是否可点击?等待期间?
标签: java user-interface selenium gui-testing gui-test-framework