2016-01-20 63 views
0

我正在使用Selenium和Java编写测试。我使用ExpectedConditions.elementToBeClickable来点击网页元素,但有时它们被其他人所覆盖,并且如您所知ExpectedConditions.elementToBeClickable只检查元素是否已启用且可见,那么是否有任何方法检查它是否被覆盖?
顺便说一下,我不希望使用类似代码:检查web元素是否被覆盖的单一方法

 try{ 
     //click on the element 
     } 
    catch(Exception e) 
     {//it's covered 
     } 

我要寻找类似:因为有时候比如我要检查整个窗口的覆盖

blabla.isCovered(); 

或不。

回答

0

如果你不想使用这种类型的代码,也许你应该添加额外的逻辑到你的checkifClickable方法,而不仅仅是启用和可见。虽然,我敢打赌,你真正的问题更多的是“如何检查这些条件,禁止我点击,这可能不会从DOM提供的信息中显而易见”。

这使得自动化比人们意识到更困难,因为您必须对该网站有详细的了解。它是由于逻辑或条件而弹出的元素吗?那么解决办法就是关闭它。这是渲染问题的解决方案吗?然后调整窗口大小。没有一种真正的治愈方法,你必须调整自动化逻辑以适应你正在工作的网站。

你不想点击并知道以前?

如果您特别只是不想使用Try,那么在您单击后设置一个属性更改的断言,然后设置一个布尔值。