如何将硒与UL中的LI分开

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将硒与UL中的LI分开相关的知识,希望对你有一定的参考价值。

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

列表的大小为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表格和列表结构使用了类似的方法,所以我不确定哪里出了问题。

答案

根据选择器,您似乎正在选择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"));
...

以上是关于如何将硒与UL中的LI分开的主要内容,如果未能解决你的问题,请参考以下文章

css怎样设置ul的li 居中均匀排列

求ul中的li布局CSS布局,横向垂直都要居中,如何实现?

关于CSS中的ul与li的问题 具体代码如下 怎么解决子级li挤父级li

事件中的this

Emmet (前身为 Zen Coding)

如何只悬停嵌套ul中的当前li?