如何从父div获取特定子元素的内部元素-selenium javascript ... ... ... ... ... ...
我需要在第二个分区中检索按钮元素的svg元素。有人能帮我吗?您可以使用如何从父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
//查找具有类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