我正在研究Java Selenium项目,并使用isDisplayed()
方法来验证页面上显示或未显示某些元素,并且每种方法的执行大约需要45秒,是否有任何建议说明为什么可能要花这么长时间,是否可以在框架级别指定一些等待时间?
注意:框架不是我创建的,我只是在更新它。\
@FindBy(xpath = "//input[@id='productLIGrpTermDeal_chkPartySlf']//following-sibling::div")
List<WebElement> GroupTermDealerLifeInsuranceSelf1;
public boolean verify_Icon_Is_Not_Displayed_() throws Exception {
try {
log.debug("Validate Icon is not Displayed");
Assert.assertEquals(0, GroupTermDealerLifeInsuranceSelf1.size());
System.out.println("Icon is not Displayed");
log.info("Icon is validated successfully || Pass");
return true;
} catch (Exception e) {
System.err.println("Icon is Displayed");
log.error("Not able to Validate Icon is Displayed || Fail" + e.getMessage());
return false;
}
}
答案 0 :(得分:0)
除了需要使用driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.id(>someid>)));
进行隐式等待(每次等待查找元素)
答案 1 :(得分:0)
您可以修改XPath查询以将List的大小限制为1(或测试中使用的最大值)。可以通过在定位器的末尾添加position() function来实现,例如:
@FindBy(xpath = "//input[@id='productLIGrpTermDeal_chkPartySlf']//following-sibling::div/*[position()<=1]")
应用此更改后,找到WebElements的时间将与DOM中的匹配项成比例地减少。