UI自动化编写测试脚本的几种等待时间方法

背景:

为了提高脚本的稳定性,我们需要在脚本中增加等待时间,比如到某个指定页面,要等待页面完全加载出来后,才能找到页面上我们想要的元素,尽可能避免 元素找不到情况;

三种等待方式介绍

强制等待

Thread.sleep(3000);

// eg:
public static native void sleep(long millis) throws InterruptedException;

最最最最容易 ,被大家常用的一种等待方法,但不推荐:

1.固定休眠时间设置,Java的Thread类里提供了休眠方法sleep,导入包后就能使用;

2.时间以毫秒 为单位;

3.以上执行到此时 不管什么线程就固定的等待三秒之后再接着执行后面的操作;

4.作用范围:仅作用于当前方法,当前操作之后休眠,一般在隐士等待和显示等待都不起作用时使用;

隐式等待(全局隐式等待)

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

// eg:
WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

AndroidDriver androidDriver=null;
androidDriver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);

在这里插入图片描述
//源码 selenium框架对外提供的接口,如下:

public interface Timeouts {
   
    WebDriver.Timeouts implicitlyWait(long var1, TimeUnit var3);

    WebDriver.Timeouts setScriptTimeout(long var1, TimeUnit var3);

    WebDriver.Timeouts pageLoadTimeout(long var1, TimeUnit var3);
}

推荐使用的一种等待方法之一:

1.implicitlyWait()方法比sleep()方法智能,sleep()方法只能在一个固定的时间等待,而implicitlyWait()可以在一个时间范围内等待;

2.implicitlyWait()方法,两个参数:一个接受时间,第二个接受时间度量也就是时间单位,
可以设定查找页面元素的最大等待时间,调用findElement()时没有立刻定位到该元素,则程序会每间隔一段时间 轮询查找( 默认是 0.5s)尝试判断页面DOM中是否存在该元素,设定时间内找到则继续向下执行,若超过设定等待时长(eg:全局的等待10s)还没找到,抛出NoSuchElementException;

3.作用范围: 作用于全局 针对执行脚本的所有对象 driver对象整个生命周期内,即只要设置一次,后面不需要再设置 &#x

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值