首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >WebDriver -使用Java等待元素

WebDriver -使用Java等待元素
EN

Stack Overflow用户
提问于 2012-07-31 16:28:11
回答 3查看 238.7K关注 0票数 83

我正在寻找类似于waitForElementPresent的东西,用于在单击元素之前检查元素是否显示。我认为这可以通过implicitWait来完成,所以我使用了以下代码:

driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);

然后单击“方式”

driver.findElement(By.id(prop.getProperty(vName))).click();

不幸的是,它有时等待元素,有时不等待。我找了一段时间,找到了这个解决方案:

for (int second = 0;; second++) {
    Thread.sleep(sleepTime);
    if (second >= 10)
        fail("timeout : " + vName);
    try {
        if (driver.findElement(By.id(prop.getProperty(vName))).isDisplayed())
            break;
    } catch (Exception e) {
        writeToExcel("data.xls", e.toString(), parameters.currentTestRow, 46);
    }
}
driver.findElement(By.id(prop.getProperty(vName))).click();

它很好地等待了,但在超时之前,它必须等待10次5,50秒。有点过头了。因此,我将隐式等待时间设置为1秒,直到现在看起来一切正常。因为现在有些东西在超时前等待10秒,但另一些东西在1秒之后就超时了。

你如何在你的代码中覆盖等待元素存在/可见?任何提示都是可以理解的。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11736027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档