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