У меня есть следующее выражение XPath:
//a[@attribute='my-attribute']
Когда у меня есть следующий элемент в HTML, который ищет XPath, он соответствует ожидаемому:
<a attribute="my-attribute">Some text</a>
Но если под этим элементом есть тег <svg>
, XPath не возвращает совпадений:
<a attribute="my-attribute">
<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%"
viewBox="0 0 24 24" focusable="false"></svg>
</a>
Почему XPath не совпадает в этом случае? Есть ли способ, которым я могу изменить свое выражение, чтобы оно соответствовало?
EDIT:
Очевидно, это связано с пространством имен в элементе <svg>
. Использование функции local-name()
позволяет сопоставить ее в используемом мной тестере XPath:
//*[local-name()='a' and @attribute='my-attribute']
Однако , это все равно не совпадает при работе через Selenium WebDriver. Есть идеи, как заставить это работать с Selenium?