2016-02-04 60 views
0

点可点击我在Firefox中水豚/黄瓜试运行,不会点击SVG元素。我有属于同一类型的其他元素的等效试验工作,但水豚是在告诉我这个错误此特定元素:水豚元素是不是在用Firefox

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?

编辑: 结束了使用以下的(jquery的点击D3元件FYI不工作)手动点击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(); 

) 

回答

2

硒试图在中间点击元素的边界框。这里的问题是,对于高度凹的形状,边界框的中心实际上并不在元素中,因此点击会通过封装的svg元素。由于此页面使用的是jQuery,所以最好的办法可能就是使用#execute_script来查找元素并点击它。

+0

谢谢,其他饼图工作虽然很奇怪。我用代码更新了问题,以手动点击d3元素。 – yoyodunno

+1

这一切都取决于您想要点击的区域的多少部分,区域越长,边界矩形的中心越不可能位于区域内部,它可能也会影响其他图表,只是他们的细分较小 –

+0

啊我明白你的意思了。 – yoyodunno