使用firefox时,Capybara元素无法点击

时间:2016-02-04 21:35:32

标签: selenium capybara dc.js clickable

我在firefox中运行了一个不会单击svg元素的Capybara / Cucumber测试。我有相同的测试工作在相同类型的其他元素,但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元素FYI不起作用):

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();

)

1 个答案:

答案 0 :(得分:2)

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