0

我是 watir 的 n00b,我正在测试一个使用 extjs 的网络应用程序。该应用程序有一个主菜单,其中包含几个具有子项目的项目。主菜单项之一与其子菜单之一具有相同的文本。在 watir webdriver 我有这个代码:

jobs_menu = d.p(:text => "Jobs")
jobs_menu.when_present.flash
jobs_menu.click
jobs_submenu_item = d.a(:text => "Jobs")
jobs_submenu_item.when_present.flash
jobs_submenu_item.click

这应该闪烁并单击第一个菜单并导致子菜单下降。然后它应该闪烁并单击子菜单项。我在 3 个不同的浏览器中得到 3 个结果:

Firefox - 第一个菜单闪烁并下降,子菜单项闪烁,但没有被点击

Chrome - 第一个菜单闪烁并下降,子菜单项闪烁并单击 OK - 耶!

IE - 第一个菜单闪烁并下降,然后消失,并且无法使用 ElementNotVisibleError 找到子菜单项

有趣的是要注意不同的菜单,其中下拉文本与子菜单文本不同,然后 Firefox 和 Chrome 都可以正常工作。IE 仍然给出 ElementNotVisibleError。

我怎样才能让它在所有 3 个浏览器中都能正常工作?

4

1 回答 1

1

在某些情况下,菜单的显示不需要单击,并且可以通过将鼠标悬停在菜单上来触发。在这种情况下,尝试使用 .hover 而不是 .click 来显示菜单可能会起作用。

许多这些自定义控件的一个问题是它们在不同的浏览器上的工作方式不同,这意味着您的自动化代码可能必须考虑到这一点,这是这样的自定义控件的缺点,而不是使用基本的 HTML 元素

于 2012-04-03T21:40:28.033 回答