Capybara 元素在 Firefox 中无法点击

Capybara element is not clickable at point with firefox

我在 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 单击对 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 尝试单击元素边界框的中间。这里的问题是,对于高度凹陷的形状,边界框的中心实际上并不在元素中,因此点击会传递到封装的 svg 元素。由于此页面使用 jQuery,您最好的选择可能只是使用 #execute_script 来查找元素并触发点击它。