Python+Appium实现自动化测试的使用步骤

一、环境准备

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代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

# 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模拟点击,两个都要打开,此时再重新运行,即可解决

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

  1. 文档获取方式:

  2. 加入我的软件测试交流群:680748947免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

广西开放大学电大搜题微信公众号,助你快速解题,轻松学习!

近年来,广西开放大学电大搜题微信公众号备受关注。作为一名电大学者,我有幸亲身体验了该公众号的功能,并深感其对广大学生学习的帮助之大。 广西开放大学作为一所具有百年历史的学府,一直致力于为学生提供优质的教育资源。而电大…

Uibot6.0 (RPA财务机器人师资培训第2天 )采购付款——网银付款机器人案例实战

训练网站:泓江科技 (lessonplan.cn)https://laiye.lessonplan.cn/list/ec0f5080-e1de-11ee-a1d8-3f479df4d981https://laiye.lessonplan.cn/list/ec0f5080-e1de-11ee-a1d8-3f479df4d981(本博客中会有部分课程ppt截屏,如有侵权请及请及时与小北我取得联系~&#xff0…

【Python + Django】启动简单的文本页面

前言: 为了应付(bushi)毕业论文,总要自己亲手搞一个像模像样的项目出来吧 ~ ~ 希望自己能在新的连载中学到项目搭建的知识,这也算是为自己的测试经历增添光彩吧!!! 希望、希望大家…

09 事务和连接池

文章目录 properties文件连接池service层实现类dao层实现类dao层实现类 连接池类: 创建线程池静态常量,用于放连接。 创建Properties静态常量,用于解析properties文件 静态代码块中,解析properties文件,将解析结果用于创建连接池 …

Linux快速入门,上手开发 02.VMware的安装部署

倘若穷途末路,那便势如破竹 —— 24.3.21 一、VMware的作用 在Windows或IOS系统下,给本地电脑安装VMware虚拟机,用来在虚拟机上安装Linux系统,避免重复资源的浪费,可以在虚拟机上搭建Linux系统进行学习 二、VMware的安…

PCL点云处理之中值计算(二百三十三)

PCL点云处理之中值计算(二百三十三) 一、算法介绍二、算法实现1.代码2.结果一、算法介绍 读取的点云是无序散乱的,点云坐标包括xyz三个维度,以常用的z高程维度为例,计算其高程中值,获取对应的点。 主要涉及到根据高程对点云进行排序的操作,下面是具体的代码和结果。 …

视频号下载助手失效了?如何解决下载视频问题!

在刷短视频的时候难免会遇到部分的视频号视频下载不下来,那我们该如何解决视频号下载问题呢? 视频号下载助手解决方案 视频号下载助手失效分为两种情况! 1、可以解析,但不能下载 根据使用视频号下载助手常见的问题,我们发现会有…

C++进阶--哈希

哈希概念 哈希(Hash)是一种常见的密码学技术和数据结构,它将任意长度的输入通过散列算法转换成固定长度的输出,这个输出被称为散列值或哈希值。哈希函数是一种单向函数,即从哈希值无法反推出原始输入值。 哈希函数具有…

AJAX 前端开发利器:实现网页动态更新的核心技术

AJAX AJAX是开发者的梦想&#xff0c;因为你可以&#xff1a; 在不重新加载页面的情况下更新网页在页面加载后请求来自服务器的数据在页面加载后接收来自服务器的数据在后台向服务器发送数据 HTML页面 <!DOCTYPE html> <html> <body><div id"dem…

你要的个性化生信分析服务今天正式开启啦!定制你的专属解决方案!全程1v1答疑!

之前在 干货满满 | 给生信小白的入门小建议 | 掏心掏肺版 中有提到&#xff0c;如果小伙伴们真的想学好生信&#xff0c;那编程能力是必须要有的&#xff01;但是可能有些小伙伴们并没有那么多的时间从头开始学习编程&#xff0c;又或是希望有人指导或者协助完成生信分析工作&a…

Qt学习--界面知识点大杂烩

在开发过程中&#xff0c;通常需要打开或者保存上位机数据到本地&#xff0c;这时候就需要用到

数据结构面试常见问题之Insert or Merge

&#x1f600;前言 本文将讨论如何区分插入排序和归并排序两种排序算法。我们将通过判断序列的有序性来确定使用哪种算法进行排序。具体而言&#xff0c;我们将介绍判断插入排序和归并排序的方法&#xff0c;并讨论最小和最大的能区分两种算法的序列长度。 &#x1f3e0;个人主…

打流仪/网络测试仪这个市场还能怎么卷?

#喝了点&#xff0c;码点字# 以下为个人观点&#xff0c;看看就好&#xff0c;如有冒犯&#xff0c;私信删稿 都有哪些厂商在做打流仪/网络测试仪 -洋品牌&#xff1a;思博伦/Viavi-Spirent&#xff0c;是德/Keysight-Ixia&#xff0c;信雅纳/Lecroy-Xena&#xff0c; -国产…

Ubuntu20.04 安装fcitx5输入法

序 ubuntu 20.04.3下fcitx5 需要从flatpak安装&#xff0c;&#xff08;由于qt版本&#xff0c;fcitx5-config只能安装在20.10上&#xff09;&#xff0c;中间出了各种问题&#xff0c;最后发现以下解决方案最好&#xff1a; 安装flatpak (建议使用官方ppa,版本较新) 1 2 3 …

k8s系列之十五 Istio 部署Bookinfo 应用

Bookinfo 应用中的几个微服务是由不同的语言编写的。 这些服务对 Istio 并无依赖&#xff0c;但是构成了一个有代表性的服务网格的例子&#xff1a;它由多个服务、多个语言构成&#xff0c;并且 reviews 服务具有多个版本。 该应用由四个单独的微服务构成。 这个应用模仿在线书…

std::shared_ptr与std::make_unique在类函数中的使用

在最近学习cartographer算法的时候&#xff0c;发现源码中大量的使用了std::shared_ptr与std::make_unique&#xff0c;对于这些东西之前不是很了解&#xff0c;为了更好的理解源代码&#xff0c;因此简单学习了一下这块内容的使用&#xff0c;在这里简单记个笔记。 std::shar…

嵌入式软件面试-linux-中高级问题

Linux系统启动过程&#xff1a; BIOS自检并加载引导程序。引导程序&#xff08;如GRUB&#xff09;加载Linux内核到内存。内核初始化硬件&#xff0c;加载驱动&#xff0c;建立内存管理。加载init进程&#xff08;PID为1&#xff09;&#xff0c;通常是systemd或SysVinit。init…

安达发|印刷包装APS生产计划排产系统的商业价值

在当今快速消费和竞争激烈的市场环境中&#xff0c;印刷包装行业面临着前所未有的挑战。随着客户需求的多样化、交付期限的缩短以及原材料价格的波动&#xff0c;传统的生产管理方法已无法满足现代印刷包装企业的复杂需求。为了保持竞争力&#xff0c;企业必须采用先进的生产计…

【Java Web基础】一些网页设计基础(五)

文章目录 1. 图片在盒子内部垂直居中2. 底部设计&#xff0c;图片或子元素居中于父盒子&#xff08;水平、垂直&#xff09;&#xff0c;随着屏幕大小放大或缩小3. 使用thymeleaf的th:each会导致样式失效错乱问题 1. 图片在盒子内部垂直居中 用弹性盒子实现垂直居中及用css实现…

【联邦学习贡献评估——联邦学习优化】

1. 模型复用 贡献评估往往需要计算不同参与方组合的数据价值, 然而模型相关的价值度量指标, 比如测试准确率, 需要基于数据重新训练并评测模型, 这导致了高昂的数据价值度量代价. 为了避免重复训练联邦模型的代价, 考虑复用全体参与方组合下训练联邦模型时各参与方的梯度更新,…