如何将硒与UL中的LI分开

问题描述 投票:0回答:1

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

列表的大小为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

我对其他HTML表格和列表结构使用了类似的方法,所以我不确定哪里出了问题。

java html list selenium html-lists
1个回答
0
投票

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


// 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"));
...
© www.soinside.com 2019 - 2024. All rights reserved.