【问题标题】:How to get the LIs seperate from the UL in Selenium如何在 Selenium 中将 LI 与 UL 分开
【发布时间】:2019-12-03 22:24:57
【问题描述】:

我正在尝试过滤列表并单击正确的文本。

列表大小为 2,如下所示:

<ul>
  <li><span>first</span></li>
  <li><span>second</span></li>
</ul>

由于某种原因,我的代码将返回整个 UL 而不是单个条目,并且不会遍历内部元素。

public void clickRightThing(String name) {      
    List<WebElement> list = driver.findElements(By.className("ul-classname"));

    String returnedName;

    for (WebElement row : list) {
        returnedName = row.getText();   
        System.out.println(returnedName);
        System.out.println(returnedName.length());

        if (returnedName.equals(name)) {
            row.click();
            return;
        }
    }
}

运行 clickRightThing("first)" 将仅在一次循环中打印出行的名称,大小为 11,即第一个 + 第二个的长度,最后是列表 1 的大小。它永远不会进入 if 语句因为返回的字符串是两行而不是第一行。

first 
second 
11 
1

【问题讨论】:

    标签: java html list selenium html-lists


    【解决方案1】:

    根据您的选择器,您似乎选择了ul 元素:ul-classname。这是一个很好的第一步,接下来就是选择ul的所有子li元素:

    
    // Select the parent UL
    WebElement parentUL = driver.findElement(By.className("ul-classname"));
    
    // Get all WebElements of type "li" that are children of parentUL
    List<WebElement> childLIs = parentUL.findElement(By.tagName("li"));
    ...
    

    【讨论】:

      猜你喜欢
      • 2016-08-31
      • 1970-01-01
      • 1970-01-01
      • 2013-07-27
      • 1970-01-01
      • 1970-01-01
      • 2016-04-07
      • 2015-12-06
      • 1970-01-01
      相关资源
      最近更新 更多