У меня есть объект SVG
с несколькими элементами прямоугольника. Используя geckodriver
, я пытаюсь нажать на один из основных объектов SVG
. Однако с помощью xpath-checker я не могу определить правильный номер xpath
.Selenium WebDriver [Java]: Как нажимать на элементы в SVG с помощью XPath
До сих пор, я могу развернутом через xpath
ДО:
id('avg_score_chart')/div/div[1]/*[local-name()='svg' and namespace-uri()='http://www.w3.org/2000/svg']
HTML
Мой код выглядит следующим образом:
<div id="avg_score_chart" class="chart" style="height: 250px; color: black ! important; overflow: hidden; text-align: left;">
<div class="amcharts-main-div" style="position: relative;">
<div class="amcharts-chart-div" style="overflow: hidden; position: relative; text-align: left; width: 525px; height: 212px; padding: 0px;">
<svg version="1.1" style="position: absolute; width: 525px; height: 212px; top: 0.450012px; left: -0.5px;">
<desc>JavaScript chart by amCharts 3.17.1</desc>
<g>
<g>
<g>
<g>
<g>
<g>
<g transform="translate(60,52)">
<g transform="translate(96,41)">
<g transform="translate(96,123)">
<g transform="translate(96,123)">
<path cs="100,100" d="M0.5,0.5 L0.5,-81.5 L30.5,-81.5 L30.5,0.5 L0.5,0.5 Z" fill="rgb(242,244,28)" stroke="rgb(242,244,28)" fill-opacity="0.8" stroke-width="1" stroke-opacity="0.8">
</g>
<g transform="translate(318,123)">
<g transform="translate(318,123)">
<g transform="translate(318,123)">
</g>
</g>
<g>
<g>
<g>
<g>
<g>
<g>
<g>
<g>
<g>
<g>
<g>
</svg>
Может кто-нибудь помочь мне, пожалуйста?
Это странно ... Я бы ожидал, что SVG тег работать как любой другой тег, например, '// ДИВ [@ ид = "avg_score_chart"] // svg'. Вы знаете, почему вы должны использовать 'name()'? – JeffC
Для некоторых тегов (в основном из 'XML'' DOM') нужно использовать '/ * [name() = tag_name]' синтаксис вместо обычного '/ tag_name' ... Извините, не знаю, почему это так – Andersson
@ Dev, пожалуйста, отметьте этот ответ как «Принято», если он решит вашу проблему. Спасибо – Andersson