对于点击后需要等待一段时间才会有的元素的操作

这几天在写自动化的过程中遇见了需要先点击其他,然后需要等待一会的元素。昨天试了好几种方法都没成功。一开始使用isdispaly()方法,但一直报错。

就是这个样子。后来我在sleep的下一行打印了i,发现其实在if的时候程序已经退出。好吧,改成先等待30s(隐式等待跟显式都使用了),还是不行。

 

好了 ,废话到此。上解方法。

首先,编写一个检查元素是否存在的函数。这个竟然存在我的工程中。真是前人种树后人乘凉。 或者参考这个网页。http://uniquepig.iteye.com/blog/1703553

public static boolean isElementExsit(WebDriver driver,By selector) { 
            boolean result=false;
            try {  
                driver.findElement(selector);
                result=true;
            } 
                catch (Exception ex) {
                logger.error(ex.getMessage());
                result=false;
            } 
            return result;
        }

然后愉快的写一个for循环就好了。

 1     for (int i = 0; i < 30; i++) {
 2         String a="/html/body/div[1]//p";
 3         boolean flag=isElementExsit(driver, By.xpath(a));
 4         logger.log(""+flag);//打印是否发现元素
 5         if (flag) {
 6             String re = driver.findElement(By.xpath(a)).getText();
 7             break;
 8             
 9         }
10         Sleeper.sleep(1);
11     }

 

posted @ 2016-12-28 15:37  两只老虎111  阅读(310)  评论(0编辑  收藏  举报