【问题标题】:Capybara element is not clickable at point with firefoxCapybara 元素在使用 firefox 时不可点击
【发布时间】:2016-02-05 11:39:12
【问题描述】:

我有一个在 Firefox 中运行的 Capybara/Cucumber 测试,它不会单击 svg 元素。我对其他相同类型的元素进行了等效测试,但 Capybara 告诉我这个特定元素的错误:

Element is not clickable at point (1179.5, 172.96665954589844). Other element would receive the click: <svg height="124" width="290"></svg> (Selenium::WebDriver::Error::UnknownError)

点击的样子:

find("#partner-profit-chart svg g.pie-slice._1").click

实际站点托管在这里http://mrr.devtechlab.com/mrr-dashboard.html,它不会点击的元素是右侧的第三个饼图。我可以单击其他饼图就好了,但不知何故 Selenium 认为它会单击包含仅此图表元素的 SVG ???

编辑: 最终使用以下方法手动单击 d3 元素(jquery click 不适用于 d3 元素仅供参考):

execute_script(
%Q(
  jQuery.fn.d3Click = function () {
    this.each(function (i, e) {
      var evt = new MouseEvent("click");
      e.dispatchEvent(evt);
    });
  };
  $("#partner-profit-chart svg g.pie-slice._1 path").d3Click();

)

)

【问题讨论】:

    标签: selenium capybara dc.js clickable


    【解决方案1】:

    Selenium 尝试单击元素边界框的中间。这里的问题是,对于高度凹入的形状,边界框的中心实际上并不在元素中,因此点击会转到封装的 svg 元素。由于此页面使用 jQuery,您最好的选择可能是使用 #execute_script 来查找元素并触发点击它。

    【讨论】:

    • 谢谢,奇怪的是其他饼图可以正常工作。我已经用代码更新了问题以手动单击 d3 元素。
    • 这完全取决于您试图点击覆盖的段的圆圈大小,段越长,边界矩形的中心就越不可能在段内,它可能也会影响其他图表,只是它们的段更小
    • 啊,我明白你的意思了。
    猜你喜欢
    • 1970-01-01
    • 2018-09-30
    • 2018-03-02
    • 2012-05-10
    • 2019-06-12
    • 2016-08-12
    • 2018-03-25
    • 2018-04-30
    • 2016-05-23
    相关资源
    最近更新 更多