[英]some of the value of weblements in list of webelement are coming blank How to wait for each value of webelement to appear in webelements in selenium
ArrayList<String> corousalItems= new ArrayList<>();
List<WebElement> listText= driver.findElements(By.cssSelector("CorousalList"));
for (WebElement list : listText) {
String text=list.getText();
corousalItems.add(text);
}
System.out.println("List :"+corousalItems);
由于这些 webelement 的值需要时间来加载,因此上述列表中的某些元素将变为空白。需要一种方法让驱动程序可以等待可以添加到列表中的值出现。
在 corousal 上只显示了 3 个图像。 单击下一个底部时,corousal 水平滚动到 1 个图像。 但是在使用 CorousalList 选择器时,无需单击下一步按钮即可定位出现在 corousal 上的文本。 唯一的问题是某些值未加载,因此空白值存储在列表中。
你很接近。 要找到所需的元素,您必须为visibilityOfAllElementsLocatedBy()
引入WebDriverWait ,您可以使用以下解决方案:
ArrayList<String> corousalItems= new ArrayList<>();
List<WebElement> listText= new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.cssSelector("CorousalList")));
for (WebElement list : listText) {
String text=list.getText();
corousalItems.add(text);
}
System.out.println("List :"+corousalItems);
你可以尝试这样的事情:在此处输入代码
ArrayList<String> corousalItems= new ArrayList<>();
List<WebElement> listText= driver.findElements(By.cssSelector("CorousalList"));
for (WebElement list : listText) {
wait.until((ExpectedCondition<Boolean>)driver->{
String text=list.getText();
return text.equals("")? false:true;
});
corousalItems.add(text);
}
System.out.println("List :"+corousalItems);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.