web-dev-qa-db-fra.com

Le sélénium ne trouve pas l'élément SVG dans xpath

J'ai le suivant HTML:

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

Et je ne peux pas sembler localiser le SVG avec selenium IDE sur Firefox du tout. J'ai essayé:

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

Aucun d'entre eux ne peut localiser mon élément SVG. Parfois, je reçois l'erreur:

error = TypeError: e.scrollIntoView is not a function

J'utilise cela comme moyen d'utiliser le localisateur dans le test Junit 4 si cela aide.

30

Essayez l'expression XPath suivante:

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

(Fonctionne au moins de Chrome/Firebug Console, n'a pas encore essayé avec sélénium)

50
Touko

La question concerne XPath, mais si vous pouvez utiliser des sélecteurs CSS, cela serait plus lisible, comme (Java).

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