40 votes

Le sélénium ne peut pas trouver l'élément SVG dans XPath

J'ai le code HTML suivant :

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

Et je ne peux pas du tout localiser le svg avec le sélénium IDE sur firefox. J'ai essayé :

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

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

error = TypeError: e.scrollIntoView is not a function

Je l'utilise comme un moyen d'utiliser le localisateur dans JUnit 4 test si cela aide.

74voto

Touko Points 3393

Essayez l'expression XPath suivante :

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

(fonctionne au moins depuis la console Chrome/FireBug, n'a pas encore essayé avec Selenium)

4voto

Matthias Bloch Points 45

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

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X