Selenium在XPath中找不到SVG元素

时间:2011-08-04 14:15:43

标签: testing xpath selenium junit svg

我有以下HTML:

<div id="imageholder>
    <svg>
        <g> <image href='blah.gif'> </g>
    </svg>
</div>

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

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

他们都不能找到我的svg元素。有时我会收到错误:

error = TypeError: e.scrollIntoView is not a function

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

3 个答案:

答案 0 :(得分:47)

尝试以下XPath表达式:

//*[local-name() = 'svg']

(至少在Chrome / FireBug控制台上运行,尚未尝试使用Selenium)

答案 1 :(得分:2)

问题是关于xPath,但是如果你可以使用CSS选择器,那将更具可读性,如此(Java)。

WebElement image = driver.findElement(By.cssSelector("#imageholder > svg > g > image"));

答案 2 :(得分:-1)

对于X-Path标识符,请尝试使用 -

//div[@id='imageholder']/svg/g/img

虽然我会推荐使用CSS(更易读,更容易构建):

css=img