selenium svg xpath selenium-webdriver amcharts

Cómo hacer clic en elementos SVG usando XPath y Selenium WebDriver a través de Java



selenium-webdriver amcharts (2)

Tengo un objeto SVG con algunos elementos rectangulares. Usando geckodriver , estoy tratando de hacer clic en uno de los principales objetos SVG . Sin embargo, con xpath-checker no puedo detectar el xpath adecuado para el mismo.

Hasta ahora, puedo profundizar a través de xpath hasta:

id(''avg_score_chart'')/div/div[1]/*[local-name()=''svg'' and namespace-uri()=''http://www.w3.org/2000/svg'']

Mi código HTML es el siguiente:

<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>

¿Puede alguien ayudarme por favor?


¿qué tal: //div[@id=''avg_score_chart'']//*[local-name()=''svg'']/*[*[local-name()=''path'']]

donde encuentra cualquier elemento con un elemento ''ruta'' dentro de un elemento ''svg'' dentro de un elemento ''div'' con id ''avg_score_chart''.

Editar: colocó el xpath en un bloque de código


Intente seguir XPath y avíseme si el problema persiste:

//div[@id="avg_score_chart"]//*[name()="svg"]

Para elementos <g> :

//div[@id="avg_score_chart"]//*[name()="svg"]/*[name()="g"]

Actualizar

Finalmente, esta debería ser casi la mejor opción:

//div[@class="portlet light boxshadow"][contains(.,"Store Wise Performance")]/div//div[@class="amcharts-chart-div"]/*[name()="svg"]//*[name()="g"]/*[name()="path" and @fill="rgb(242,244,28)"]