Selenium在XPath中找不到SVG元素

And*_*iel 29 testing junit selenium xpath svg

我有以下HTML:

<div id="imageholder>
    <svg>
        <g> <image href='blah.gif'> </g>
    </svg>
</div>
Run Code Online (Sandbox Code Playgroud)

而且我似乎无法在firefox上找到带有selenium IDE的svg.我试过了:

//svg
//svg:svg
//*[name()='svg']
//*[namespace-uri()='http://www.w3.org/2000/svg']
Run Code Online (Sandbox Code Playgroud)

他们都不能找到我的svg元素.有时我得到错误:

error = TypeError: e.scrollIntoView is not a function
Run Code Online (Sandbox Code Playgroud)

我正在使用它作为在JUnit 4测试中使用定位器的方法,如果这有帮助的话.

Tou*_*uko 51

尝试以下XPath表达式:

//*[local-name() = 'svg']
Run Code Online (Sandbox Code Playgroud)

(至少从Chrome/FireBug控制台工作,尚未尝试过Selenium)

  • 谢谢,这为我解决了类似的问题.任何想法为什么只是'// svg'不起作用? (3认同)
  • 如果我已正确理解,则与XML命名空间相关.(没有深入研究这个) (3认同)

Mat*_*och 5

问题是关于 xPath 的,但是如果您可以使用 CSS 选择器,那将更具可读性,就像这样(Java)。

WebElement image = driver.findElement(By.cssSelector("#imageholder > svg > g > image"));
Run Code Online (Sandbox Code Playgroud)