【问题标题】:How to check all elements in a <ul> list using Selenium WebDriver?如何使用 Selenium WebDriver 检查 <ul> 列表中的所有元素?
【发布时间】:2013-04-22 18:40:11
【问题描述】:

是否可以循环遍历&lt;ul&gt; &lt;/ul&gt; 的所有li 元素。假设我有一个未知数量的li 元素,因此循环它们的一种方法是强加一个for 循环,最大可能数量为lis,比如100,然后强加try and catch

try{
for (int i=0; i<100; i++) {
 driver.findElement(By.xpath("//div[@id='...']/ul/li[i]"));
}
}
catch {...}

但是,它不能识别i 索引?如何让它识别它?

有没有更好的办法?

【问题讨论】:

    标签: java list selenium webdriver


    【解决方案1】:

    Webdriver 有findElements API,可用于此目的..

    List<WebElement> allElements = driver.findElements(By.xpath("//div[@id='...']/ul/li")); 
    
    for (WebElement element: allElements) {
          System.out.println(element.getText());
    }
    

    【讨论】:

      【解决方案2】:
      List<WebElement> allElements = driver.findElements(By.xpath("//div[@id='...']/ul/li"));
      int s=allElements.size();
      for(int i=1;i<=s;i++){
          allElements = driver.findElements(By.xpath("//div[@id='...']/ul/li"));
          allElements.get(i).click();
      }
      

      使用这个

      【讨论】:

      • 添加一些解释,说明此答案如何帮助 OP 解决当前问题
      【解决方案3】:

      你的目的是在一个 ul 中获取所有的 li。所以它需要先定位ul,然后再定位ul中的所有li。您可以使用以下 Selenium Java 代码:

      WebElement ul_element = driver.findElement(By.xpath("//ul[@class='list-unstyled']"));
              List<WebElement> li_All = ul_element.findElements(By.tagName("li"));
              System.out.println(li_All.size());
              for(int i = 0; i < li_All.size(); i++){
                  System.out.println(li_All.get(i).getText());
              }
              //OR
              for(WebElement element : li_All){
                  System.out.println(element.getText());
              }
      

      【讨论】:

        【解决方案4】:

        如果您将索引i 像这样从字符串中取出,您的初始代码可能会起作用:

        try {
            for (int i=0; i<100; i++) {
                driver.findElement(By.xpath("//div[@id='...']/ul/li["+i+"]"));
            }
        }
        catch {...}
        

        【讨论】:

        • 你已经把i的值限制为i
        猜你喜欢
        • 2015-12-06
        • 2018-01-21
        • 1970-01-01
        • 1970-01-01
        • 2013-05-22
        • 1970-01-01
        • 2017-12-02
        • 2016-01-07
        • 1970-01-01
        相关资源
        最近更新 更多