我在页面上有一个谷歌地图。用户可以单击此地图,它将在该点删除标记。我如何在Capybara模拟这个?只要它在地图上的某个位置,它们点击的位置无关紧要。
答案 0 :(得分:0)
如果您使用Selenium驱动程序,我认为您可以使用ActionBuilder。它将类似于:
within_frame(locator_of_frame_with_map) do
map = find(locator_of_map).native
page.driver.browser.action.move_to(map, x, y).click.perform
end
以上代码是草稿。显然,我无法在没有演示的情况下提供工作代码。
Capybara本身没有用于点击特定坐标的交叉驱动程序API。
答案 1 :(得分:0)
使用Capybara中的webkit驱动程序,我已经使用过:
javascript_to_trigger_click = <<-JS
$('#map > div > div:nth-child(1) > div:nth-child(4) > div:nth-child(1)').click();
JS
page.evaluate_script(javascript_to_trigger_click)
其中#map
是包含谷歌地图的元素。
附注,但我已经失去了这么多时间,请确保启用任何url capybara线程运行其测试服务器到您的应用程序的谷歌控制台。 (您可以通过为水豚设置config.debug = true
来查看网址)