while循环只运行一次

时间:2011-08-23 14:28:10

标签: java while-loop

我正在尝试循环列表A并将列表A中的每个元素与列表B进行比较以寻找匹配我无法弄清楚为什么这个while循环只执行一次?

for (WebElement webElement : inputs) 
{
    if (webElement.getAttribute("type").equalsIgnoreCase("text")) 
    {       
        String element = webElement.getAttribute("id").toString();
        System.out.println("Element: " + element);

        while(e.hasMoreElements())
        {   
            String param = (String) e.nextElement();
            System.out.println("Parameter: " + param);     

            System.out.println(element.matches(param));
            if(element.matches(param))
            {
                webElement.sendKeys(vars.get(param));
                //inputs.remove(element);
            }
        }
    }           
}       

很抱歉这里是代码的其余部分,在上面的代码之前被引用

        Hashtable vars = new Hashtable();

vars.put("USERNAME","slider"); vars.put("POSTCODE","LU1 3LU"); vars.put("EMAIL","david.cunningham@lumesse.com"); vars.put("DOB","02 Mar 1983"); Enumeration<String> e = vars.keys();

2 个答案:

答案 0 :(得分:3)

我的猜测是你有类似的东西:

Enumeration e = vector.elements();

之外的for循环。你需要在while循环之前将放在 for循环中。否则你会一直在迭代它,但永远不会回到开始。

(我还建议您尽可能使用Iterable / Iterator接口和通用集合。)

答案 1 :(得分:1)

根据您显示的代码,枚举e中包含一个元素。您尚未显示创建e的位置,因此没有人能够告诉您更多其他内容。