我在Firefox中运行了一个水豚/黄瓜测试,它不会点击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来查找元素并触发单击它。