【问题标题】:JAVA Selenium - getting hrefs from html in a loopJAVA Selenium - 循环从html获取href
【发布时间】:2015-06-15 20:38:21
【问题描述】:

我正在尝试获取页面上几个类似元素的 href,然后在这些 href 中找到最后创建的(最大)id。我有一个循环,但它只找到第一个元素而不搜索其余元素。你知道里面写错了什么吗?

ArrayList<Integer> tablicas = new ArrayList<Integer>();
    int i;
    for(i = 0; i < 90; i++) {
        String s = driver.findElement(By.cssSelector("a.linkOffer")).getAttribute("href");
        String p = s.substring(19, s.length());             
        int numer = Integer.parseInt(p);    
        System.out.print(p);

        for(int indeks : tablicas) {
            if(indeks == numer) {
                continue;
            } else {
                tablicas.add(numer);
        }
        }
        } System.out.print(tablicas);

【问题讨论】:

    标签: java html selenium for-loop href


    【解决方案1】:

    您的代码 sn-p 中有多个错误。

    driver.FindElement() 将返回一个 WebElement。 - 由于您的 css 选择器对于循环的每次迭代都是相同的,因此它将始终返回相同的 WebElement。

    把你的循环改成这样:

    for(WebElement el : driver.findElements(By.cssSelector("a.linkOffer"))) {
        String target =  el.getAttribute("href");        
        ..
    }
    

    【讨论】:

    • 是的,这对我有用!谢谢你,祝你有美好的一天:)
    【解决方案2】:

    如果您想查找包含文本“Nowa oferta dokument”的所有元素,请使用driver.findElements(它将返回与您的搜索条件匹配的元素列表)而不是findElement 并循环遍历所有元素。

    ArrayList<Integer> tablicas = new ArrayList<Integer>();
    
    java.util.List<WebElement> elements = driver.findElements(By.xpath("//*[text()='Nowa oferta dokument']"));
    
    for(WebElement element : elements)
    {
     element.getAttribute("href");
     String p = s.substring(19, s.length());             
     int numer = Integer.parseInt(p);    
     System.out.print(p);
    
     for(int indeks : tablicas) {
      if(indeks == numer) {
        continue;
       } 
      else {
        tablicas.add(numer);
       }
     }
    }
    System.out.print(tablicas);
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2018-05-12
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 2022-06-22
      • 1970-01-01
      • 2016-01-27
      • 1970-01-01
      • 2022-11-29
      相关资源
      最近更新 更多