Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
watir webdriver能否单击css背景图像或浏览器中的任意位置?_Css_Watir Webdriver - Fatal编程技术网

watir webdriver能否单击css背景图像或浏览器中的任意位置?

watir webdriver能否单击css背景图像或浏览器中的任意位置?,css,watir-webdriver,Css,Watir Webdriver,我有一个来自extjs的“分割按钮”,很像位于的extjs演示页面上的“菜单按钮”演示。按钮右侧有一个下拉箭头,它是父标记上的css背景图像。单击右侧时,菜单将下拉,其中包含按钮操作的其他选择。我可以单击按钮或em,但在这两种情况下,菜单都不会下拉 我也尝试过以不同的顺序(mousedown、mouseup、click等)发送按钮和em javascript事件,但我只能触发主按钮,无法显示下拉菜单 不知何故,我需要在背景图像上精确地单击鼠标,以显示菜单。有没有办法让watir webdrive

我有一个来自extjs的“分割按钮”,很像位于的extjs演示页面上的“菜单按钮”演示。按钮右侧有一个下拉箭头,它是父标记上的css背景图像。单击右侧时,菜单将下拉,其中包含按钮操作的其他选择。我可以单击按钮或em,但在这两种情况下,菜单都不会下拉

我也尝试过以不同的顺序(mousedown、mouseup、click等)发送按钮和em javascript事件,但我只能触发主按钮,无法显示下拉菜单

不知何故,我需要在背景图像上精确地单击鼠标,以显示菜单。有没有办法让watir webdriver在浏览器中的任意位置单击?当然,假设我可以让watir webdriver给我按钮或em的当前坐标,或者有其他方法触发下拉吗


我在google watir论坛上发布了类似的查询,但仍然没有解决方案。感谢您提供的帮助。

如果您只是尝试展开菜单,而不是专门测试“单击”事件,则可以发送向下键:

browser.div(:id, 'splitbutton-1022').send_keys :down

这对Firefox上的示例站点有效。我没有尝试任何其他浏览器。

试试这个,效果很好:

   b.em(:class, "x-btn-split x-btn-split-right").button(:class, "x-btn-center").send_keys :down

对于extjs人员来说,这可能是一个使控件更易于测试的问题。如果右侧有一个可以单击的独特元素(而不是左侧按钮下方的较大元素),那么使用它可能会容易得多。这或者你可能需要对页面进行反向工程,看看是否有一些javascript可以执行,这些javascript与clickI调用的相同。最后,我让开发人员编写了一些自定义javascript来单击该类型的按钮菜单。然而,似乎除了自动化是一件痛苦的事情之外,还有一个UI问题,即附加到按钮的菜单无法从键盘打开(Justin Ko建议的聪明方法)。这可能是一个可访问性问题。大多数标准HTML控件都没有这个问题。这是一些花哨菜单的缺点,它们看起来不错,但存在可测试性问题,以及残疾人的可访问性问题。。(想知道用屏幕阅读器试试会是什么感觉?)browser.button(:id,'splitbutton-1022-btnEl')。send_keys:downlays这在我的特定web应用上不起作用,尽管它在演示网站上起作用。