【发布时间】:2017-03-08 10:51:22
【问题描述】:
我正在使用 Ruby 和 Cucumber 对 Web 应用程序进行功能测试。我正在使用watir-webdriver 来驱动网络浏览器。
我的网络应用程序有一个导航菜单,其中包含一个导航链接,当鼠标悬停在上面时会显示一个选项菜单。
我正在尝试使用 watir-webdriver element.hover 方法来触发悬停事件。 Ruby gems 中的 watir-webdriver 版本目前似乎不包含 this commit 以向元素添加悬停事件,但是我猴子修补了元素类以添加此功能。
在我的 Mac 上使用 Chrome 运行我的测试时,一切都很好。悬停甚至被触发,我可以单击显示的结果菜单中的链接。
但是,当我在同事的 Windows 机器上设置 Ruby 环境时,我们没有得到相同的结果。使用 Firefox,悬停事件确实会触发,但是,只是一瞬间,然后下拉菜单消失了。这会导致测试失败,因为以下黄瓜步骤会尝试单击下拉菜单中存在的链接,但该链接已不存在。
所以我的问题是这样的:
有谁知道在 Windows 上使用 Cucumber 和 watir-webdriver 时如何确保在调用 element.hover 后保持悬停状态?
【问题讨论】:
-
否,但您可以改为触发 click 事件。我曾经有一个问题,与鼠标在显示菜单上的移动方式有关。解决方案是单击它们。一般来说(我的观点),导航和菜单测试的价值很低。您可以跳过它们,在有限数量的操作系统/浏览器集上运行它们,或者将其保存以进行手动测试。祝你好运。
-
没错,这个测试是否增加了很多价值是有争议的。但我正在尝试将 BDD 方法引入到基本上具有零功能测试的现有应用程序中。第一个也是最简单的故事之一是悬停导航菜单。所以我们只是想把事情做好。感谢您的 cmets 伙伴。
标签: ruby windows firefox watir-webdriver