使用Rspec / Capybara / Selenium与canvas元素进行交互

时间:2014-01-10 18:00:12

标签: ruby-on-rails canvas selenium rspec capybara

我有一个HTML5 canvas元素,根据点击的位置触发不同的操作。

有没有办法可以使用Capybara

在我的测试规范中模拟这种行为

2 个答案:

答案 0 :(得分:0)

看着这个:http://selenium.googlecode.com/svn/trunk/docs/api/rb/Selenium/WebDriver/ActionBuilder.html

您可以使用ActionBuilder执行所需操作。 move_to会将光标放在元素的中间,你需要根据它来改变偏移量。

driver.action.move_to(element, xOffset, yOffset).
   click().
   perform

答案 1 :(得分:0)

看看水豚上的点击代码,发现您可以将x和y坐标传递到您要单击的位置:https://github.com/teamcapybara/capybara/blob/8f86f46d2c486aa27045f853ff7696f5aa34dcf4/lib/capybara/node/element.rb#L157-L174

这在水豚上为我工作:

page.find('#canvas-id').click([], { x: 50, y: 80 })