Selenium关于等待页面元素加载的解决方案

方法1:限定时间内等待元素,超时则抛出异常

public WebElement waitfor(final By by, int timeout) {
                 WebElement element = null;                 
                 WebDriverWait wait = new WebDriverWait(driver, timeout);
                 try { 
                        element = wait.until((new Function<WebDriver, WebElement>() { //util 方法 判断特定条件是否存在
                            public WebElement apply(WebDriver webDriver) { //目标元素查找
                                    WebElement wElement = webDriver.findElement(by);
                                if (wElement != null) {
                                    return wElement;
                                }
                                return null;
                            }
                        }));
                } catch (Exception e) {
                        System.out.println("Couldn't find the element - " + by);
                }
                return element;
        }

方法2:重载方法1,加入检查次数,即一次timeout不成功再进行一次

public WebElement waitfor(final By by, int checkTimes, int timeout) {
                int i=0;
                WebElement element = null;
                 do{
                         i++;
                         element = waitfor(by, timeout);
                         try {
                                Thread.sleep(timeout);
                        } catch (InterruptedException e) {
                        }
                 }while(element==null | i<=checkTimes);
                 return element;
        }

 

转载于:https://my.oschina.net/jimmylee216/blog/827915

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值