Webdriver错误:无法通过watir-webdriver在驱动Facebox控件的点(-99999800,242.5)上单击元素

StackOverflow https://stackoverflow.com/questions/8405135

我正在使用带有chrome的watir-webdriver来自动化测试,现在有点卡住了。 我在facebox(defunkt.io/facebox)内部有一个表单。如您所见,此表单内有许多复选框: 通用标签

我的问题是,当我尝试设置此复选框之一时,出现以下错误: 通用标签

我该如何在Chrome上使用watir-webdriver处理Facebox?

编辑:

我从查克(Chuck)的提示中发现了问题(在检查元素工具中查看元素属性)。 因此,我注意到复选框的位置为-999999px。

解决方案: 通用标签

(因为这是导致左负移的类)

有帮助吗?

解决方案

我从查克(Chuck)的提示中发现了问题(在检查元素工具中查看元素属性)。因此,我注意到该复选框的左侧位置为-999999px。

解决方案: 通用标签

(因为这是导致左负移的类)

其他提示

该错误使我认为该东西可能不可见或不活跃。脚本在尝试与灯箱互动时是否真的在显示灯箱?您是否需要插入短暂的停顿或等待复选框被渲染以及“弹出”灯箱的javascript代码来完成任务?

如果它不可见,那么我可以看到它产生了您得到的那种错误。 同样,如果脚本执行得太快,也可能是问题所在。

使用开发人员工具(在chrome中,您可以右键单击元素并选择“检查元素”),然后查看相关元素的属性(特定位置),然后将元素移到“树”的上方(因为它是包含它的。

您可以通过更改类或更改类的CSS来强行解决此问题,以临时“重新定位”对象,以使Watir认为该对象可见。我必须对使用悬停状态来隐藏或显示菜单的内容进行类似的操作,无论出于何种原因,“ onmouseover”事件不足以使浏览器应用不同的CSS psuedoclass。如果您已经在使用jquery,则可以使用一些非常简单的函数来执行此类操作。 (您的一名开发人员可能会帮助您解决此问题)。如果需要,可以使用.execute_script调用类似的代码。

尝试一下。它将使用Javascript将元素移入视图。为我工作。 通用标签

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top