【发布时间】:2025-12-28 00:25:14
【问题描述】:
场景:我有一个场景,比如登录到某个页面后,会间歇性地出现一个配置文件更新按钮,我需要点击它。事情就像那个按钮会出现我必须点击否则我必须离开那部分并继续。我已经编写了一个逻辑来处理这种情况,如下所示。
public boolean isElementPresent(By locatorKey) {
try {
getDriver().findElement(locatorKey);
return true;
} catch (org.openqa.selenium.NoSuchElementException e) {
return false;
}
}
如果该元素出现,它将返回 true,否则将返回 false.. 上面的代码工作正常......但问题是它需要大约一分钟才能返回 true 或 false..假设我使用过我的脚本中有五个地方所以不必要我脚本正在等待 5 分钟......我也尝试了下面的代码
getDriver().findElement(locator).isDisplayed();
但我面临同样的问题...代码工作正常,但返回命令也需要大约 1 分钟...
是否有任何有效的方法来处理这种情况而无需等待一分钟即可获得状态?
【问题讨论】:
-
你在使用隐式等待吗?换句话说,您的代码中是否有一行看起来像
driver.manage().timeouts().implicitlyWait(60000)?如果是这样,这就是您等待返回的时间如此之长的原因。 -
该代码应该不会花一分钟时间。事实上,它可能会立即执行,然后返回 false,因为该元素尚未出现。您的问题可能出在其他地方。
-
隐式等待在这里听起来是一个可行的罪魁祸首
标签: selenium selenium-webdriver