• selenium2等待元素加载


    1.硬性等待

    Thread.sleep(8000);

    所谓的硬性等待就是,执行完相应操作就等待我设置的8s。无论网速快与慢,网速快的话,也许5s就打开网页了,可是程序必须接着等待剩下的3秒。

    网速慢的话,也许8s之内没有打开,此时执行下一步操作,会由于找不到元素,而fail case,所以非必要情况下,不要使用此等待方法。

    2.智能等待

    public void waitForElementToLoad(int timeOut, final By By) {

      try {

        (new WebDriverWait(driver, timeOut)).until(new ExpectedCondition<Boolean>() {
          public Boolean apply(WebDriver driver) {
            WebElement element = driver.findElement(By);
            return element.isDisplayed();
          }
        });
      } catch (TimeoutException e) {

      Assert.fail("超时!! " + timeOut + " 秒之后还没找到元素 [" + By + "]",e);
      }
    }

    此方法有两个参数,timeOut是等待元素的超时时间,就是说过了这个时间如果元素还没加载出来就报错。By对象,这个是你元素的定位方式比如By.id(“login”);
    这个方法会在给定timeOut去查找元素,如果在小于timeOut的时间内找到了元素,剩下的时间不在等待,直接执行接下来的操作。假如在规定的timeout时间内还没有找到元素,则会fail case,同时打印“超时!! * 秒之后还没找到元素 *”

    3.设置等待页面加载完毕

    由于网络原因或者电脑反应速度原因,想等待网页加载完毕之后再执行点击操作,所以:

    int pageLoadTime = 10;
    driver.manage().timeouts().pageLoadTimeout(pageLoadTime, TimeUnit.SECONDS);
    这段代码,加载driver.get(url)方法之前,他们等待你给定的时间,如果在给定时间内网页还是没有加载出来就会报错,如果在小于给定时间内加载完毕了,剩下的时间不再等待。

  • 相关阅读:
    SAP MM模块教程(1)— 概述
    CodeSmith Generator
    EasyUI 左侧 tree 右侧 DataGrid模板
    C# 数据库访问公共类
    Easyui datagrid toolbar 模板
    EasyUI combogrid 更新查询参数 queryParams 重新加载
    Jenkins的搭建与使用
    Idea2020激活,全网最新教程(各版本通用),亲测2089!!!
    阿里云盘开启“个人云种子用户报名
    尚硅谷Java互联网大厂面试题第三季,1024干货
  • 原文地址:https://www.cnblogs.com/yajing-zh/p/5076713.html
Copyright © 2020-2023  润新知