提示:

1. 推荐使用python3以上的版本来进行开发

2. 手机使用安卓手机,版本最好不要太老,一根数据线

3. 安装虚拟机(博主使用雷电)

操作:

这里只简单的介绍一些uiautomator2的基本使用语法

1. 测试连接

import uiautomator2 as u2
import uiautomator2.ext.htmlreport as htmlreport
from time import sleep

d = u2.connect('192.168.0.62')
print(d.info)
这里使用的是连接设备的ip,只需要将你的设备和电脑共处在同一个无线下即可

也可以使用usb连接

d = u2.connect_usb('emulator-5554')
这里只需要填写你的设备的序列号即可

具体情况具体应对

如果运行之后出现以下情况则说明连接成功

{'displaySizeDpY': 640, 'currentPackageName': 'com.android.launcher3', 'sdkInt': 22, 'displaySizeDpX': 360, 'productName': 'm2', 'displayWidth': 540, 'screenOn': True, 'displayHeight': 960, 'naturalOrientation': True, 'displayRotation': 0}
也可以对natural0rientation做判断,如果为True则表示连接成功,反之则表示失败.

这样的话就可以真正的开始自动化测试了!!

2. 操作

提示: 最好到https://github.com/openatx/uiautomator2这里先熟悉基本操作的函数(其实里面写的也都是最基本操作)

在这里我就不一一介绍它的函数了,直接上代码与逻辑.

2.1 首先先确保你已经连上了你的设备(无论哪个),这样才能进行接下来的操作

2.2 在上一篇文章里已经介绍了weditor的使用,在输入框内输入你已连接设备的序列号或者ip地址,然后点击连接,如果长时间页面没有出现连接设备的当前页面时可以点击左下角的Home键它也会连接你的设备

注意: 一次只能连接一个设备

2.3 如果页面出现的连接设备的当前设备之后,那么只需要会这么一个步骤你就可以开始的自动化测试了,当然前提是你得熟悉uiautomator2的基本操作

2.4 如上图所示,如果你想点击某个点的时候,只需要先在这里获取这个点的位置,就可以很轻松的实现操作了

2.5 就这样,你已基本掌握了uiautomator2的使用方法了

项目已上传https://github.com/zhixideyu/uiautomator2---FaceBook

---------------------
作者:窒息的鱼
来源:CSDN
原文:https://blog.csdn.net/qq_41664526/article/details/81103453
版权声明:本文为博主原创文章,转载请附上博文链接!

使用uiautomator2自动化测试app(二)------操作篇的更多相关文章

  1. Mysql优化(出自官方文档) - 第十二篇(优化锁操作篇)

    Mysql优化(出自官方文档) - 第十二篇(优化锁操作篇) 目录 Mysql优化(出自官方文档) - 第十二篇(优化锁操作篇) 1 Internal Locking Methods Row-Leve ...

  2. Appium移动自动化测试(二)--安装Android开发环境(转)

    Appium移动自动化测试(二)--安装Android开发环境 2015-06-04 17:30 by 虫师, 35299 阅读, 23 评论, 收藏, 编辑 继续Appium环境的搭建. 第二节   ...

  3. 【如何快速的开发一个完整的iOS直播app】(原理篇)

    原文转自:袁峥Seemygo    感谢分享.自我学习 目录 [如何快速的开发一个完整的iOS直播app](原理篇) [如何快速的开发一个完整的iOS直播app](播放篇) [如何快速的开发一个完整的 ...

  4. iOS:app直播---采集篇

    [如何快速的开发一个完整的iOS直播app](采集篇) 转载自简书@袁峥Seemygo:http://www.jianshu.com/p/c71bfda055fa 前言 开发一款直播app,首先需要采 ...

  5. iOS:app直播---原理篇

    [如何快速的开发一个完整的iOS直播app](原理篇) 转载自简书@袁峥Seemygo:http://www.jianshu.com/p/7b2f1df74420   一.个人见解(直播难与易) 直播 ...

  6. python自动化测试应用-第6篇(WEB测试)--Selenium元素篇

    篇6                            python自动化测试应用-Selenium基础篇 --lamecho 1.1概要 大家好!我是lamecho(辣么丑),上一篇我们搭建好p ...

  7. .NET Core快速入门教程 2、我的第一个.NET Core App(Windows篇)

    一.前言 本篇开发环境?1.操作系统: Windows 10 X642.SDK: .NET Core 2.0 Preview 二.安装 .NET Core SDK 1.下载 .NET Core下载地址 ...

  8. .NET Core快速入门教程 3、我的第一个.NET Core App (CentOS篇)

    一.前言 本篇开发环境?1.操作系统:CentOS7(因为ken比较偏爱CentOS7)2.SDK版本:.NET Core 2.0 Preview 你可能需要的前置知识1.了解如何通过Hyper-V安 ...

  9. Sass进阶之路,之二(进阶篇)

    Sass之二(进阶篇) 1. 数据类型 1.1 Number 数字类型,小数类型,带有像素单位的数字类型,全部都属于Number类型 Number类型详情请点击这里,下面是小例子 1.$n1: 1.2 ...

随机推荐

  1. vue项目使用html5+ barcode扫码在苹果遇到的问题以及自己的解决方法

      之前在记录扫码 在安卓时,会出现黑屏,错位,闪退等等问题.解决方法在另一篇文章里 https://www.cnblogs.com/huzhuhua/p/11064764.html . 当时以为 是 ...

  2. echart添加轴最小值,最大值,间隔以及设置线条颜色

    yAxis: [{ type: 'value' }, { type: 'value', name: '上证指数', //设置最小值,最大值,间隔 min: 1000, max: 6000, inter ...

  3. MongoDB(NoSQL) 非关系型数据库

    目录 简单了解 mongoDB 简单使用mongoDB 简单了解 mongoDB # NoSQL 泛指非关系型的数据库 NoSQL(NoSQL = Not Only SQL ),意即"不仅仅 ...

  4. 记使用pyspider时,任务不执行的问题原因:save太大。

    pyspider使用save传递大量文本时,如果是mysql数据库,有可能出现问题,因为任务表默认用的blob字段.字符数是有限制的. 解决办法就是手动把字段类型改成longblob. 希望作者能直接 ...

  5. PHP开发环境WAMP(Windows+Apache+MySQL+PHP)搭建

    关于PHP开发环境这一块,网上有很多的集成环境可以使用,eg. WampServer,XAMPP,PhpStudy,Appserv ...用起来也很方便(但是我并没有比较过哪个更好用一点),但是呢,比 ...

  6. SQLAlchemy的常用数据类型

    SQLAlchemy常用的数据类型 Column 代表数据库表中的一列 是创建对象时数据类型所依赖的对象,通过在Column对象中指明具体的数据类型来实现相应的数据库表中的列的格式自定义. Strin ...

  7. 【Netty】初识Netty

    一.为什么会出现Netty 之前我们使用通用的应用程序或库来相互通信.例如,我们经常使用HTTP客户机库从web服务器检索信息,并通过web服务调用远程过程调用.然而,通用协议或其实现有时伸缩性不是很 ...

  8. ELK快速入门(四)filebeat替代logstash收集日志

    ELK快速入门四-filebeat替代logstash收集日志 filebeat简介 Filebeat是轻量级单用途的日志收集工具,用于在没有安装java的服务器上专门收集日志,可以将日志转发到log ...

  9. Java自动化环境搭建笔记(3)

    Java自动化环境搭建笔记(3) 自动化测试 自动化的环境已经基本搭建完成,后续可对BaseTester基类以及工具类进行扩展.下面便是持续集成的环境的搭建: Jenkins安装 git安装 源码上传 ...

  10. Mincut 最小割 (BZOJ1797+最小割+tarjan)

    题目链接 传送门 思路 根据题目给定的边跑一边最大流,然后再在残留网络上跑\(tarjan\). 对于每一条边有: 如果它是非满边,那么它一定不是最小割集里面的边: 如果\(c[u[i]] \not= ...