【问题标题】:Can't Get moveToElement To Display Tooltip For SVG element On Selenium无法让 moveToElement 在 Selenium 上显示 SVG 元素的工具提示
【发布时间】:2016-10-20 09:59:15
【问题描述】:

我一直在编写此测试脚本,但无法将鼠标悬停在 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();我现在收到一个元素不可点击的错误消息。事实证明,在稍后的标签中还有另一个元素覆盖了该图。有什么好的解决方法?

【问题讨论】:

    标签: selenium xpath svg selenium-webdriver


    【解决方案1】:

    第一个(失败的)xpath 正在寻找第二个 元素,而您的第二个(工作)xpath 正在获取第一个路径元素。在我看来,源文件在第 18 组中只有一个 元素。

    顺便说一句,xpath 可以简化,这样更容易阅读,效率更高。

    //svg/g[@class='highcharts-series-group']/g[18]/path[1]
    

    因为 /*[name()='{nodename}'] 等价于 /{nodename}

    【讨论】:

    • 感谢您的回复和提示!所以我知道第 18 组中有第二个 ,因为当我运行测试时它没有失败。我的麻烦是,当我使用该 xpath 鼠标/悬停在使用 actions.moveToElement(element);它没有显示/找不到它来显示工具提示。
    • 嗯...在这种情况下,您是否有另一个位于元素上方的对象?它可能优先于鼠标事件。我认为即使是透明元素(除非被剪裁)也将优先于另一个。
    • 可能。对我来说,第 1 条路径有效,但第 2 条路径无效,即使它们是第 18 条 的一部分。至于元素上方的其他对象,我没有看到。
    • 很遗憾,我想不出别的了。你能把 svg 元素复制到 .svg 文件中,然后将其加载到 InkSpace 等工具中吗?如果鼠标确实无法到达该区域,那么它可以在工具中重复,并且/或者您可能会深入了解原因。
    • 谢谢,我试试看。
    猜你喜欢
    • 2019-02-02
    • 1970-01-01
    • 1970-01-01
    • 2016-08-19
    • 2018-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-20
    相关资源
    最近更新 更多