цикл пока выполняется только один раз - PullRequest
0 голосов
/ 23 августа 2011

Я пытаюсь зациклить список 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();</p>

<code>        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();
</code>

Ответы [ 2 ]

3 голосов
/ 23 августа 2011

Я предполагаю, что у вас есть что-то вроде:

Enumeration e = vector.elements();

снаружи цикл for. Вам нужно поместить его внутрь цикла for, перед циклом while. В противном случае вы выполняете все итерации, но не возвращаетесь к началу.

(Я бы также посоветовал вам использовать интерфейсы Iterable / Iterator, если это возможно, и универсальные коллекции.)

1 голос
/ 23 августа 2011

На основе кода, который вы показали, перечисление e содержит один элемент.Вы не указали, где создается e, поэтому никто больше не сможет вам рассказать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...