Appium自动化测试第七篇Appium的三种等待方式

在做Appium自动化测试时会遇到页面元素加载问题,因为在查找页面元素时,如果遇到页面元素还没有加载出来,就会抛出查找不到元素的异常,这样极大影响我们的测试进度。在面对这种情况下需要找到解决的方法,使页面加载完成查找到我们需要的元素。这里就要介绍下Appium的三种等待机制,用于解决页面元素加载问题。

Appium三种等待方式分别是:强制等待,显式等待,隐式等待

sleep()强制性等待

    使用方式 Thread.sleep(10);

     学习过线程知识都知道,使用Thread.sleep(10);表示休眠指定时间,这段时间内什么都不做,就是纯粹等待
     不推荐使用此方式,浪费时间,如果每个请求都要等待,那么运行一个测试用例需要的时间无疑是太过漫长

implicitlyWait隐式等待

使用方式 driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);这个方法是得不到某个元素就等待一段时间,直到拿到某个元素位置,超出设定时间后会抛出异常
  一旦设置里隐式等待,则它将存在整个WebDriver对象实例声明周期内,在使用隐式等待的时候,实际上浏览器会在你自己设定的时间内部断的刷新页面去寻找我们需要的元素

当脚本执行到某个元素定位是,如果元素可以定位,则继续执行,如果元素定位不到,则它将以轮询的方式不断地判断元素是否被定位到

WebDriverWait显式等待

使用方式   (new WebDriverWait(driver,6))
                .until(ExpectedConditions.presenceOfElementLocated( By by)).click();

显示等待,就是明确的要等到某个元素的出现或者是某个元素的可点击等条件,等不到,就一直等,除非在规定的时间之内都没找到,那么久跳出Exception
使用ExpectedConditions.presenceOfElementLocated查找需要的元素,使用显示等待不需要页面全部加载出来,只要期待的元素加载出来即可

  public void Sleep(long time) {
	   try {
		Thread.sleep(time);
	} catch (InterruptedException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
   }
   
   public void WaitElement(WebDriver driver,String xpath) {
	  WebDriverWait webDriverWait =new WebDriverWait(driver, 10);
	  webDriverWait.until(ExpectedConditions.presenceOfElementLocated(By.xpath(xpath)));
   }
   
   public void WaitElement(WebDriver driver,By by) {
		  WebDriverWait webDriverWait =new WebDriverWait(driver, 10);
		  webDriverWait.until(ExpectedConditions.presenceOfElementLocated(by));
  }


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员路同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值