09-appium-等待activity-Android

简介: 09-appium-等待activity-Android

前言

  • 在Android端app自动化过程中,可以等待某个页面activity出现后操作,避免使用固定的等待时间,可有效节省时间。

wait_activity方法介绍

1. def wait_activity(self: T, activity: str, timeout: int, interval: int = 1) -> bool:
2. """等待一个活动:阻塞直到目标活动出现或超时.
3. 
4.         这是一个android专属的方法.
5. 
6.         Args:
7.             activity: 等待的页面activity
8.             timeout: 最大等待时间,单位为秒
9.             interval: 重试间隔时间,单位为秒
10. 
11.         Returns:
12.             如果显示了目标activity,则为True
13.         """
14. try:
15.             WebDriverWait(self, timeout, interval).until(lambda d: d.current_activity == activity)
16. return True
17. except TimeoutException:
18. return False

wait_activity方法使用

1. # -*- coding: utf-8 -*-
2. # @Time    : 2021/5/1
3. # @Author  : 大海
4. from appium import webdriver
5. 
6. desired_capabilities = {
7. "platformName": "Android", 
8. "deviceName": "127.0.0.1:62001",  # adb devices 查看,这里使用的是夜神模拟器
9. "platformVersion": "7.1.2",
10. "appPackage": "com.jingdong.app.mall",  # 京东app
11. "appActivity": ".main.MainActivity"
12. 
13. }
14. 
15. driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_capabilities=desired_capabilities)
16. driver.implicitly_wait(10)
17. 
18. # 打印当前的activity
19. print(driver.current_activity)
20. # 打印当前的包名
21. print(driver.current_package)
22. # 等待activity,超时时长为10s
23. flag = driver.wait_activity('.main.MainActivity', 10)
24. print(flag)
25. # 点击同意
26. driver.find_element_by_id('com.jingdong.app.mall:id/bqd').click()
27. # 点击家具厨具
28. driver.find_element_by_id('com.jingdong.app.mall:id/ic').click()
29. 
30. # driver.quit()
相关文章
|
6月前
|
数据采集 Java 开发工具
一文2500字从0到1教你搭建Android自动化python+appium环境
一文2500字从0到1教你搭建Android自动化python+appium环境
一文2500字从0到1教你搭建Android自动化python+appium环境
|
Android开发
11-appium-滑动元素到视图中-Android
11-appium-滑动元素到视图中-Android
|
开发工具 Android开发
06-appium-uiautomatorviewer使用-Android
06-appium-uiautomatorviewer使用-Android
|
开发工具 Android开发 开发者
Appium 移动端自动化 - Android SDK连接安卓手机,adb连接一加8手机USB调试实例演示,连接一加8手机不显示USB调试选项问题排查
Appium 移动端自动化 - Android SDK连接安卓手机,adb连接一加8手机USB调试实例演示,连接一加8手机不显示USB调试选项问题排查
485 0
|
开发工具 Android开发
Appium 移动端自动化 - Android SDK的安装与配置,使用安卓SDK连接手机实例演示
Appium 移动端自动化 - Android SDK的安装与配置,使用安卓SDK连接手机实例演示
181 0
|
安全 测试技术 Android开发
Win10系统下基于Docker构建Appium容器连接Android模拟器Genymotion完成移动端Python自动化测试
Python自动化,大概也许或者是今年最具热度的话题之一了。七月流火,招聘市场上对于Python自动化的追捧热度仍未消减,那么Python自动化到底能帮我们做些什么呢? 第一,Python自动化可以避免熟练工种的重复工作,对于功能相对完整和成熟的软件,每发布一个新的版本,无论是大版本还是小版本,其中大部分功能和界面都几乎和上一个版本相似或完全相同,但所谓向上兼容,你不能因为新功能的产生而不对老版本功能进行测试工作,而这些老功能又在上一个版本上线时测过,所以这部分功能特别适合于自动化测试,从而可以让测试达到测试每个特征的目的。
Win10系统下基于Docker构建Appium容器连接Android模拟器Genymotion完成移动端Python自动化测试
|
jenkins Linux Shell
软件测试|一键搞定centos7的docker+selenium+appium+jenkins+android_app源码打包成apk的环境搭建
软件测试|一键搞定centos7的docker+selenium+appium+jenkins+android_app源码打包成apk的环境搭建
171 0
|
编解码 测试技术 开发工具
Python+Appium自动化测试(15)-使用Android模拟器(详细)(一)
做APP的UI自动化测试时,我们往往会使用真机跑自动化测试脚本,因为这样才是最真实的使用场景。但前期调试脚本的话,可以先使用模拟器,这样相对更加方便。 不推荐使用Android SDK里自带模拟器,太卡。 这里介绍两款我正在用于做自动化测试的模拟器:Genymotion 与 夜神模拟器。
Python+Appium自动化测试(15)-使用Android模拟器(详细)(一)
|
开发工具 Android开发
Appium问题解决方案(7)- Could not find 'adb.exe' in PATH. Please set the ANDROID_HOME environment variable with the Android SDK root directory path
Appium问题解决方案(7)- Could not find 'adb.exe' in PATH. Please set the ANDROID_HOME environment variable with the Android SDK root directory path
548 0
Appium问题解决方案(7)- Could not find 'adb.exe' in PATH. Please set the ANDROID_HOME environment variable with the Android SDK root directory path