最佳答案
我正在寻找类似于 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秒之后超时。
如何处理代码中出现/可见的等待元素? 任何提示都是可以理解的。