使用【Python+Appium】实现自动化测试

news2024/12/27 12:10:55

一、环境准备

1.脚本语言:Python3.x    IDE:安装Pycharm

2.安装Java JDK 、Android SDK

3.adb环境,path添加E:\Software\Android_SDK\platform-tools

4.安装Appium for windows,官网地址 Redirecting

 点击下载按钮会到GitHub的下载页面,选择对应平台下载

 安装完成后,启动Appium,host和port默认的即可,然后设置Android SDk和Java JDK   

 

 然后点下边那个保存并重启的按钮,然后点第一个Start Server按钮,将会看到

 二、真机测试

1.连接手机

打开开发者模式,USB线连接手机和电脑,并且在开发者选项当中,开启USB调试

 测试是否连接成功,可执行命令adb devices

 

  出现上图就证明手机和电脑连接成功。。。

 2.点击Start Inspector Session,

 

 按如下配置Desired Capabilities

 

 platformName :声明是ios还是Android系统

 platformVersion : Android内核版本号,可通过命令adb shell getprop ro.build.version.release查看

 

  deviceName :连接的设备名称,通过命令adb devices -l中model查看

  appPackage :apk的包名

  appActivity:apk的launcherActivity,通过命令adb shell dumpsys activity | findstr “mResume”查看(需先打开手机应用)

注意:Android 8.1之前应使用adb shell dumpsys activity | findstr “mFocus”

 3.运行Start Session,选择元素

 右侧 Selected Element 区域有三个按钮

  • Tap:执行选中元素的点击事件
  • Send Keys:为文本框等对象传值
  • 如果是文本输入元素,就清除文本

4.录制脚本

 录制生成的python代码如下:

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

from appium import webdriver

caps = {}
caps["platformName"] = "Android"
caps["platformVersion"] = "9.0.0"
caps["deviceName"] = "Mi_Note_3"
caps["appPackage"] = "com.antfortune.wealth"
caps["appActivity"] = "com.alipay.mobile.quinox.LauncherActivity"
caps["resetKeyboard"] = True
caps["unicodeKeyboard"] = True

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

el1 = driver.find_element_by_id("com.antfortune.wealth.login:id/login_main_button")
el1.click()
el2 = driver.find_element_by_id("com.alipay.mobile.accountauthbiz:id/auth_login_btn")
el2.click()

driver.quit()

5.在pycharm中建立项目将代码粘入,在运行之前,还需通过pip命令安装pip install Appium-Python-Client依赖包

 最后,记一个我在这些过程中遇到的问题(现已解决)

 在Appium-desktop中运行Start Session时,出现

 解决方法:在开发者模式下,打开usb调试功能和use模拟点击,两个都要打开,此时再重新运行,即可解决

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/579497.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用golang 基于 OpenAI Embedding + qdrant 实现k8s本地知识库

使用golang 基于 OpenAI Embedding qdrant 实现k8s本地知识库 文章博客地址:套路猿-使用golang 基于 OpenAI Embedding qdrant 实现k8s本地知识库 流程 将数据集 通过 openai embedding 得到向量组装payload,存入 qdrant用户进行问题搜索,通过 openai embedding 得到向量,从…

“Jmeter WebSocket协议压测”,助你轻松应对高并发场景!

目录 引言 背景说明 步骤1:安装插件JMeter WebSocket Samplers 步骤2:采集器使用 步骤3:脚本执行 结语 引言 在当今高并发的网络环境下,WebSocket协议已经成为了最受欢迎的实时通信技术之一。然而,对于开发人员来…

CorelDRAW2023序列号及下载安装条件

始于1989年并不断推陈出新,致力为设计工作者提供更高效的设计工具!CorelDRAW滋养并见证了一代设计师的成长!在最短的时间内交付作品,CorelDRAW的智能高效会让你一见钟情!CorelDRAW 全称“CorelDRAW Graphics Suite“,也…

Linux:命令tar、zip、unzip对文件或文件夹进行压缩与解压

Linux:命令tar、zip、unzip对文件或文件夹进行压缩与解压 .tar压缩操作: 创建要进行压缩的文件: 对文件进行压缩: 将三个文件压缩成text.tar文件,压缩到当前路径下(默认也是在当前路径) 对比体积: 发现&…

关于f-stack转发框架的几点分析思考

使用DPDK收包,想要用到TCP协议栈,可选的方案有linux原生的tun/tap口以及DPDK自带的KNI驱动,这两种都是通过将DPDK收到的报文注入到linux内核来使用TCP协议栈的功能,然后,用户态协议栈可以考虑开源的f-stack&#xff0c…

在页面使用富文本编译器

富文本编译器的选择 Editor.mdTinyMCESimpleMDECKEditor 还有一些,这里讲的是我用的TinyMCE 1、下载 下载地址:下载tiny | TinyMCE中文文档中文手册 下载开发版本,我下载的最新版 tinymce_6.4.2_dev.zip 将压缩包解压后可以看到下面目录&…

(哈希表 ) 202. 快乐数——【Leetcode每日一题】

❓202. 快乐数 难度:简单 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到…

Groovy系列一 Groovy基础语法

目录 为什么要学习Groovy Groovy 介绍 Groovy 特点 Groovy 实战 动态类型 简单明了的list,map类型 在groovy世界任何东西都是对象 属性操作变得更容易 GString 闭包 委派:delegate Switch变得更简洁 元编程 强制类型检查 Elvis Operator 安全访问 为…

【五】设计模式~~~创建型模式~~~单例模式(Java)

【学习难度:★☆☆☆☆,使用频率:★★★★☆】 5.1. 模式动机 对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一…

一波三折,终于找到 src 漏洞挖掘的方法了【建议收藏】

0x01 信息收集 1、Google Hack 实用语法 迅速查找信息泄露、管理后台暴露等漏洞语法,例如: filetype:txt 登录 filetype:xls 登录 filetype:doc 登录 intitle:后台管理 intitle:login intitle:后台管理 inurl:admin intitle:index of /查找指定网站&…

C++:征服C指针:指针(二)

指针二 1. 指向数组的指针2. 多维数组三级目录 上一篇文章我们介绍了:什么是指针,指针常见的问题,本篇我们主要介绍 :指针与数组。 1. 指向数组的指针 int *p[n] : 指针数组, 它包括 n 个成员,每个成员都是…

探索Maven创建项目全过程(超详细~~~)

文章目录 1.Maven介绍2.Servlet介绍2.1 Servlet定义2.2 Servlet的主要任务 3.创建Servlet程序步骤3.1 创建项目3.2 引入依赖3.3 创建目录3.4编写代码3.5 打包程序3.6 部署程序3.7 验证结果 4.更方便的部署方式4.1.下载Tomcat插件4.2 配置Tomcat插件4.3运行项目 1.Maven介绍 Ma…

认识Tomcat

hi,大家好,今天为大家带来Tomcat的相关知识 🍭1.Tomcat是什么 🍭2.Tomcat的下载安装 🍭3.Tomcat的目录结构 🍭4.启动Tomcat 🍭5.部署博客系统到Tomcat 🍉1.Tomcat是什么 我们之前也已经学了http,http…

【JAVAWEB】HTML的常见标签

目录 1.HTML结构 1.1认识HTML标签 1.2HTML文件基本结构 1.3标签层次结构 1.4快速生成代码框架 2.HTML常见标签 注释标签 标题标签:h1-h6 段落标签:p 换行标签:br 格式化标签 图片标签 超链接标签:a 表格标签 列表标签 表单标…

Windows 同时安装 MySQL5 和 MySQL8 版本

👏作者简介:大家好,我是Rockey,不知名企业的不知名开发着 🔥如果感觉博主的文章还不错的话,请👍三连支持👍一下博主哦 📝联系方式:he18339193956,…

MySQL 00 : MySQL_数据库shell登录时遇到的问题

问题1描述:输入链接数据块的命令提示 sh:mysgl:command not found 解决:第一步配置环境变量来解决 1、vim /etc/profile 2、末尾写入export PATH$PATH:/usr/local/mysql/bin 3、保存 4、执行 source /etc/profile 第二部 问题描述 Mac通过MAMP安装MySQL时&#…

K8s之Replicaset控制器详解

文章目录 一、ReplicaSet 控制器介绍二、ReplicaSet案例1、Pod副本扩缩容案例2、Pod更新版本案例 一、ReplicaSet 控制器介绍 官方中文参考文档: ReplicaSet是k8s中一种资源对象,简写 rs,用于管理Pod副本数量和健康状态,在spec.…

MySQL如何导入大量数据?

有时我们会遇到需要将大量数据导入MySQL的需求,一般数据存储在csv或者txt中,数据由","分隔。这里提供两种方案供大家选择。 一、创建测试表 为了测试,我们先创建数据库和表,并创建一个用户。 create database loadda…

js的BOM对象中的window、location使用

说明:BOM的全称是Browser Object Model,浏览器对象模型,有Window(浏览器窗口)、Navigator(浏览器)、Screen(屏幕)、History(历史记录)和Location&…

js函数、Array和String的定义和使用

函数 js中的函数&#xff0c;类似java中的方法 <script>// 定义函数方式一function addA(x, y) {return x y;}// 定义函数方式二&#xff0c;注意addB是函数的名称&#xff0c;不是返回值let addB function(x, y) {return x * y;}</script><script>docume…