Watir如何始终如一地处理javascript下拉菜单
How can Watir consistently deal with a javascript dropdown menu?
我是watir的n00b,我正在测试一个使用extjs的web应用程序。该应用程序有一个主菜单,其中包含几个具有子项目的项目。其中一个主菜单项与其子菜单项具有相同的文本。在watir网络驱动程序中,我有这样的代码:
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个浏览器中都能正常工作?
在某些情况下,菜单的显示不需要点击,可以通过鼠标悬停在菜单上来触发。在这种情况下,可以尝试悬停而不是单击以显示菜单。
许多自定义控件的一个问题是,它们在不同的浏览器上的工作方式不同,这意味着您的自动化代码可能必须考虑到这一点,这是像这样的自定义控件的缺点,并且不使用基本的HTML元素
相关文章:
- 如何处理javascript中的循环引用,类似于Excel提供迭代限制的方式
- 什么是处理JavaScript的最简单的网络抓取工具
- 你如何处理Javascript中Caesar密码的转变
- 以相同的形式处理javascript和php中下拉列表的操作
- 如何在函数调用时处理 javascript 中的变量
- 我可以在哪里协作处理JavaScript,类似于CodeHS
- 通过抛出setTimeout()来处理JavaScript异常的任何问题
- 如何处理JavaScript's GridView上的确认对话框's PageIndexChanging
- 处理JavaScript中的net::ERR_CONTENT_LENGTH_MISMATCH错误
- 如何处理 JavaScript 条件语句中的可为空的对象
- XML 到 JSON - 处理 JavaScript 中的 xml 命名空间和别名
- 处理 JavaScript 中不存在的变量
- Google V8如何处理javascript事件
- 如何在保持干燥的同时处理 javascript 中的条件回调
- 存储过程中的Mongodb处理 - JavaScript中的BSON到JSON
- 国际键盘如何处理 JavaScript 键盘事件
- 如何处理 javascript 中的嵌套函数
- 应该如何处理JavaScript
链接的返回值 - Ruby with Watir:处理 JavaScript 弹出窗口
- 使用数组处理 JavaScript 字符串 为什么它在控制台上打印“R”而不是“Z”