Selenium getText不适用于SVG xpath

时间:2017-03-21 22:23:49

标签: selenium svg xpath

我正在尝试捕获并存储一些出现在svg元素内部的文本,例如

<svg>
   <g>
      <text>Value to get</text>
   </g>
</svg>

我有一个我正在使用的方法,它适用于其他元素,但Selenium WebElement类方法getText不会返回任何svg元素的文本,如上所述。

以上示例

是我的xpath的样子
//*[local-name()='g']//*[local-name()='text']

我能够使用findElement(By.xpath(myXpath)),但是当我在其上调用.getText()时,它不会返回任何值,也不会抛出任何错误。

我做错了什么,或者可能是替代方法?

还有一点值得注意的是,上述方法在Windows 7机器上运行良好,但在Mac上运行不正确。

1 个答案:

答案 0 :(得分:0)

您是否尝试过类似CSS选择器driver.findElement(By.cssSelector("svg > g > text")).getText();的简单内容?您是否检查过页面上有多少匹配?也许你得到的第一场比赛实际上里面没有文字。打开Chrome开发者控制台,然后输入$$("svg > g > text").length,看它是否返回超过1。

以下是一些CSS选择器引用:

CSS Selectors Reference

CSS Selector Tips