如何停止硒中Web元素列表上运行的每个循环

问题描述

我创建了一个在Web元素列表上运行的方法,并返回列表中期望值的索引。 该方法使用预期值评估get属性值。 它运行正常,但是一直运行到列表末尾。唯一的选择就是打破循环,进入打破;在index =迭代器之后

  public Integer indexInList(String expectedValue,List<WebElement> dropdownoptions,String attributeValue) throws Exception {
        Integer index = -1;  // -1 meanning not found in list
        int iterator = 0;    // run on the list

        for (WebElement element : dropdownoptions )

        {
            if(element.getAttribute(attributeValue).equals(expectedValue))
            {
                index = iterator;


            }
            iterator ++;
        }
        return index;
    }

解决方法

是的,您需要在index = iterator行之后输入break

,

for循环找到所需元素时返回迭代器:

  public Integer indexInList(String expectedValue,List<WebElement> dropdownOptions,String attributeValue) throws Exception {
        int iterator = 0;    // run on the list

        for (WebElement element : dropdownOptions )
        {
            if(element.getAttribute(attributeValue).equals(expectedValue))
            {
                return iterator;
            }
            iterator ++;
        }

        return -1; // -1 meanning not found in list
    }

以上是对代码的略微修改。您不需要index变量,可以在iterator上进行操作。

找到所需元素后返回iterator,它将停止for循环。 如果没有一个元素满足条件,则返回-1

,

否。

除了“在索引=迭代器之后输入break;外,您还可以使用return index;在同一位置替换语句break;