繁体   English   中英

webelement 列表中的一些 wblements 值变为空白如何等待 webelement 的每个值出现在 selenium 中的 webelements 中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM