xml - 无法确定用于不包含 ID 的嵌套 SVG 元素的 XPATH

标签 xml svg selenium-webdriver

我需要确定完整的 xpath 以到达此处显示的第三个路径元素:

<div id="myID">
    <div>
        <svg version="1.1">
            <g>
                <g>
                <g>
                    <g>
                        <g>
                        <g>
                            <path fill="green">
                            <path fill="orange">
                            <path fill-opacity="0.2">

...加上所有相关的结束标签。

我需要将此 xpath 与 Selenium-Webdriver 结合使用。通过查看此示例:Selenium WebDriver: clicking on elements within an SVG using XPath我知道我需要使用 local-name() 或 name() 方法与 SVG 元素交互,但我不确定如何合并初始嵌套 div 以及如何通过没有 ID 或其他元素的嵌套 g 元素要使用的信息。

如果您能提供帮助,在此先感谢您!

最佳答案

你可以通过每个级别的位置来获取它:

id('myID')/div/*[1]/*[1]/*[2]/*[1]/*[2]/*[3]

或者通过标签名:

id('myID')/div/*[name()='svg']/*[name()='g']/*[name()='g']/*[name()='g']/*[name()='g']/*[name()='path'][3]

或者简单地说:

id('myID')//*[name()='svg']//*[name()='path' and @fill-opacity='0.2']

关于xml - 无法确定用于不包含 ID 的嵌套 SVG 元素的 XPATH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36781120/

相关文章:

java - SVG 线性渐变比例和平移问题

python - 使用 selenium 和 python 的下拉选择器

xml - 使用 FLWOR 从选定节点删除 xml 子元素

android - android :layout_centerVertical and android:layout_gravity ="center_vertical"? 之间有区别吗

svg - 创建SVG进度圈

html - SVG 在 IE 11 中使用带有外部引用的标签

java - Selenium - 尝试单击多个 "Remove"按钮,但出现 StaleElementReferenceException

java - 如何使用 Selenium 和 Java 打印从网页获取的带有空格分隔符的提取文本

java - 在java spring-boot中使用rest xml文件

java - XML 的最后一个子级抛出 NullPointerException