python手机自动化测试脚本语言_Python+Appium实现APP自动化测试

一、环境准备

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

2.安装Java JDK 、Android SDK

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

4.安装Appium for windows,官网地址 http://appium.io/

点击下载按钮会到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.mzph.cn/news/352427.shtml

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

相关文章

Win7无线网络和有线网络网络负载选择

最近在看如何让有线网络和无线网络实现对接。win7网络可以同时连接两个网卡无线和有线,在同时间上连接两个网络用 的是哪个网络,用是哪个流量(可以用currPorts软件来查看电脑用是哪个网络的流量),哪个网络是闲置网络。 同时可以…

怎么查看linux服务器有cpu

cat /proc/cpuinfo中的信息processor 逻辑处理器的id。physical id 物理封装的处理器的id。core id 每个核心的id。cpu cores 位于相同物理封装的处理器中的内核数量。siblings 位于相同物理封装的处理器中的逻辑处理器的数量。1 查看物理CPU的个数#cat /proc/cpuinfo |grep &q…

python条件输出_python基础(二)条件判断、循环、格式化输出

继续上一篇,今天主要总结一下条件判断、循环、格式化输出 一.条件判断 python中条件判断使用if else来判断,多分支的话使用if elif ... else,也就是如果怎么怎么样就怎么怎么样,否则就怎么怎么这样,格式如下: score i…

拼图项目的诅咒:为什么Java 9一遍又一遍地延迟?

JDK 9发行日期推迟到2017年7月 距JDK 9发行不到200天,它又被推迟了 。 新的发布日期已更新为2017年7月,比之前推迟的日期晚了四个月。 推迟日期 9月13日,Oracle Java平台小组的首席架构师Mark Reinhold发表了他的建议,推迟了JDK…

linux下安装maven

1、下载maven安装包 wget http://219.238.7.73/files/211300000CAE3924/mirrors.hust.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz 2、解压缩maven tar -zxvf apache-maven-3.5.4-bin.tar.gz 3、在/etc/profile文件中配置maven环境变量 #maven …

小技巧教你解决此windows副本不是正版的问题

最近有很多朋友都说,在安装完win7系统之后,却出现了“此windows副本不是正版” 的问题,我们该怎么解决这个问题呢?今天就教大家如何解决此windows副本不是正版的问题。 点击左下角的“开始”按钮,然后在搜索框中输入“…

NGINX介绍及参数

Nginx("engine x")是一个IMAP/POP3/SMTP代理服务器,也是一个高性能的 HTTP 和 反向代理服务器,但现在大多数情况下都是用来做静态web服务器和反向代理服务器,在作为反向代理服务器的时候,Nginx可以对后端的real server做负载均衡,基于应用层的负载均衡,但是他仅支持一…

FinalTest 基于web的登录口令修改设计

本次任务主要实现登录口令的修改,当用户修改了登录名和登陆密码以后,下一次登录将会使用新的登录名和登录密码。 FT.1 页面设计 登录的页面主要使用了原来的pass.htm文件,主要是因为我自己做了一个相差不大的界面,如下图所示&…

python脚本编程100例_python100例,python经典例题

肯定有用,练习就是实战。对于刚学习编程的同学,我觉得跟着例子学习,会有很大的进步。至少让你熟悉语法和理解编程的一些技巧。当你能熟练掌握python编程的方法后,你需要学习一些第三方库,python的第三方库很强大。具体…

windows Server 2003 尝试安装.NET Framework 4 失败

在windows Server 2003 尝试安装.NET Framework 4 失败 提示出“产生阻滞问题”,这个是系统没有安装WIC产生的。 到https://www.microsoft.com/zh-cn/download/details.aspx?id17718 下载WIC后进行安装,安装WIC后能正常安装.NET Framework 4。

java 在线编辑器_最好的Markdown开源在线编辑器,没有之一!

点击上方蓝色字体,选择“设为星标”回复”666“获取面试宝典Editor.md 是一款开源的、可嵌入的 Markdown 在线编辑器(组件),基于 CodeMirror、jQuery 和 Marked 构建。主要特性支持“标准” Markdown / CommonMark 和 Github 风格的语法,也可…

log4j 多线程死锁问题_Log4j线程死锁–案例研究

log4j 多线程死锁问题此案例研究描述了影响Weblogic Portal 10.0生产环境的Apache Log4j线程争用问题的完整根本原因分析和解决方案。 它还将展示在开发和支持Java EE应用程序时适当的Java类加载器知识的重要性。 本文也是您提高线程转储分析技能和了解线程竞争条件的另一个机会…

谜题6:多重转型

转型被用来将一个数值从一种类型转换到另一种类型。下面的程序连续使用了三个转型。那么它到底会打印出什么呢? public class Multicast{public static void main (String[] args){ System.out.println((int)(char)(byte) -1); } } 无论你怎样分析这个程序&#xf…

nginx 简介篇

Nginx(发音为“engine x”)是一款由俄罗斯软件工程师Igor Sysoev写的开源的web服务器。自从2004年发布以来nginx一直关注于高性能、高并发、低内存的使用,另外还有一些特色的Web服务器功能,如负载均衡、缓存、访问和带宽控制以及能够有效的与各种应用集成这些特点使…

MySQl Got a packet bigger than ' max_allowed_packet' bytes

在my.ini中最后增加一行max_allowed_packet16M即可(根据实际情况设置)。

防止缓存爆炸的快速提示

在很多情况下,您都可以从应用程序中的常用对象缓存中受益,特别是在面向Web和微服务的环境中。 您可以在Java中执行的最简单的缓存类型可能是引入一个私有HashMap,在计算对象之前先对其进行查询,以确保您不会重复执行此操作。 这是…

设置过mysql远程连接后仍然无法进行远程连接 (mysql mysql报错2003 can't connect)

1、在控制面板上-〉系统和安全-》 window是防火墙-》打开或关闭Windows防火墙-》关闭Windows防火墙(不推荐),这样mysql就可以进行远程连接但是有一个问题就是不安全。所以采取以下的方法。 2、 解决方法: (1.控制面板 打开防火墙,在进入规则中新建一个规则. (2. 选…

go 二进制程序守护_图解 Go 程序是怎样跑起来的

Go语言中文网,致力于每日分享编码、开源等知识,欢迎关注我,会有意想不到的收获!刚开始写这篇文章的时候,目标非常大,想要探索 Go 程序的一生:编码、编译、汇编、链接、运行、退出。它的每一步具…

nginx 配置从零开始

作为一个 nginx 的初学者记录一下从零起步的点滴。 基本概念 Nginx 最常的用途是提供反向代理服务,那么什么反向代理呢?正向代理相信很多大陆同胞都在这片神奇的土地上用过了,原理大致如下图: 代理服务器作为客户端这边的中介接…

[MySQL]经常无故崩溃amd.dll , boot1.exe病毒

近段时间有大量客户反馈,mysql经常无故崩溃或者是在C盘根目录出现 amd.dll , boot1.exe文件此病毒为mysql数据库的漏洞所导致,目前所有版本均有此问题目前已经有大量的客户出现这个问题请收到此消息后立刻检查自己的C盘目录,是否有amd.dll , …