Selenium cannot find SVG element in XPath

别说谁变了你拦得住时间么 提交于 2019-12-30 00:15:25

问题


I have the following HTML:

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

And I cannot seem to locate the svg with selenium IDE on firefox at all. I have tried:

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

None of them can locate my svg element. Sometimes I get the error:

error = TypeError: e.scrollIntoView is not a function

I'm using this as a means to use the locator in JUnit 4 testing if that helps.


回答1:


Try the following XPath expression:

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

(works at least from Chrome/FireBug console, haven't tried with Selenium yet)




回答2:


The question is about xPath, but if you can use CSS Selectors, that would be more readable, like so (Java).

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



回答3:


For the X-Path identifier, try using -

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

Though I would recommend CSS instead (more readable and easier to construct):

css=img


来源:https://stackoverflow.com/questions/6943025/selenium-cannot-find-svg-element-in-xpath

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!