我正在尝试循环列表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();
答案 0 :(得分:3)
我的猜测是你有类似的东西:
Enumeration e = vector.elements();
在之外的for循环。你需要在while
循环之前将放在 for循环中。否则你会一直在迭代它,但永远不会回到开始。
(我还建议您尽可能使用Iterable
/ Iterator
接口和通用集合。)
答案 1 :(得分:1)
根据您显示的代码,枚举e
中包含一个元素。您尚未显示创建e
的位置,因此没有人能够告诉您更多其他内容。