首页 > 解决方案 > 在 Selenium webdriver 中用 java lambda 替换嵌套循环

问题描述

我有以下片段:

@FindBy(xpath = "//*[contains(@id,'Heading')]")
List<WebElement> accordianContainer;
    
public void repeatClickEleInArray(List<WebElement> array, int numRepeat) {
        for (int i = 0; i < array.size(); i++) {
          for (int j = 0; j < numRepeat; j++) {
            wait = new WebDriverWait(driver, Duration.ofMillis(1000));
            wait.until(ExpectedConditions.elementToBeClickable(accordianContainer.get(i))).click();
          }
        }

我用 lambda 替换它,但由于“get(i)”提供的类型错误而出错

    array.forEach(i -> {
      numRepeat(j -> {
        wait = new WebDriverWait(driver, Duration.ofMillis(1000));
        wait.until(ExpectedConditions.elementToBeClickable(accordianContainer.get(i))).click();
      });
    });
}

我该如何解决?

标签: javaselenium-webdriver

解决方案


推荐阅读