我正在尝试使用 Rails3 测试谷歌地图应用程序。我使用黄瓜与水豚和硒进行 JavaScript 测试。
我有一张地图,等待谷歌地图加载,然后向我的服务器发送 ajax 请求,在服务器上我获取要插入地图中的位置。
我想知道硒是否可以等待谷歌地图加载,对我的服务器的ajax调用完成并且标记被放置在地图内。另一个问题是,如何在谷歌地图中选择这个标记。有选择器吗?
或者我应该走另一条路,使用像 Jasmine 这样的 JS 测试框架来测试我的类是否加载等等。我没有任何使用 Jasmine 的经验,所以可以测试谷歌地图吗?
也许有人知道一个解决方案,或者一个提示(如果不可能的话),或者一个解决方法或者......;)
[更新1]
我已经找到了如何在谷歌地图中选择标记。如果你看谷歌硒测试 http://gmaps-api-issues.googlecode.com/svn/trunk/selenium/core/TestRunner.html?test=../tests/examples_stable_suite.html你可以看看他们在做什么。例如选择一个标记:
waitForElementPresent xpath=//img[contains(@src,'marker')]
但下一个问题来了。如何选择特定标记? javascript google 地图 API 中有没有办法为其分配 ID,以便我可以使用#marker_1
, #marker_2
...?
我所做的就是执行步骤定义中的调用,如下所示:
page.execute_script("launchmap()")
然后检查它们在页面中是否存在..然后在水豚中进行正常的ajax检查。标记将包含在 div 中,对吗?那么如果你调用 launchmap 并创建标记,水豚应该能够找到你的标记
UPDATE
发现这个插件:http://vigetlabs.github.com/jmapping/examples/ http://vigetlabs.github.com/jmapping/examples/
它为您的谷歌地图提供语义标记(用于优雅降级),允许您使用水豚实际检查标记是否存在。希望它有帮助(没有时间测试它,但看起来很有希望)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)