问题
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