在我的应用程序中,我有 200 个具有相同属性和值的 svg 元素 (//*[name()='svg'][@class='tree-node-icon'])
但是当我定位一个 svg 元素时,它被定位,因为我使用了这样的索引位置 (//*[name()='svg'][@class='tree-node-icon'])[3] (因为它有所有 svg elemnet 的属性值相同)
但这里的问题是,当我在 UI 中添加新的 Svg 元素(即在我们的应用程序中添加文件夹,它将创建新的 svg 元素)时,所选的 xpath 索引值发生了更改,我的意思是位置号 3 更改为 4
如何处理这种情况?
这里是 Html Dom
<div class="tree-branch" xpath="1">
<div draggable="false" class="tree-node has-child-nodes">
<svg width="12" height="12" class="tree-node-icon">
<path d="M2 1 L10 6 L2 11 Z" class="svg-icon"></path>
</svg>
<span class="tree-node-label">
<i class="label-icon fas fas fa-folder" aria-hidden="true"></i>
<span>Public</span>
</span>
</div>
对于所有具有相同html Dom结构的svg元素,如何在没有索引位置的情况下处理这个问题
我可以从中找到 svg 元素吗
<span>Public</span> to svg
我需要在不使用索引位置的情况下处理 svg 元素
这个 xpath 表达式以跨度为谓词来定位显示的 svg
//*[name()="svg" and following-sibling::span/span[.="Public"]]
在开发控制台上进行了测试
$x('//*[name()="svg" and following-sibling::span/span[.="Public"]]')