Ruby on rails 如何模拟与水豚共享地理位置?
我的场景要求用户授予应用程序使用其位置的权限。此对话框在每个浏览器中看起来都不同。如何使用Capybara对其进行测试?如果测试套件流需要它,并且不想调用API,我会对其进行模拟/存根。Ruby on rails 如何模拟与水豚共享地理位置?,ruby-on-rails,html,testing,geolocation,capybara,Ruby On Rails,Html,Testing,Geolocation,Capybara,我的场景要求用户授予应用程序使用其位置的权限。此对话框在每个浏览器中看起来都不同。如何使用Capybara对其进行测试?如果测试套件流需要它,并且不想调用API,我会对其进行模拟/存根。 不幸的是,尽管自动化测试有很多优点,但仍有少数需要手动完成。至少我从我的经历中学到了什么 如果您正在使用Chrome进行测试,那么这可能会很有帮助: 我已成功地将其用于步骤定义: page.execute_script "navigator.geolocation.getCurrentPosition = fu
不幸的是,尽管自动化测试有很多优点,但仍有少数需要手动完成。至少我从我的经历中学到了什么 如果您正在使用Chrome进行测试,那么这可能会很有帮助:
我已成功地将其用于步骤定义:
page.execute_script "navigator.geolocation.getCurrentPosition = function(success) { success({coords: {latitude: 50.455755, longitude: 30.511565}}); }"
所以,我喜欢
页面。执行上面的脚本版本。。。然而,我发现这不适用于TurboLink
在谷歌搜索了很多次之后,我想出了一个替代方案:
page
.driver
.browser
.execute_cdp(
'Page.setGeolocationOverride',
accuracy: 100,
latitude: latitude.to_f,
longitude: longitude.to_f
)
我不是这个解决方案的忠实粉丝,因为它访问的是他们“私有api”的一部分,他们当然不推荐。。。但它现在起作用了
更新:目前这适用于selenium\u chrome驱动程序,但不适用于selenium\u chrome\u headless。。。回到绘图板。我喜欢这个解决方案,因为它可以模拟预期的结果,谢谢您,先生!