Capybara webkit驱动程序找到重叠元素,我该如何点击其中一个?

Tan*_*nak 7 webkit rspec ruby-on-rails cucumber capybara

Capybara webkit驱动程序错误地看到我的css.它看到(显示)我的按钮与另一个按钮重叠,而selenium驱动程序没有问题.

无论如何我可以点击它吗?可能是执行脚本或什么?

Sha*_*nor 18

使用Capybara,您可以触发点击事件,而不是直接点击元素,如下所示:

page.find("#some_element").trigger("click")
Run Code Online (Sandbox Code Playgroud)

问题是这在Selenium中不起作用.所以你可以做的是有条件地执行一个标准的水豚clicktrigger("click")基于当前的javascript驱动程序,这看起来像:

if Capybara.javascript_driver == :selenium
  page.find("#some_element").click
else
  page.find("#some_element").trigger("click")
end
Run Code Online (Sandbox Code Playgroud)

显然这不太理想,但这是我发现处理这些情况的最好方法.