python+appium
目录
一、环境搭建
1、安装JDK(1.8.0)并配置环境
2、安装Andorid SDK(建议使用29版本)
3、安装NodeJs
4、安装appium
5、安装appium-python-client
二、连接
1、adb连接设备
2、开启Appium Server
3、 python脚本
三、API Documentation - Appium
1、app
2、元素
3、交互
一、环境搭建
1、安装JDK(1.8.0)并配置环境
1、下载
下载JDK文件,点击运行安装
2、配置环境变量
(1)新建一个名为JAVA_HOME的环境变量,变量值为JDK的安装路径
(2)将%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin添加到path中
(3)新建一个名为classpath的环境变量,变量值为:
%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
3、验证cmd窗口中输入java -version
2、安装Andorid SDK(建议使用29版本)
1、下载
下载Andorid SDK文件,点击进行安装
2、安装相关工具(默认前三个)双击Andorid SDK Manager,选择前三个tools点击安装
3、配置环境变量
(1)新建ANDROID_HOME变量,变量值为Andorid SDK的路径
(2)将%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools添加到path中
4、验证cmd窗口中输入adb,出现版本号则说明安装成功
3、安装NodeJs
1、下载
下载NodeJS文件,点击进行安装
2、配置环境变量自动
3、验证
cmd窗口中输入node -v,npm -v
4、安装appium
1、下载
下载appium-desktop文件,点击进行安装
2、配置环境变量
5、安装appium-python-client
1、pip install -U appium-python-client
二、连接
1、adb连接设备
1、打开手机或模拟器开发者模式
2、win+r打开cmd
3、adb connect 127.0.0.1:21503
4、adb devices -l
5、adb shell dumpsys window |findstr mCurrent
2、开启Appium Server
{"deviceName": "127.0.0.1:62001","appPackage": "com.android.launcher3","appActivity": "com.android.launcher3.launcher3.Launcher","platformName": "Android","noReset": true }
3、 python脚本
from appium import webdriver
from appium.webdriver.common.appiumby import AppiumBy
from appium.webdriver.common.touch_action import TouchAction
import timedesired_caps = {"deviceName": "127.0.0.1:62001","appPackage": "com.hypergryph.arknights","appActivity": "com.u8.sdk.U8UnityContext","platformName": "Android","noReset": True,"newCommandTimeout": 600
}driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
actions = TouchAction(driver)
# start、开始唤醒、取得神经连接
time.sleep(30)
actions.tap(x=635, y=515).perform()
time.sleep(15)
actions.tap(x=635, y=515).perform()
time.sleep(40)
# 签到
actions.tap(x=591, y=591).perform()
time.sleep(5)
# 关闭签到
actions.tap(x=1216, y=79).perform()
time.sleep(5)
# 关闭公告
actions.tap(x=1236, y=74).perform()
time.sleep(5)
# 点击当前
actions.tap(x=929, y=220).perform()
time.sleep(5)
# 点击前往上一次作战
actions.tap(x=1137, y=602).perform()
time.sleep(10)
# 循环刷取关卡
for i in range(2):actions.tap(x=1144, y=671).perform()time.sleep(10)actions.tap(x=1103, y=604).perform()time.sleep(180)actions.tap(x=1137, y=602).perform()time.sleep(15)driver.quit()
三、API Documentation - Appium
1、app
# 安装
driver.install_app('/Users/johndoe/path/to/app.apk')
# 是否已安装
driver.is_app_installed('com.example.AppName')
# 启动
driver.launch_app()
# 后台应用程序
driver.background_app(10)
# 关闭应用程序
driver.close_app()
# 重启应用程序
driver.reset()
# 删除应用程序
driver.remove_app('com.example.AppName')
# 激活应用程序
driver.activate_app('com.apple.Preferences')
driver.activate_app('io.appium.android.apis')
# 终止程序
driver.terminate_app('com.apple.Preferences')
driver.terminate_app('io.appium.android.apis')
# 获取应用状态
driver.query_app_state('com.apple.Preferences')
driver.query_app_state('io.appium.android.apis')
# 得到应用的字符串
appStrings = driver.app_strings("en", "/path/to/file")
# 结束测试覆盖率
driver.end_test_coverage("Intent", "/path")
2、元素
# 查找元素
driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value="SomeAccessibilityID")
driver.find_elements(AppiumBy.ACCESSIBILITY_ID,'SomeAccessibilityID')
# 行为
el = driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value='SomeId')
el.click()
el.send_keys('Hello world!')
el.clear()
# 元素
el = self.driver.find_element_by_accessibility_id('SomeAccessibilityID')
el.text
el.tag_name
el.get_attribute('content-desc')
el.is_selected()
el.is_enabled()
el.is_displayed()
el.location
el.size
3、交互
from appium.webdriver.common.touch_action import TouchAction
# ...
actions = TouchAction(driver)# 单次点击
actions.tap(element)
# 双击
actions.double_tap(element)
# 移动
actions.tap_and_hold(element)
actions.move_to(element, 50, 50)
# 向下触摸
actions.tap_and_hold(element)
actions.move(50, 50)
# 向上触摸
actions.tap_and_hold(element)
actions.release(50, 50)
# 长按
actions.long_press(element)
# 滚动
actions.scroll_from_element(element, 10, 100)
actions.scroll(10, 100)
# 使用手指运动事件在触摸屏上轻拂
actions.flick_element(element, 1, 10, 10)
# 触摸执行
actions.tap_and_hold(20, 20)
actions.move_to(10, 100)
actions.release()actions.perform()
python+appium相关推荐
- Python+Appium自动化测试之toast定位
目录 一. 前言 二. 环境 三. toast定位准备与定位方法 1. 准备 2. 定位方法 四. 示例代码 一. 前言 在app自动化测试的过程中经常会遇到需要对toast进行定位,最常见的就是定位 ...
- 安卓模拟器运行python_利用python+Appium 之 如何在设备(模拟器)上自动安装并启动APP...
大家都知道,要测试模拟用户在手机端安装一个APP, 首先会考虑到,在什么设备下安装,设备版本是啥,设备名称是啥,我要安装啥APP.安装完毕以后我要启动和登录APP. 那如何利用python + app ...
- python写appium_案例分享,Python +appium做登录功能
原标题:案例分享,Python +appium做登录功能 Appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,同时又是一个跨平台的工具:它允许测试人员在不同 ...
- Python + Appium 环境搭建
---恢复内容开始--- Appium自动化公司内部测试培训1-环境搭建 课程目的 一.Python + Appium 环境搭建 课程内容 1 安装前准备工作 搭建环境所需要的安装文件已经下载好 ...
- Python Appium 元素定位方法简单介绍
Python Appium 元素定位 常用的八种定位方法(与selenium通用) id定位 name定位 Xpath定位 如下图,使用 uiautomatorviewer.bat 获取页面元素 ...
- python appium连接安卓真机测试
Mac已配好Appium环境 (安装Appium Desktop 和安装python appium测试库Appium-python-client) 1.安卓真机 (1)用usb线将安卓设备连接电脑,在 ...
- Python+appium+GUI界面pyside2微信自动加好友(改问候语、备注、标签)
目录 一.项目背景 二.实现功能 三.具体实现代码 四.支持与合作 一.项目背景 首先,这是我的第一篇文章,写作功底有待提高,后续有时间我会对代码细节的讲解进行完善. 闲暇中,帮助朋友的初创公司开发了 ...
- python图片比对、自动化测试_基于python+appium通过图片对比来做的UI自动化
1.python + appium +图片对比实现UI自动化: 背景: 当手机需要适配不同的语言时,测试过程中易出现因为语言不熟悉,导致UIbug被遗漏(例如setting中的描述性文字显示不完整等等 ...
- 【Appium】Python+Appium实现支付宝蚂蚁森林自动收取能量的一种解决方案
代码有更新,适配新版支付宝,参见最新文章: [Appium][更新]Python+Appium实现支付宝蚂蚁森林自动收取能量 一.环境准备 首先,你需要一个能够运行代码的环境,这里包括: Node.j ...
- Appium+Python appium启动夜神模拟器定位元素(三)
① 目的 使用appium启动夜神模拟器定位元素 ② 环境 Python+Appium+Android模拟器 ③配置启动项 1.platformName:Android //设备型号 2.platfo ...
最新文章
- 谷歌公布十大恶意网站 均曾攻击上万网站
- int整数型转换char*字符串
- SIFT特征及特征匹配:SIFT and feature matching
- 高并发架构系列:MQ消息队列的12点核心原理总结
- 在已有SQL 2005 Server 群集中添加节点
- knn k的选取_KNN - 初窥K近邻算法
- ipv4地址是几位二进制数_知识点| ip地址详解,小学生都看的懂
- Linux 常见问题 1000 个详细解答
- 贪心算法——洛谷(P1106)删数问题
- python2中range和xrange的区别
- 尼尔机械纪元机器人驱动_中国的工业机器人发展到了哪一步?
- 没有弃用 Sun 拥抱 HP/Linux,亚马逊或已倒闭!
- 2019.7.5刷题统计
- 基于html的美食网站——速鲜站餐饮食品(HTML+CSS+JavaScript)大学生网页制作教程 表格布局网页模板 学生HTML静态美食网页设计作业成品 简单网页制作代码 学生美食网页作品
- 【收藏】40 个学术网站,满足科研文献需求!
- CUDA开源 轻松跑AMD GPU/Intel x86 CPU
- 2021-2027全球与中国气溶胶检测器市场现状及未来发展趋势
- 解决pip-script.py文件不存在的问题
- python画爱心的代码怎么运行_怎么用python实现画爱心
- Iris Network Traffic Analyzer简易教程
热门文章
- DeFi 需要什么才能成为主流?
- Caused by: java.lang.IllegalArgumentException: Invalid <url-pattern> [url] in servlet mapping
- hpuoj1691 CZY追女孩
- 【力扣】172. 阶乘后的零
- 用sqlserver查询数据的所有表名和行数找到餐饮管理软件菜品表名Course
- Java踩坑笔记 —— base64转换为图片后图片显示不全
- 机器人与自动化:挑战和机遇
- 物联网卡使用在手机上有哪些影响
- Arduino提高篇12—双轴按键摇杆
- python爬虫爬取百度贴吧图片,requests方法