月份和年份之间的迭代。 Selenium + Java

时间:2017-04-05 13:20:18

标签: java loops selenium selenium-webdriver

我有几个月和几年的选择,我需要逐个查看2016年的每个月,然后点击"查询"按钮等待加载页面上的数据并获取一些数据,然后继续下一个月并继续重复该过程,直到2016年底。

我考虑过使用listarraylist来做这件事,但我会遇到性能问题。

在这种情况下,您建议使用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");

daTE

1 个答案:

答案 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