python+Appium实现手机移动端自动化 - 模拟器 或 真机【有线】

2023-05-16

有线连接真机,实现真机自动化?实现模拟器自动化?在这里,都能满足你的需求!

什么都不说了,直接上干货吧,亲测可用哦👇

一. 环境准备

首先,先介绍下所需的环境,如下:

  • JDK1.8

  • Appium

  • Python3.x

  • Android-sdk

  • 夜深模拟器/mumu模拟器(PS: 自动化真机时可以选择不安装)

  1. 安装配置JDK1.8

1)下载

  1. 方式1:官网下载JDK1.8安装包

下载地址:https://www.oracle.com/java/technologies/downloads/

下载版本选择主流的jdk1.8的版本:jdk-8u241-windows-x64.exe

  1. 方式2:直接下载小码农在百度网盘给诸位备好的安装包(不谢~)

下载链接:https://pan.baidu.com/s/1zp9-NCA-rrqIe9kSNn1p1g?pwd=psqk

提取码:psqk

2)配置JDK的环境变量

第一步,Win + R打开“运行”窗口,执行命令“sysdm.cpl”打开“系统属性”窗口,进入“高级”-->“环境变量”-->“系统变量”。

第二步,新建系统变量

变量名:JAVA_HOME
变量值:C:\Program Files\Java\jdk1.8.0_211 (这里请改成自身电脑上jdk的实际安装路径)
变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar; (前面有一点和冒号不能少)

第三步,编辑PATH变量,在PATH变量中添加如下内容

%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; (PATH中原来的路径不要去掉哦)

第四步,打开cmd,验证是否安装成功

在cmd中执行javac和java -version即可验证。成功的标识:分别会出现一堆参数说明和jdk的版本信息。

2. 下载配置Android-sdk

1)下载安装

下载地址:http://tools.android-studio.org/index.php/sdk/

下载版本选择:android-sdk_r24.4.1-windows.zip

2)配置

与JDK1.8配置类似,

第一步,Win + R打开“运行”窗口,执行命令“sysdm.cpl”打开“系统属性”窗口,进入“高级”-->“环境变量”-->“系统变量”。

第二步,新建系统变量

变量名:ANDROID_HOME
变量值:C:\tools\android-sdk-windows (这里请改成自身电脑上android-sdk的实际路径)

第三步,编辑PATH变量,在PATH变量中添加如下内容

;%ANDROID_HOME%\tools;%ANDROID_HOME%\build-tools\29.0.3;%ANDROID_HOME%\platform-tools

第四步,验证是否安装并配置成功。在cmd中执行adb即可验证。成功的标识是输出第一行出现Android Debug Bridge version版本信息。

3. 安装配置Appium

1)下载Appium-Server-GUI

下载地址:https://github.com/appium/appium-desktop/releases

2)配置Appium Server GUI

安装成功后,双击Appium Server GUI.exe运行,选择“Simple”模式,进入如图中的配置。

配置完成后,即可点击startServer开启服务。

3)下载安装Appium Inspector

下载地址:https://github.com/appium/appium-inspector/releases

问题:为什么需要下载Appium Inspector ?
答案:由于高版本Appium(从1.22.0开始)的服务和元素查看器分离,1.22.0以下的版本打开Appium Server GUI,点击搜索按钮显示的是inspectorMoved(PS:1.22.0以下版本才会显示Start Inspector Session)。所以除了下载安装Appium Server GUI,还需要下载Appium Inspector。

安装成功后,双击Appium Inspector.exe即可启动Appium Inspector。

至此,Appium就算是安装配置好啦,后续再对Appium Inspector如何使用进行说明。

二.真机测试(有线)

  1. 有线连接手机

第一步,打开手机的开发者模式(PS: 请自行百度如何开启手机的开发者模式)。

第二步,用USB线连接手机和电脑,在开发者选项中开启“USB调试”

第三步,测试是否连接成功,在cmd中执行命令:adb devices 。出现设备信息即表示连接成功。

  1. 启动Appium Server

  1. 启动Appium Inspector,创建配置Session

需配置的参数如上图所示,如下:

  • 远程主机:值为127.0.0.1

  • 远程端口:值为4723

  • 远程路径:值为/wd/hub

  • platformName: 声明是ios还是Android系统

  • platformVersion:内核版本号,可在PowerShell中通过如下命令查看

 adb shell getprop ro.build.version.release
  • deviceName:连接的设备名称,可通过如下命令查询

adb devices -l
  • 启动时自动添加必要的Appium供应商前缀:必须勾选

按上述配置好Session参数后,点击“启动会话”,手机会提示安装一些uiautomator的相关插件,请选择“信任安装”待安装完毕后,可以看到Appium Inspector界面弹出手机界面,表示连接配置成功(如下图所示)。

此时,就可以用Appium Inspector调试真机,录制自动化脚本啦。(具体详情请参考第四点)

三. 模拟器测试

  1. 下载安装模拟器(以“夜深模拟器”为例)

模拟器推荐使用 “夜深模拟器”或者“mumu模拟器”。模拟器的安装和使用请自动度娘,这里不做过多赘述。

  1. 模拟器安装被测App

在电脑上下载好被测App的安装包,然后把apk包直接拖拽到夜神模拟中安装。

  1. 启用开发者选项和USB调试模式

在夜深模拟器中,步骤为:“设置”-->多次点击版本号直至出现提示-->进入“开发者选项”-->启动USB调试

  1. 覆盖夜深模拟器的nox_adb.exe

由于android-sdk的adb【sdk安装目录的platform-tools目录下】和模拟器的nox_adb【夜深安装目录的bin目录下】版本不一致,所以需要用sdk的adb.exe替换掉模拟器的nox_adb.exe。

注意:建议将模拟器原本的nox_adb.exe备份。

  1. 启动Appium Server

  1. 启动Appium Inspector,创建配置Session

需配置的参数如上图所示,如下:

  • 远程主机:值为127.0.0.1

  • 远程端口:值为4723

  • 远程路径:值为/wd/hub

  • platformName: 声明是ios还是Android系统

  • platformVersion:内核版本号,可在PowerShell中通过如下命令查看

 adb shell getprop ro.build.version.release

  • deviceName:连接的设备名称,可通过如下命令查询

adb devices -l

  • 启动时自动添加必要的Appium供应商前缀:必须勾选

按上述配置好Session参数后,点击“启动会话”,模拟器会提示安装一些uiautomator的相关插件,请选择“信任安装”待安装完毕后,可以看到Appium Inspector界面弹出模拟器的界面,表示连接配置成功(如下图所示)。

此时,就可以用Appium Inspector调试模拟器,录制自动化脚本啦。(具体详情请参考第四点)

四. Appium录制自动化脚本

在这里,不会对Appium Inspector进行详细的使用说明,如有需要,请自行找度娘。

  1. 录制自动化脚本

步骤为:开始录制-->模拟操作(点击)-->选择录制的脚本语言(Python、Java、js、Ruby等)

录制生成的代码如下:

# This sample code uses the Appium python client v2
# pip install Appium-Python-Client
# Then you can paste this into a file and simply run with Python

from appium import webdriver
from appium.webdriver.common.appiumby import AppiumBy

# For W3C actions
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.actions import interaction
from selenium.webdriver.common.actions.action_builder import ActionBuilder
from selenium.webdriver.common.actions.pointer_input import PointerInput

caps = {}
caps["appium:deviceName"] = "127.0.0.1:62025"
caps["platformName"] = "Android"
caps["appium:platformVersion"] = "7.1.2"
caps["appium:ensureWebviewsHavePages"] = True
caps["appium:nativeWebScreenshot"] = True
caps["appium:newCommandTimeout"] = 3600
caps["appium:connectHardwareKeyboard"] = True

driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", caps)

el1 = driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value="QQ")
el1.click()

driver.quit()

五. 创建Python自动化脚本

在Pycharm中创建一个py脚本文件,将生成的代码粘贴入py脚本文件中即可。当然,在运行之前,还需要安装依赖包:Appium-Python-Client

  1. 环境安装

pip install Appium-Python-Client

  1. 手机自动化参考文档

Android Keycodes:http://www.temblast.com/ref/akeyscode.htm

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python+Appium实现手机移动端自动化 - 模拟器 或 真机【有线】 的相关文章

  • docker Centos 7 安装 xfce4 桌面 + x11vnc + novnc

    docker Centos 7 安装 xfce4 桌面 43 x11vnc 43 novnc 启动容器环境变量xfce4 桌面安装 启动 Xvfb安装 启动 xfce4 桌面 x11vnc安装 x11vnc启动 x11vnc novnc 上
  • linux C++ 环境下的ActiveMQ学习

    ActiveMQ 1 概述 ActiveMQ 是Apache出品 xff0c 最流行的 功能强大的即时通讯和集成模式的开源服务器 ActiveMQ 是一个完全支持JMS1 1和J2EE 1 4规范的 JMS Provider实现 提供客户端
  • LUbuntu16.10安装及自动使用root登录(Ubuntu类似)

    LUbuntu是一款新的轻量级Ubuntu发行版 xff0c 结合LXDE使得LUbuntu安装 运行速度极快 xff0c 硬件资源要求很低 xff0c 支持X86和ARM架构处理器 可以在http lubuntu net 根据自己电脑的系
  • 【源码分享】-wpf界面源代码分享

    好久以前做过一段时间的界面编程 C 43 43 C Wpf的都做过一点 xff0c 见 个人博客中UI类目 所以资料里面关于界面编程的代码会多一些 xff0c 有时间就整理发出来共享学习 13年的时候用WPF写过一个简单的小程序作爬虫来获取
  • 十大 Python GUI 框架比较

    图形用户界面 GUI 是任何 Web 应用程序中最重要的部分之一 有人会说最重要的部分 xff0c 因为今天的老练用户很快就会放弃可用性差的应用程序 Python 应用程序也是如此 新手 Python 程序员在掌握了 Python 编程的基
  • 如何用ps将图片修改成指定大小

    这篇文章主要介绍如何用ps将图片修改成指定大小 xff1a 一 按原像素比例 修改图片的尺寸 1 先来看看它原来的尺寸 xff0c 如图所示 500X481px 2 首先用ps将图片文件打开 xff0c 使用ps菜单命令 xff1a lt
  • docker 安装rabbitMQ(最详细)

    docker 安装rabbitMQ 1 rabbitMQ介绍 RabbitMQ是一套开源 xff08 MPL xff09 的消息队列服务软件 xff0c 是由 LShift 提供的一个 Advanced Message Queuing Pr
  • 阿里云-ECS云服务器跨地域部署k8s集群

    阿里云 ECS云服务器跨地域部署k8s集群 一 背景介绍二 环境准备2 1 ECS云服务资源清单2 2 K8s软件列表 三 阿里云ECS服务器网络问题3 1 问题阐述3 2 解决方案 四 服务节点调整 xff08 master xff0c
  • 代码命名规范是一种责任也是一种精神(工匠精神)

    代码命名规范之美 规范概述命名规范管理类命名BootstrapProcessorManagerHolderFactoryProviderRegistrarEngineServiceTask 传播类命名ContextPropagator 回调
  • Kubernetes集群搭建(高可用)附全自动脚本

    高可用Kubernetes集群搭建 一 前言介绍 1 1 重要概念 二 系统架构 2 1 架构基本需求 2 2 架构图 三 环境准备 3 1 云服务或虚拟机清单 3 2 网络配置 针对使用vmware虚拟机用户需要操作 3 3 虚拟机网络设
  • k8s 集群部署ingress-nginx

    k8s 集群部署ingress nginx 环境准备 helm方式安装ingress nginx master边缘节点 创建命名空间和部署ingress 第一个ingress 例子 查看ingress controller配置 其实就是对应
  • k8s 集群部署traefik

    k8s 集群部署traefik k8s 集群部署traefik 环境准备 下载traefik helm方式安装traefik master边缘节点 执行安装 查看安装结果 安装traefik dashboard dashboard安装和查看
  • Linux系统(Centos)安装tomcat和部署Web项目

    文章结构 1 准备工作 2 在Linux下安装Tomcat8 0 3 Linux中配置tomcat的服务器启动和关闭和配置tomcat的开机启动 4 给tomcat配置用户名和密码登录 5 使用IDEA打包Maven托管的WEB项目 6 将
  • 如何判断蓝牙设备类型

    我们在开发Android的蓝牙应用时 xff0c 可能需要知道扫描到的蓝牙设备是什么类型 xff0c 然后过滤掉不符合要求的设备 xff0c 只保留符合要求的设备 xff0c 例如我们在车载系统上开发蓝牙电话应用时 xff0c 我们希望只显
  • Aspose.Words for Java 体验

    公司中要做一些导出word的工作 xff0c 经别人推荐 xff0c 使用了Aspose Words for Java xff0c 感觉很好用 xff0c 美中不足的地方就是 xff0c 它是收费软件 原理吗 xff1f 比较常规 xff0
  • 汽车制造行业OEM Tier1 Tier2指代什么?

    OEM OEM是Original Equipment Manufacturer的缩写 xff0c 通常指设备厂商 主机厂 整车厂 例如 xff1a 宝马 奔驰 奥迪 大众 丰田 国内汽车主机厂排名前十分别是上汽集团 东风汽车 北京汽车 长安
  • Android应用系统签名方法

    1 应用配置sharedUserId 在AndroidManifest xml文件根节点中加入属性 xff1a android sharedUserId 61 34 android uid system 34 2 找到系统签名文件 plat
  • Android 读取CPU/GPU运行参数(MTK平台)

    一 使用场景 Android运行一段世时间后 xff0c 系统出现卡顿 二 分析 amp 定位问题 系统卡顿 xff0c 同时又发现芯片温度很高 xff0c 怀疑是温度过高导致CPU降频 xff0c 因此我们要将一段时间内CPU的运行信息打
  • Android签名 (二) 制作签名文件

    你可能想知道 通过这篇博客可以解决哪些问题以及学到什么 xff1a 1 公司开发一个新的app xff0c 如何创建一个应用签名 xff1f 2 为了安全性 xff0c Android系统不想使用Google给的原生签名 xff0c 如何定
  • Android签名 (一) 查看签名信息

    你可能想知道 通过这篇博客可以解决哪些问题以及学到什么 xff1a 1 如果我们有一个应用 xff0c 如何查看应用的签名信息 xff1f 2 如果我们有签名原始文件 xff0c 如何查看签名文件中的签名信息 xff1f 这篇博客介绍了如何

随机推荐

  • L8 U3 职业生涯

    Module 1 谈论你最近的工作 1 描述工作 描述工作的形容词 让我们来看一下可以用来描述工作 xff0c 项目和客户的形容词 用enjoyable 和 engaging来描述你觉得有意思的工作或者项目 For me sales is
  • L8 U4 商务旅行

    Module 1 计划商务旅行 1 处理信息 You mean with Lindstrom 你是说和林特罗姆 xff1f Yes with Lindstrom 是的 xff0c 和林特罗姆 Exactly 完全正确 You mean yo
  • L8 U5 产品和创新

    Module 1 产品特点 1 产品特点 询问产品特性 在询问商店中的产品时 xff0c 您可能首先想询问其质量水平 top of the range 高档的middle of the range 中档的good value for mon
  • Android打包jar的两种方法

    方法一 xff1a 使用Android Studio打包 方法二 xff1a 使用Android Build System打包 一 Android Studio打包 1 新建Android Library xff0c 取名为opensdk
  • LCS 下载插件

    难度简单2收藏分享切换为英文接收动态反馈 小扣打算给自己的 VS code 安装使用插件 xff0c 初始状态下带宽每分钟可以完成 1 个插件的下载 假定每分钟选择以下两种策略之一 使用当前带宽下载插件将带宽加倍 xff08 下载插件数量随
  • 调用webservice异常总结

    发布和调用Webservice很简单 xff0c 但小问题依然不断 xff0c 特总结如下 xff1a 一 Java调用 net的webService产生 服务器未能识别 HTTP 标头 SOAPAction 的值 错误 解决方案 xff1
  • 去除Evaluation Warning : The document was created with Spire.PDF for Java.

    去除Evaluation Warning The document was created with Spire PDF for Java 最近项目中有一个需求需要把PDF文件添加页码 xff0c 最终在网上找到了用Spire去添加的方法
  • 第二章 简单网页的爬取与Xpath、Json使用 2021-09-09

    爬虫系列总目录 本章节介绍爬虫中使用的基础库用于选择 xff0c 过滤页面信息 包括requests xff0c bs4 xff0c xpath xff0c 正则表达式re xff0c json 等内容 xff0c 能够实现对简单页面的获取
  • 解决crontab定时任务多次执行

    今天使用linux crontab定时任务时 xff0c 可能由于配置不妥 xff0c 任务多执行一次 xff0c 如下是我程序的日志记录 xff08 执行了两次 xff0c 我设置的是每分钟执行1次 xff09 解决如下 重启cronta
  • ruoyi对接CAS统一身份认证

    暂定逻辑如下 xff1a 搭建CAS服务器端 xff1a 项目地址 xff1a https gitee com weigang wu cas server webapp git 项目里有二开的说明文档 xff0c 如 xff1a 按照自定义
  • Linux 系统启动过程

    简介 Linux 系统启动过程大致分为5个阶段 xff1a 1 内核的引导 2 运行 init 3 系统初始化 4 建立终端 5 用户登录系统 内核引导 计算机通电后 xff0c 首先会进行 BIOS 开机自检 xff0c 然后根据BIOS
  • Ubuntu 修改$PS1 自定义命令提示符

    文章更新于 xff1a 2020 03 25 文章目录 一 自定义命令提示符1 可修改的是那部分 xff1f 2 修改 PS1 变量3 PS1 变量格式4 如何修改背景颜色5 修改字体 二 Enjoy xff01 一 自定义命令提示符 1
  • C#byte类型

    byte类型的范围是0 255 转换为二进制是00000000 11111111 C 中对byte类型的处理还是很特殊的 下面用几行简单的代码来说明问题 byte x 61 1 byte y 61 2 byte z 61 x 43 y er
  • JVM内存分配机制详解

    目录 1 对象创建流程 TODO 1 1 jvm分配内存 1 2 设置对象头 1 2 1 对象头实例 1 2 2 指针压缩 2 JVM对象内存分配 2 1 逃逸分析和标量替换 2 1 1 逃逸分析和标量替换实战 2 2 eden区分配内存过
  • 【已解决】Windows10安装报:Windows检测到EFI系统分区格式化为NIFS,将EFI系统分区格式化为FAT32,然后重新启动安装

    手动擦除驱动器并将其转换为 GPT 关闭电脑 xff0c 然后放入 Windows 安装 DVD 或 USB 密钥 在 UEFI 模式下将电脑启动到 DVD 或 USB 密钥 有关详细信息 xff0c 请参阅 启动到 UEFI 模式或传统
  • SpringBoot系列之【启动流程详解】

    文章目录 前言一 SpringBoot特点二 SpringBoot启动流程图三 SpringBoot启动类入口1 注解 xff1a 64 SpringBootApplication 64 SpringBootConfiguration 64
  • word文档转html利器

    有需求 xff0c 就会有相应的技术出现 xff0c 以前知道word可以用来书写html网页 xff0c 那自然就可以转成html页面 xff0c 难道我们要用word开发html页面吗 xff1f 你可能会问 xff0c 我为什么要把w
  • Windows Terminal - 好物分享,真香~

    微情景 xff1a x1f482 xff1a 咦 xff0c 你的windows电脑还在使用默认的PowerShell cmd呀 xff1f x1f64b xff1a 对啊 x1f482 xff1a 你不觉得它们很丑又不好用吗 xff1f
  • oh-my-zsh - Linux/Git Bash个性化工具 - 好物分享,真香~

    一 什么是oh my zsh oh my zsh 是一个开源的zsh配置工具 xff0c 正如它主页上说的 xff0c oh my zsh基于zsh命令行 xff0c 提供了主题配置 xff0c 插件机制 xff0c 内置的便捷操作 让我们
  • python+Appium实现手机移动端自动化 - 模拟器 或 真机【有线】

    有线连接真机 xff0c 实现真机自动化 xff1f 实现模拟器自动化 xff1f 在这里 xff0c 都能满足你的需求 xff01 什么都不说了 xff0c 直接上干货吧 xff0c 亲测可用哦 x1f447 一 环境准备 首先 xff0