我有几个月和几年的选择,我需要逐个查看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");
答案 0 :(得分:1)
尝试这样的事情:
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 - &gt;里约热内卢
2016 - &gt; Fevereiro
等