我选择了几个月和几年,我需要逐一搜索2016年的每个月,然后单击“查询”按钮,等待在页面上加载数据并提取一些数据,然后继续进行下个月并重复持续进行,直到2016年底。
我考虑过使用list
和arraylist
进行此操作,但是会遇到性能问题。
在这种情况下,您的建议是Iterator <WebElement>
?
如何一一选择2016年的月份和年份?
List<WebElement> meses = driver.findElements(By.id("sel_Mes"));
Iterator<WebElement> itr = meses.iterator();
while(itr.hasNext()) {
System.out.println(itr.next().getAttribute("value"));
}
要么
List<String> mes = new ArrayList<String>();
mes.add("Janeiro");
mes.add("Fevereiro");
mes.add("Março");
mes.add("Abril");
mes.add("Maio");
mes.add("Junho");
mes.add("Julho");
mes.add("Agosto");
mes.add("Setembro");
mes.add("Outubro");
mes.add("Novembro");
mes.add("Dezembro");
List<String> ano = new ArrayList<String>();
ano.add("2016");
最佳答案
尝试这样的事情:
WebElement selectElementMes = driver.findElement(By.id("sel_Mes");
Select select_mes = new Select(selectElementMes);
List<WebElement> allMes = select_mes .getOptions();
WebElement selectElementAnos = driver.findElement(By.id("sel_Ano");
Select select_anos = new Select(selectElementAnos);
List<WebElement> allAnos = select_anos .getOptions();
Iterator<WebElement> itr_meses = allMes.iterator();
Iterator<WebElement> itr_ano = allAnos.iterator();
while(itr_ano.hasNext()) {
while(itr_meses.hasNext()) {
System.out.println(itr_ano.next().getAttribute("value") + " -> " + itr_meses.next().getAttribute("value"));
}
}
这应该打印类似:
2016年-> Janeiro
2016年-> Fevereiro
等等