如何通过 Java 使用 XPath 和 Selenium WebDriver 单击 SVG 元素 [英] How to click on SVG elements using XPath and Selenium WebDriver through Java
本文介绍了如何通过 Java 使用 XPath 和 Selenium WebDriver 单击 SVG 元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个带有几个矩形元素的 SVG
对象.使用 geckodriver
,我试图点击主要的 SVG
对象之一.但是使用 xpath-checker 我无法检测到正确的 xpath
.
I have an SVG
object with a few rectangle elements. Using geckodriver
, I am trying to click on one of the main SVG
object. However with xpath-checker I am unable to detect the proper xpath
for the same.
到现在为止,我可以通过 xpath
向下钻取:
Till now, I am able to drilldown through xpath
upto:
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>
有人可以帮我吗?
推荐答案
尝试遵循 XPath
并让我知道如果问题仍然存在:
Try following XPath
and let me know if problem still persist:
//div[@id="avg_score_chart"]//*[name()="svg"]
对于
元素:
//div[@id="avg_score_chart"]//*[name()="svg"]/*[name()="g"]
更新
最后,这应该是最好的选择:
Finally, this should be nearly the best option:
//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)"]
这篇关于如何通过 Java 使用 XPath 和 Selenium WebDriver 单击 SVG 元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文