zoukankan      html  css  js  c++  java
  • 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)方法之前,他们等待你给定的时间,如果在给定时间内网页还是没有加载出来就会报错,如果在小于给定时间内加载完毕了,剩下的时间不再等待。

  • 相关阅读:
    脾肾两虚怎么调理
    代码签名SSL OV EV推荐购买网站,很便宜
    揭秘井井有条的流水线(ZooKeeper 原理篇)
    被收费绘图工具 PUA 了怎么办?来看看这个老实工具吧
    初窥 Python 的 import 机制
    坐下坐下,基本操作(ZooKeeper 操作篇)
    区块链在教育行业的落地应用现状介绍
    区块链改变教育的N种方式
    区块链在教育中的8个应用实例
    区块链+教育:重新定义人才?
  • 原文地址:https://www.cnblogs.com/yajing-zh/p/5076713.html
Copyright © 2011-2022 走看看