简体   繁体   中英

Selenium cannot find SVG element in XPath

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.

Try the following XPath expression:

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

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

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

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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM