Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用webdriver获取父元素的所有子元素名称_Java_Selenium - Fatal编程技术网

Java 如何使用webdriver获取父元素的所有子元素名称

Java 如何使用webdriver获取父元素的所有子元素名称,java,selenium,Java,Selenium,我将webdriver与java结合使用,并尝试获取网页中所有父节点的列表。 目标是: 第一个-获取元素的所有父项名称 第二-将新列表与现有列表进行比较 以检测网页中是否添加、删除或修改了新元素 因此,我的html代码是: <div class="list"> <ul> <li> <h4> Content </h4> <ul class="list

我将webdriver与java结合使用,并尝试获取网页中所有父节点的列表。 目标是: 第一个-获取元素的所有父项名称 第二-将新列表与现有列表进行比较 以检测网页中是否添加、删除或修改了新元素

因此,我的html代码是:

<div class="list"> 
 <ul>
    <li>
        <h4>
            Content
        </h4>
        <ul class="list">
            <li class="component-panel-item" data-cpn="summary"></li>
            <li class="component-panel-item" data-cpn="file"></li>
            <li class="component-panel-item" data-cpn="text"></li>
            <li class="component-panel-item" data-cpn="graph"></li>
  </li>
     <li>
      <h4>
我没有任何节点名称列表

有人能提出解决办法吗。
Thx

选择
用于下拉列表。您正在处理一个

这种方法应能更好地发挥作用:

WebElement ulList = driver.findElement(By.className("list"));

List<WebElement> values = ulList.findElements(By.tagName("li"));

int i = values.size();
System.out.print("Options = " + i);
WebElement ulList=driver.findElement(By.className(“list”);
列表值=ulList.findElements(按.tagName(“li”));
int i=values.size();
系统输出打印(“选项=”+i);

我在HTML中没有看到
标记,但我在XPath中看到了它。您希望获取哪些元素并观察更改,即
  • 元素?是的,我想要li元素列表这是核心,是的。不过,让变更检测工作变得稍微困难一些。您可以比较原始列表和新列表的
    size()
    ,以检测添加和删除,但不能同时检测一次添加和一次删除。而且你无法检测到变化。要做到这一点,您实际上需要存储来自节点的数据并进行比较。无论如何,这个答案是正确的。
    WebElement ulList = driver.findElement(By.className("list"));
    
    List<WebElement> values = ulList.findElements(By.tagName("li"));
    
    int i = values.size();
    System.out.print("Options = " + i);