当前位置: 首页 > ds >正文

Windows上使用Python 3.10结合Appium-实现APP自动化

一、准备工作

所需条件:
Windows 10/11 操作系统
Python 3.10.x(建议3.10.9)
Java JDK 8 或以上(建议JDK 8u301)
Node.js 14.x 或以上(建议14.21.3)
Appium Server 1.22.x 或以上(建议1.22.3)
Appium Python客户端(最新稳定版)
夜神模拟器(最新版,建议7.0及以上)
安卓手机(Android 7.0及以上,开启USB调试)
Android SDK Platform-tools(包含adb工具)
PyCharm 2022.x 或以上
注意事项:夜神模拟器需开启硬件虚拟化(VT-x/AMD-V)安卓手机需开启开发者选项和USB调试确保adb能识别设备(adb devices)Appium版本和Python客户端版本兼容元素定位建议使用Appium Desktop Inspector辅助自动化操作节奏合理,避免触发APP防刷机制

二、环境搭建

1. 安装Java JDK 8

下载地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
安装完成后配置环境变量:JAVA_HOME 指向JDK安装目录,例如 C:\Program Files\Java\jdk1.8.0_301将 %JAVA_HOME%\bin 添加到系统PATH验证安装:java -version应显示Java版本信息。

2. 安装Android SDK Platform-tools(包含adb)

下载地址:https://developer.android.com/studio/releases/platform-tools
解压后将platform-tools目录添加到系统PATH
验证:adb version应显示adb版本。

3. 安装Node.js

下载地址:https://nodejs.org/en/download/
安装完成后验证:node -vnpm -v
推荐安装14.x版本,稳定兼容Appium。

4. 安装Appium Server

通过npm安装:npm install -g appium@1.22.3appium -v
可选安装Appium Desktop(GUI工具,方便元素定位):
https://github.com/appium/appium-desktop/releases

5. 安装Python 3.10

下载地址:https://www.python.org/downloads/release/python-3109/
安装时勾选“Add Python to PATH”
验证:python --version

6. 安装Appium Python客户端

国内访问PyPI官方源速度较慢,推荐使用清华、阿里云等镜像源。结合指定版本安装命令示例如下:
打开命令行,执行:pip install Appium-Python-Client==2.10.4 -i https://pypi.tuna.tsinghua.edu.cn/simple或者使用阿里云镜像:pip install Appium-Python-Client==2.10.4 -i https://mirrors.aliyun.com/pypi/simple/

7. 安装PyCharm
下载地址:https://www.jetbrains.com/pycharm/download/
安装并配置Python 3.10解释器
开发代码使用,方便
8. 准备夜神模拟器或安卓手机

夜神模拟器官网下载最新版:https://www.yeshen.com/
启动模拟器,确认能正常运行
安卓手机开启“开发者选项”->“USB调试”
连接手机到电脑,允许调试授权
验证设备连接:adb devices
应显示设备列表

三、元素定位演示
启动Appium Desktop,连接Appium Server(默认地址:http://127.0.0.1:4723)
在Appium Desktop点击“Start Inspector Session”
配置desired capabilities,示例:

{"platformName": "Android","deviceName": "emulator-5554","appPackage": "com.example.app","appActivity": ".MainActivity","automationName": "UiAutomator2","noReset": true
}

启动会话后,Appium Desktop会显示当前APP界面及元素树
点击界面元素,查看元素属性(id、xpath、class等)
记录需要操作的元素定位信息,方便脚本编写

四、代码编写与运行测试(PyCharm开发)

  1. 新建PyCharm项目,配置Python 3.10解释器
  2. 编写示例代码 app_automation.py
from appium import webdriver
from appium.webdriver.common.mobileby import MobileBy
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ECdef main():desired_caps = {"platformName": "Android","platformVersion": "10",  # 根据模拟器或手机版本调整"deviceName": "emulator-5554",  # adb devices显示的设备名"appPackage": "com.example.app",  # 目标APP包名"appActivity": ".MainActivity",   # 目标APP启动Activity"automationName": "UiAutomator2","noReset": True}driver = webdriver.Remote("http://localhost:4723/wd/hub", desired_caps)wait = WebDriverWait(driver, 20)try:# 等待按钮出现并点击start_btn = wait.until(EC.element_to_be_clickable((MobileBy.ID, "com.example.app:id/start_button")))start_btn.click()# 等待输入框出现,输入文本input_box = wait.until(EC.presence_of_element_located((MobileBy.ID, "com.example.app:id/input_text")))input_box.send_keys("Hello Appium")# 点击提交按钮submit_btn = driver.find_element(MobileBy.ID, "com.example.app:id/submit_button")submit_btn.click()finally:driver.quit()if __name__ == "__main__":main()

3. 运行测试
启动Appium Server(命令行输入appium)
启动夜神模拟器或连接手机
确认adb devices能识别设备
在PyCharm运行app_automation.py
观察APP自动化操作执行
五、总结

步骤说明
环境准备安装Java JDK 8、Android SDK、Node.js、Appium、Python 3.10
设备准备启动夜神模拟器或连接手机,开启USB调试
环境准备安装Java JDK 8、Android SDK、Node.js、Appium、Python 3.10
元素定位使用Appium Desktop Inspector抓取元素定位信息
脚本编写配置desired_caps,编写自动化操作脚本
运行测试启动Appium Server,执行Python脚本
注意事项保持设备连接稳定,合理等待,避免频繁操作
http://www.xdnf.cn/news/1523.html

相关文章:

  • 机器视觉的智能手机屏贴合应用
  • Java单例模式详解:实现线程安全的全局访问点
  • 小白自学python第一天
  • 天梯-这是字符串题
  • Android TV 输入框架(TIF)深度解析与实践指南
  • 2.第二章:政策法规与标准体系
  • 国内外文献免费下载网站
  • Python内置函数---bool()
  • 私有知识库 Coco AI 实战(二):摄入 MongoDB 数据
  • Docker Python 官方镜像使用说明(TAG说明)
  • Playwright自动化测试实战指南-中级部分
  • 聊聊SpringAI流式输出的底层实现?
  • gem5教程第四章 了解gem5统计和输出
  • Elasticsearch 集群节点下线方案
  • 新市场环境下新能源汽车电流传感技术发展前瞻
  • 开源项目实战学习之YOLO11:项目结构及功能分析(一)
  • Shell编程学习笔记1-Shell入门
  • 【漫话机器学习系列】219.支持向量机分类器(Support Vector Classifier)
  • Java并发编程之CompletableFuture原理与实践
  • Linux系统编程 day10 接着线程(中期头大,还要写论文)
  • 钧瓷产业原始创新的许昌共识:技术破壁·产业再造·生态重构(一)
  • C++入门基础知识110—【关于C++嵌套 if 语句】
  • 使用 LangChain 掌握检索增强生成 (RAG) 的终极指南:6、索引
  • Linux:41线程控制lesson29
  • Linux安全防护:全方位服务安全配置指南
  • gem5教程第六章 为ARM扩展gem5 这也是改进gem5的一个基础
  • STM32F103 “BluePill” 上的 DMA 原理与实践
  • 「ES数据迁移可视化工具(Python实现)」支持7.x索引数据互传
  • unity游戏开发之 拖放教程2D
  • 代理ip池有哪些类型?代理IP池的定义、特点与使用场景