如果webelement值匹配excel值,如何打破循环

时间:2016-12-23 16:47:25

标签: java

我正在使用有19页的应用程序。在每个页面上有10个帐户和10个复选框。

我在excel表中保留了一些帐户的列表,想要逐个读取excel中的帐号,将其与网页上的帐户匹配,如果值匹配 - >设置该帐户前面的复选框并移动excel中的下一个帐户.....这样重复,直到最后一个帐户在excel列表中匹配。

如果帐户与网页上的10个帐户中的任何一个帐户不匹配,我需要点击下一个箭头(显示在网页上的帐户列表下方)并检查帐号是否与新网页上的任何帐户匹配。

代码如下

    String data=null; //to get value of account on webpage
    int count=0;
    do{
    for(count=0;count<=9;count++)
    {
        data= (String) al1.get(count);  //al1=List of accounts on webelement 
        if(stg.equals(data))        //stg=account read from execl
        {
            utl.checkbox_clicking(data);//calling method to set checkbox if                value matches
            break;
        }
    }

    utl.Weblement_Click("*name of weblement of next page arrow*");
    al1 = utl.Account_List();   //loading new account list on next page in List
    }while(stg.equals(data));

逻辑上存在一些问题。有人可以建议我应该做出哪些改变?

2 个答案:

答案 0 :(得分:1)

我看到你的问题是当你找到你需要的东西时,你只需要执行break。但是,只是走出内循环而不是外循环。

因此,无需尝试更改代码中的任何内容并重新组织某些内容,我想告诉您java中有一些未使用的内容,可能是因为代码的不可读性,称为标记块。也许它的唯一用途之一是打破外循环。我希望它能帮到你,它是解决你问题的正确方法。 请注意,大多数情况下,如果您发现自己使用它,可能需要更改循环。在你的情况下,我会选择while循环,有两个条件:一个用于每个页面中的10个帐户,另一个用于找不到更多页面。

这是一个简短的教程: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html

所以在你的代码中我只添加了第一个语句和断行。

pagesLoop:
        do {
            for (count = 0; count <= 9; count++) {
                data = (String) al1.get(count);  //al1=List of accounts on webelement
                if (stg.equals(data))        //stg=account read from execl
                {
                    utl.checkbox_clicking(data);//calling method to set checkbox if                value matches
                    break pagesLoop;
                }
            }

            utl.Weblement_Click("*name of weblement of next page arrow*");
            al1 = utl.Account_List();   //loading new account list on next page in List
        } while (stg.equals(data));

答案 1 :(得分:0)

删除不必要的循环并错过计数应该是count<9而不是count&lt; = 9

 for(int count=0;count<9;count++) {
           String data = (String) al1.get(count);  //al1=List of accounts on webelement 
            if(stg.equals(data))        //stg=account read from execl
            {
                utl.checkbox_clicking(data);//calling method to set checkbox if                value matches
                break;
            }
}

utl.Weblement_Click("*name of weblement of next page arrow*");
al1 = utl.Account_List();   //loading new account list on next page in List