对于点击后需要等待一段时间才会有的元素的操作
这几天在写自动化的过程中遇见了需要先点击其他,然后需要等待一会的元素。昨天试了好几种方法都没成功。一开始使用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 }