我们都面临着需要等待加载到移动应用程序中的情况。 Thread.sleep() 但不建议使用此方法,因为我们可以预测确切的等待时间。 鸦片提供了隐式等待和显式等待功能。当我们知道确切的等待时间时,可以使用隐式等待;当我们不知道确切的等待时间时,可以使用显式等待,但是我们需要等到任何移动元素可见为止。
在这篇文章中,我们将看到两种在Appium中广泛使用的等待类型:
视频 -
1,隐含的等待
1,隐性等待
隐式等待意味着通知appium Web驱动程序等待特定的
时间量,以及等待后Web元素是否不可见
该特定点然后抛出“未找到此类元素异常”。
查看下面给出的示例以了解如何使用隐式等待
在Appium测试用例中。在下面的测试用例中,我们将等待30
打开浏览器后的几秒钟,以便加载页面
由于我们隐式指定了时间和时间单位,因此这是
称为隐式等待。
方法 隐式地等待() 接受2个参数,第一个是时间值,第二个是时间单位,例如天,小时,分钟,秒,毫秒等。
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
2.明确等待-
在明确等待以及等待时间中,我们还提供等待
健康)状况。它将等到条件或最大等待时间
在引发异常之前提供”ElementNotVisibleException”。
可以说,显式等待是智能等待,因为它等待
动态地针对指定条件。查看以下测试案例
使用Appium Explicit等待的示例。首先,我们需要实例化
WebDriverWait Web驱动程序参考和时间范围内的等待对象
seconds.
然后我们可以使用 直到() 传递预期等待的方法
调整条件并在我们的测试用例中使用它,直到元素变为
在屏幕上可见。这里我们正在使用 visibleofElementLocated() 条件
找出其他条件,在Eclipse IDE中输入ExpectedConditions
然后按cltr +空格键,您将获得条件列表
您可以在“显式等待”中使用。
WebDriverWait wait = new WebDriverWait(driver,20); wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("about_me")));
这样,您就可以摆脱由于等待问题导致的测试用例失败。
希望这篇文章对您有所帮助。在Facebook或Google Plus上让我休闲,以获得最新的帖子更新。测试愉快。
感谢您在Appium上的所有帖子:)非常感谢
回复删除感谢您阅读。许多即将在Appium上发布的帖子。通过Facebook和Google+保持联系
删除这两个隐式等待和显式等待都可以用于本机应用程序吗?可以一起使用吗?当我已经在@beforeClass设置隐式等待时,可以在其他@test中使用显式等待吗?那么哪个优先呢?
回复删除回答你两个问题是"YES"您可以将其用于本机应用程序,也可以同时使用两种类型的等待。
删除感谢造访 ,
阿努加
明确的等待对我来说没有用
回复删除当Selenium脚本尝试查找不可见或不可交互的对象/元素时,隐式等待告诉WebDriver或Selenium脚本在一定时间内轮询DOM。
回复删除xplicit wait告诉WebDriver在某些预期条件的基础上等待一段时间,然后再抛出“ElementNotVisibleException”例外,显式等待是仅适用于指定元素的特定等待。显式等待比隐式等待具有更好的灵活性。
有关最佳示例链接的详细信息:
http://www.qamantra.com/2018/01/how-to-use-explicit-and-implicit-wait.html
你好
回复删除我正在面对wait.until(ExpectedConditions.elementToBeClickable(by))的问题;
我的功能定义为
公共静态MobileElement waitForMobileElementToBeClickable(by by){
尝试{
返回(MobileElement)wait.until(ExpectedConditions.elementToBeClickable(by));
}
catch(NoSuchElementException nse){
System.out.println("找不到这样的元素!");
返回null;
}
catch(TimeoutException toe){
System.out.println("超时异常警告!");
返回null;
}
}
我得到的错误是这个
警告:findElement抛出WebDriverException(By.name:登录设置)
[testng] org.openqa.selenium.WebDriverException:无法将返回值转换为WebElement:{ELEMENT = CAE0CBA1-8A14-4BBA-86BA-EBAF83895B41}
应该使用什么字符串代替"about me"
回复删除感谢您的信息。很有帮助。我如何关注您的更多工作?
回复删除网站设计服务
回复删除SEO服务顾问
音乐歌词
我们提供最好的冰箱维修服务。
回复删除法里达巴德洗衣机维修
LG洗衣机维修法里达巴德
博里洗衣机维修中心在法里达巴德
惠而浦洗衣机维修中心在法里达巴德
法里达巴德三星洗衣机维修
诺伊达的洗衣机维修
诺伊达哥德雷洗衣机维修
诺伊达的漩涡洗衣机维修
诺伊达的IFB洗衣机维修
诺伊达LG洗衣机维修
我真的很喜欢阅读您的文章。我想告诉您,您中有像我这样的人,对您的工作表示赞赏。
回复删除techwithgeeks
故事嗡嗡声
奇才
很棒的帖子!我个人喜欢您的网站。 。阅读您的内容给我留下了深刻的印象。我期待您博客中的下一个有价值的信息性概念。总体优秀职位。继续:)做得好!
回复删除准备修理
家电维修
交流维修和服务
燃气灶维修
笔记本维修
我们的服务合作伙伴:
孟买应召女郎
护送服务在德里
在线B2B市场
萨塔·金(Satta King)
非常好的信息,它对很多人来说都是有价值的和有用的。感谢您分享此博客。
回复删除B2B市场
批发商
我们的服务合作伙伴
冰箱维修服务
萨塔·金(Satta King)
孟买应召女郎
数码营销公司
我很佩服。我不't think I'我遇到了像您一样对这一主题了解甚多的人。您的消息灵通,非常聪明。您写了一些人们可以理解的东西,并使每个人都对它感兴趣。真的,您的博客很棒。
回复删除B2B市场
批发商
我们的服务合作伙伴
冰箱维修服务
萨塔·金(Satta King)
孟买应召女郎
在线购买杂草
回复删除在线购买伊博加因
在线购买XANAX
在线购买DANK VAPE
在线购买可卡因
在线购买LSD
在线购买蓝色梦幻梦汽镜
在线购买Moonrocks
在线购买卡芬太尼
在线购买IBOGAINE HCL
购买 最好的狗Kigurumi 优惠10%
回复删除