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
如何从父div获取特定子元素的内部元素-selenium javascript ... ... ... ... ... ..._Javascript_Selenium - Fatal编程技术网

如何从父div获取特定子元素的内部元素-selenium javascript ... ... ... ... ... ...

如何从父div获取特定子元素的内部元素-selenium javascript ... ... ... ... ... ...,javascript,selenium,Javascript,Selenium,我需要在第二个分区中检索按钮元素的svg元素。有人能帮我吗?您可以使用 //查找具有类a的所有div const allDivsWithClassA=document.queryselectoral(“.a”); //获取第二个元素 const secondDiv=[…allDivsWithClassA][1]; //找到它的svg包装的按钮 const svgWrappedByButton=secondDiv.querySelector(“按钮>svg”); console.log(svgw

我需要在第二个分区中检索按钮元素的svg元素。有人能帮我吗?

您可以使用

//查找具有类a的所有div
const allDivsWithClassA=document.queryselectoral(“.a”);
//获取第二个元素
const secondDiv=[…allDivsWithClassA][1];
//找到它的svg包装的按钮
const svgWrappedByButton=secondDiv.querySelector(“按钮>svg”);
console.log(svgwrappedby按钮)

首先,您必须为第二个div提供一个ID。样式设置将保持与类中已有的样式相同,ID将使获取元素更容易。那就试试这个

函数getSVG(){ //我不知道你会给它什么Id,所以我把它命名为ParentID var parent=document.querySelector(“ParentID”); var getSvg=parent.querySelectorAll(“svg”); console.log(getDivs); }
试试这个xpath:

<div class="A">
  <svg> ... </svg>
  <button> 
    <svg> ... </svg>
  </button>
  <svg> ... </svg>
</div>
<div class="A">
  <svg> ... </svg>
  <button> 
    <svg> ... </svg>
  </button>
  <svg> ... </svg>
</div>
请注意括号的用法,以便在页面上选择//div/按钮的第二个实例


另请参见此答案:

如果您使用的是xpat,则应将svg指定为名称:

这将给出第二个元素,即button的svg元素和div的子元素

(//div/button)[2]/*[name()='svg']
如果您正在使用css,您可以直接使用

这将查找作为第二个子项的div,然后查找按钮的svg

(//div/button/*[name()='svg'])[2]

如果他们有一个id,这会简单得多,但是示例代码在DOM中没有id。它仍然可以工作,为什么输入id会损害代码?我不明白为什么你会投票否决我这么小的细节,用户不能总是更改页面的源代码。我同意你的解决方案,减少DOM元素。我刚刚添加了两个div作为参考,在实际的DOM中有许多div。我想,每次执行查询选择器都要付出高昂的代价。我想要的就是,获取div->button->SVG的特定实例。对于第二个元素的情况,可以使用类似.a:n子元素(2)的内容。但它不起作用(我发现了Web元素错误)@JayanthR我根据您的需要调整了解决方案。因此,首先搜索第二个div,然后查找由按钮包装的svg元素。
   div:nth-child(2)>button>svg