移动自动化测试入门示例
前置:必须启动appium服务、模拟器。
from appium import webdriver
# 定义字典变量
desired_caps = {}
# 字典追加启动参数
desired_caps["platformName"] = "Android"
# 注意:版本号必须正确
desired_caps["platformVersion"] = "7.1.1"
# android不检测内容,但是不能为空
desired_caps["deviceName"] = "192.168.56.101:5555"
desired_caps["appPackage"] = "com.android.settings"
desired_caps["appActivity"] = ".Settings"
# 设置中⽂
desired_caps["nicodeKeyboard"] = True
desired_caps["resetKeyboard"] = True
# 获取driver
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
基础Api
1.启动应用、应用跳转
⽅法:
说明:appium⽀持夸应⽤,可以在操作应⽤中切换到B应⽤。
2.获取包名和界面名
当前应⽤包名:
当前应⽤启动名:
"""
需求:
1、启动设置后,暂停3秒,打开短信应⽤
2、打印当前默认应⽤包名启动名
"""
sleep(3)
# 启动短信
driver.start_activity("com.android.messaging",".ui.conversationlist.Conversati
onListActivity")
# 打印包名和启动名
print("当前所在应⽤包名:",driver.current_package)
print("当前所在应⽤启动名:",driver.current_activity)
driver.quit()
3.其它基础API
"""
需求:
1、判断百年奥莱是否安装,如果安装进⾏卸载,否则安装
2、启动设置界⾯
3、置于后台3秒钟
4、关闭设置界⾯
5、关闭app驱动
"""
# 判断百年奥莱是否安装
if driver.is_app_installed("com.yunmall.lc"):
print("百年奥莱app已存在正在卸载...")
# 卸载
driver.remove_app("com.yunmall.lc")
print("卸载百年奥莱app成功!")
else:
print("百年奥莱不存在,正在安装...")
# 安装
driver.install_app("/Users/lgy/PycharmProjects/lgy/bj37-web01/day07-
appium01//bainianaolaitemai_115.apk")
print("安装百年奥莱app成功!")
sleep(3)
# 启动设置界⾯
print("启动设置界⾯...")
driver.start_activity("com.android.settings",".Settings")
sleep(3)
print("设置应⽤置于后台3秒钟...")
# 置于后台3秒
driver.background_app(3)
print("关闭设置app...")
# 关闭设置
driver.close_app()
print("获取关闭后的app报名")
print("关闭设置app,后获取包名:",driver.current_package)
sleep(3)
print("退出driver驱动")
driver.quit()
元素定位
通过UiAutoMatorViewer可以获取到元素信息,appium提供根据这些信息找到具体元素方法。与selenium的8种定位方式一样,
示例:我们要关闭应用中的弹窗。
1.先找到元素id。
2.定位元素语句如下:
driver.find_element(AppiumBy.ID,'com.android.flysilkworm:id/close_dialog').click()
元素操作
- 模拟点击:element.click()
- 模拟输入:element.send_keys(value)
- 清除文本:element.clear()
- 获取属性:element.get_attribute()
- 判断是否被选中:element.is_selected()
- 判断是否显示:element.is_displayed()
- 判断是否可用:element.is_enabled()
- 获取文本:element.text
- 获取位置:element.location
- 获取大小:element.size
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END