【问题标题】:Iteration between month and year. Selenium + Java月与年之间的迭代。硒 + Java
【发布时间】:2017-04-05 13:20:17
【问题描述】:

我有这个带有月份和年份的选择,我需要逐个搜索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");

【问题讨论】:

  • 嗯,它有效吗?第一个解决方案看起来不错(通用且简洁)。试试吧!
  • @Tim 是的,但由于我是编程学徒,我无法开发逻辑部分以使其有效地密封 2016 年 1 月和 2016 年的月份,我该怎么做,之后怎么做我会继续选择其他月份直到 12 月到达吗?
  • 哦,我明白了。您将需要一个嵌套循环:循环中的循环。外循环可以循环多年,内循环可以循环数月。因此,如果您的第一个示例有效,那么多年来也一样,并为选择获取一个迭代器。
  • @Tim 您介意发布一个示例来说明此代码的外观吗?
  • 我已经发布了一个答案(未经测试!)。希望这会有所帮助

标签: java loops selenium selenium-webdriver


【解决方案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 -> 热内卢

2016 -> 狂热

等等

【讨论】:

  • 太好了,在这种情况下他只打印默认情况下已经选择的备忘录,04/2017(月份和当年),我如何按顺序每个月打印它们?
  • 这里看第三个答案:stackoverflow.com/questions/16768318/…
猜你喜欢
  • 2021-10-20
  • 2014-07-22
  • 2015-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-08
  • 2019-05-15
  • 1970-01-01
相关资源
最近更新 更多