目录

一、环境搭建

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相关推荐

  1. Python+Appium自动化测试之toast定位

    目录 一. 前言 二. 环境 三. toast定位准备与定位方法 1. 准备 2. 定位方法 四. 示例代码 一. 前言 在app自动化测试的过程中经常会遇到需要对toast进行定位,最常见的就是定位 ...

  2. 安卓模拟器运行python_利用python+Appium 之 如何在设备(模拟器)上自动安装并启动APP...

    大家都知道,要测试模拟用户在手机端安装一个APP, 首先会考虑到,在什么设备下安装,设备版本是啥,设备名称是啥,我要安装啥APP.安装完毕以后我要启动和登录APP. 那如何利用python + app ...

  3. python写appium_案例分享,Python +appium做登录功能

    原标题:案例分享,Python +appium做登录功能 Appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,同时又是一个跨平台的工具:它允许测试人员在不同 ...

  4. Python + Appium 环境搭建

    ---恢复内容开始--- Appium自动化公司内部测试培训1-环境搭建 课程目的 一.Python + Appium 环境搭建 课程内容 1    安装前准备工作 搭建环境所需要的安装文件已经下载好 ...

  5. Python Appium 元素定位方法简单介绍

    Python  Appium  元素定位 常用的八种定位方法(与selenium通用) id定位 name定位 Xpath定位 如下图,使用 uiautomatorviewer.bat 获取页面元素 ...

  6. python appium连接安卓真机测试

    Mac已配好Appium环境 (安装Appium Desktop 和安装python appium测试库Appium-python-client) 1.安卓真机 (1)用usb线将安卓设备连接电脑,在 ...

  7. Python+appium+GUI界面pyside2微信自动加好友(改问候语、备注、标签)

    目录 一.项目背景 二.实现功能 三.具体实现代码 四.支持与合作 一.项目背景 首先,这是我的第一篇文章,写作功底有待提高,后续有时间我会对代码细节的讲解进行完善. 闲暇中,帮助朋友的初创公司开发了 ...

  8. python图片比对、自动化测试_基于python+appium通过图片对比来做的UI自动化

    1.python + appium +图片对比实现UI自动化: 背景: 当手机需要适配不同的语言时,测试过程中易出现因为语言不熟悉,导致UIbug被遗漏(例如setting中的描述性文字显示不完整等等 ...

  9. 【Appium】Python+Appium实现支付宝蚂蚁森林自动收取能量的一种解决方案

    代码有更新,适配新版支付宝,参见最新文章: [Appium][更新]Python+Appium实现支付宝蚂蚁森林自动收取能量 一.环境准备 首先,你需要一个能够运行代码的环境,这里包括: Node.j ...

  10. Appium+Python appium启动夜神模拟器定位元素(三)

    ① 目的 使用appium启动夜神模拟器定位元素 ② 环境 Python+Appium+Android模拟器 ③配置启动项 1.platformName:Android //设备型号 2.platfo ...

最新文章

  1. 谷歌公布十大恶意网站 均曾攻击上万网站
  2. int整数型转换char*字符串
  3. SIFT特征及特征匹配:SIFT and feature matching
  4. 高并发架构系列:MQ消息队列的12点核心原理总结
  5. 在已有SQL 2005 Server 群集中添加节点
  6. knn k的选取_KNN - 初窥K近邻算法
  7. ipv4地址是几位二进制数_知识点| ip地址详解,小学生都看的懂
  8. Linux 常见问题 1000 个详细解答
  9. 贪心算法——洛谷(P1106)删数问题
  10. python2中range和xrange的区别
  11. 尼尔机械纪元机器人驱动_中国的工业机器人发展到了哪一步?
  12. 没有弃用 Sun 拥抱 HP/Linux,亚马逊或已倒闭!
  13. 2019.7.5刷题统计
  14. 基于html的美食网站——速鲜站餐饮食品(HTML+CSS+JavaScript)大学生网页制作教程 表格布局网页模板 学生HTML静态美食网页设计作业成品 简单网页制作代码 学生美食网页作品
  15. 【收藏】40 个学术网站,满足科研文献需求!
  16. CUDA开源 轻松跑AMD GPU/Intel x86 CPU
  17. 2021-2027全球与中国气溶胶检测器市场现状及未来发展趋势
  18. 解决pip-script.py文件不存在的问题
  19. python画爱心的代码怎么运行_怎么用python实现画爱心
  20. Iris Network Traffic Analyzer简易教程

热门文章

  1. DeFi 需要什么才能成为主流?
  2. Caused by: java.lang.IllegalArgumentException: Invalid <url-pattern> [url] in servlet mapping
  3. hpuoj1691 CZY追女孩
  4. 【力扣】172. 阶乘后的零
  5. 用sqlserver查询数据的所有表名和行数找到餐饮管理软件菜品表名Course
  6. Java踩坑笔记 —— base64转换为图片后图片显示不全
  7. 机器人与自动化:挑战和机遇
  8. 物联网卡使用在手机上有哪些影响
  9. Arduino提高篇12—双轴按键摇杆
  10. python爬虫爬取百度贴吧图片,requests方法