Selenium:如何点击透明覆盖图?

时间:2014-04-01 18:00:10

标签: html selenium selenium-webdriver

我有一个元素可以在点击时触发一些javascript。 部分覆盖元素是一个大多数透明的图形,它将所有事件传递给该元素。这样,无论是否单击了叠加层或元素,该元素都会获取事件。

我正在尝试在selenium中编写一个测试点击被测元素并验证行为,但是chrome webdriver告诉我它无法点击该元素,因为叠加层将获得点击事件。

这很好,但是......我怎么告诉硒我不在乎,无论如何点击?我不想特别点击叠加层(在这个测试中),叠加层只是让人眼前一亮,所以即使我删除叠加层,测试仍然可以正常工作。

编辑: 为了清楚起见...我想让它点击 所拥有的地方,如果叠加不在那里。这样,如果没有叠加,它将单击该元素,但如果覆盖则单击叠加。

3 个答案:

答案 0 :(得分:2)

您将无法点击叠加下的对象,因为Selenium已被编写为仅访问用户可以访问的内容。如果手动用户无法点击,那么Selenium也不能。

你可以通过javascript_executor方法直接在该对象上激活JavaScript,或者执行交互,这将删除测试中的叠加层

答案 1 :(得分:0)

我可以解决此问题:在我的应用程序中,顶部标头可见,并且我单击了顶部元素之一(可见),并且可以继续执行脚本的其余部分

答案 2 :(得分:0)

我通过单击关闭按钮的坐标解决了这个问题。

签出this answer。我展示了如何单击那里的小“ x”,而无需知道实际按钮的名称。例如,有时有时更容易找到图像的类别。

最坏的情况是,找到最接近按钮的元素,并将最后一个方法更改为move_to_element_with_offset(element,x, y) ,从找到的元素转到屏幕上按钮的坐标。

一旦这样做,覆盖层就会消失,您可以正常单击。