Selenium не может найти элемент SVG в XPath

У меня есть следующий HTML:

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

И я не могу найти SVG с Селен IDE на Firefox вообще. Я пытался:

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

Никто из них не может найти мой элемент SVG. Иногда я получаю ошибку:

error = TypeError: e.scrollIntoView is not a function

Я использую это как средство использования локатора в тестировании JUnit 4, если это помогает.

3 ответа

Попробуйте следующее выражение XPath:

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

(работает по крайней мере с консоли Chrome/FireBug, еще не пробовал с Selenium)

Речь идет о xPath, но если вы можете использовать CSS-селекторы, это было бы более читабельно, как, например, (Java).

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

Для идентификатора X-Path попробуйте использовать -

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

Хотя я бы порекомендовал CSS вместо этого (более читабельный и простой в создании):

css=img
Другие вопросы по тегам