Selenium SVG元素中的Xpath

Selenium SVG元素中的Xpath,selenium,svg,xpath,Selenium,Svg,Xpath,我在SVG对象中本地化元素时遇到问题。我需要从下面图片上突出显示的元素中获取文本。我尝试使用完整xpath: //*[local-name()='g']//*[local-name()='g' and @id='g-node-54591']//*[local-name()='g'][3]//*[local-name()='text'] Selenium没有返回这样的元素异常 以下是我的Selenium代码: @FindBy (xpath = "//*[local-name()

我在SVG对象中本地化元素时遇到问题。我需要从下面图片上突出显示的元素中获取文本。我尝试使用完整xpath:

//*[local-name()='g']//*[local-name()='g' and @id='g-node-54591']//*[local-name()='g'][3]//*[local-name()='text']
Selenium没有返回这样的元素异常

以下是我的Selenium代码:

    @FindBy (xpath = "//*[local-name()='g']//*[local-name()='g' and @id='g-node-54591']//*[local-name()='g'][3]//*[local-name()='text']")
    WebElement endAOnDiagram;

public void verifyViewingEndAOnDiagram (String endA){
    String txt = endAOnDiagram.getText();
    System.out.println(txt);
    Assert.assertTrue(txt.contains(endA));
}

我读过几篇关于为SVG元素创建xpath的文章,但每一个建议的解决方案都不适合我。如果有人有任何想法,请告诉我

HTML代码


正文{
字号:12px
}
10110,OS1080
45187,战争2
Abp-Alc1
1/1
Abp-Alc1
1/1
.svg平移缩放控件{
光标:指针;
填充:黑色;
填充不透明度:0.333;
}
.svg平移缩放控件:悬停{
填充不透明度:0.8;
}
.svg平移缩放控件背景{
填充物:白色;
填充不透明度:0.5;
}
.svg平移缩放控件背景{
填充不透明度:0.8;
}

检查元素是否存在于
iframe
中?如果是,则需要首先切换到
iframe
。请回答您的问题,并将HTML以文本格式发布到上面的节点。我在代码中没有看到任何iframe标记。@ArturPrzybylo但我可以在提供的屏幕截图上清楚地看到
#文档
,所以所需的节点肯定在框架中。我正在与编写该文档的开发人员交谈,他告诉我#文档不是框架而是对象。当页面加载时,它是空的,而当库绘制svg对象时,它是满的。问题出在其他地方。提供的xpath在提供的svg上运行良好。