我一直在研究这个测试脚本,我无法将其鼠标悬停在SVG中的元素上以显示工具提示。
我已将其存储在变量中并能够使用xpath输出属性,但是当我使用moveToElement调用它时,它不起作用。
这是我正在使用的xpath:
//*[name()='svg']/*[name()='g'][@class='highcharts-series-group']/*[name()='g'][18]/*[name()='path'][2]
但是这个xpath有效:
//*[name()='svg']/*[name()='g'][@class='highcharts-series-group']/*[name()='g'][18]/*[name()='path'][1]
我也试过[stats-with。,val]但没有成功。
更新: 添加元素的html
<g class="highcharts-markers highcharts-tracker" visibility="visible" zIndex="12" transform="translate(0,26) scale(1 1)" clip-path="url(#highcharts-438)" style="">
<path fill="#bdc94b" d="M 440 295.19999990878046 C 445.328 295.19999990878046 445.328 303.19999990878046 440 303.19999990878046 C 434.672 303.19999990878046 434.672 295.19999990878046 440 295.19999990878046 Z"></path>
<path fill="#bdc94b" d="M 417 292.4634146341463 C 422.328 292.4634146341463 422.328 300.4634146341463 417 300.4634146341463 C 411.672 300.4634146341463 411.672 292.4634146341463 417 292.4634146341463 Z"></path></g>
更新
所以在使用.click()。build()。perform();我现在收到一个元素不可点击的错误消息。事实证明,在后来的标签中有另一个元素覆盖了图。对此有什么好处?
答案 0 :(得分:0)
第一个(失败的)xpath正在寻找第二个&lt; path&gt;元素,而你的第二个(工作)xpath获取第一个路径元素。在我看来,源文件只有一个&lt; path&gt;第18组中的元素。
顺便说一句,xpath可以简化,因此更容易阅读,效率更高。
//svg/g[@class='highcharts-series-group']/g[18]/path[1]
因为/ * [name()=&#39; {nodename}&#39;]相当于/ {nodename}