常用功能方法的整理和总结

导入

import uiautomator2 as u2

连接ADB设备:

可以通过USB或Wifi与ADB设备进行连接,进而调用Uiautomator2框架,支持同时连接单个或多个ADB设备。

USB连接:一个设备时,可简写

d = u2.connect()

USB连接:也可根据设备号进行连接

d = u2.connect("设备号")

无线连接:通过设备的IP连接(需要在同一局域网且设备上的atx-agent已经安装并启动)

d = u2.connect("10.1.2.3")

APP操作:

获取前台应用信息:d.app_current()

获取设备基本信息:d.info()

获取设备详细信息:d.device_info()

检查并维持设备端守护进程处于运行状态:d.healthcheck()

停用守护程序:d.service( 'uiautomator" ).stop()

安装应用(只能通过URL下载安装):d .app_install( 'http: / / some-domain.com/some .apk ' ) # 引号内为示例URL地址

启动应用:d . app_start( " com.demoapp.demo ') # 引号内为 App包名

停止应用:

# 强制停止应用:d .app_stop( ' com.example.hello_world " )

# 清空App数据:d .app_clear( ' com. example.hello_world )

停止所有正在运行的应用程序:d.app_stop_all()

停止所有正在运行的应用程序,除了com.examples.demo           d .app_stop_all(excludes=[ ' com.examples .demo' ])

push文件到设备:d .push( ""foo.txt", " / sdcard /")

push文件到设备和重命名:d.push("foo.txt", " /sdcard/bar.txt")

从设备中拉取文件:d .pull(" / sdcard/tmp.txt" ,"tmp.txt")  # 引号内为示例文件名

打开屏幕:d . screen_on()

关团屏幕:d . screen_off()

解锁屏幕:d.unlock() # 相当于打开屏幕并按home键

获取当前屏幕状态:d .info.get( 'screenon') # 返回布尔值

硬键盘和软键盘操作:

d . press( "home")  # 点击home键

d . press("back")  # 点击back 键

d .press("up")  # 点击上键

d .press(""down")  # 点击下键

d .press(""center" )  # 点击选中

d .press("menu")  # 点击menu按键

d.press( ""search")  # 点击搜索按键

d .press( ""enter")  # 点击enter键

d.press(""delete")  # 点击删除按键

d. press( ""recent"')  # 点击近期活动按键

d. press( ""volume_up")  # 音量+

d.press( ""volume_down")  # 音量-

d . press(""volume_mute")  # 静音

d .press(""camera")  # 相机

d .press(""power")  # 电源键

单击屏幕:d .click(x,y)

双击屏幕:

d .double_click(x,y)  # 连续单击两次

d .double_click(x,y,0.1)  # 默认两次单击之间间隔时间0.1秒

长按:d . long_click(x,y,0.5)  # 长按0.5秒(默认)

滑动:d.swipe( sx,sy,ex,ey,0.5)  # 滑动0.5秒(默认)

拖动:d .drag(sx, sy,ex,ey,0.5)  # 拖动0.5秒(默认)

截图:d. screenshot( "home .jpg")

下拉打开通知栏:d.open_notification()

单击U对象

元素/text/id/xpath/等

根据元素单击:d(text="xxxx" ).click()

根据坐标单击:d.click(182,1264)

等待元素出现(最多等待10秒),出现后单击:d(text=""xxxx" ).click(timeout=10)

双击特定的UI对象:d(text=“xxx").double_click()

长按特定UI对象的中心:d(text="xxxx" ).long_click()

更多U2的常用命令和元素定位方式等操作可网上自行学习,这里推荐一个帖子:UIAutomator2 常用命令整理 - 简书 (jianshu.com)

ui2 的下载安装与环境配置等,见之前写的一篇帖子:https://www.cnblogs.com/gancuimian/p/16725664.html

python + UIAutomator2 公共方法封装,见之前写的一篇帖子:https://www.cnblogs.com/gancuimian/p/16948536.html

 

uiautomator2 常用方法的更多相关文章

  1. 基于UiAutomator2+PageObject模式开展APP自动化测试实战

    前言 在上一篇<APP自动化测试框架-UiAutomator2基础>中,重点介绍了uiautomator2的项目组成.运行原理.环境搭建及元素定位等基础入门知识,本篇将介绍如何基于uiau ...

  2. 前端开发:Javascript中的数组,常用方法解析

    前端开发:Javascript中的数组,常用方法解析 前言 Array是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array ...

  3. Jquery元素选取、常用方法

    一:常用的选择器:(李昌辉) 基本选择器 $("#myDiv") //匹配唯一的具有此id值的元素 $("div") //匹配指定名称的所有元素 $(" ...

  4. python浅谈正则的常用方法

    python浅谈正则的常用方法覆盖范围70%以上 上一次很多朋友写文字屏蔽说到要用正则表达,其实不是我不想用(我正则用得不是很多,看过我之前爬虫的都知道,我直接用BeautifulSoup的网页标签去 ...

  5. C# Webbrowser 常用方法及多线程调用

    设置控件的值 /// <summary> /// 根据ID,NAME双重判断并设置值 /// </summary> /// <param name="tagNa ...

  6. list,tuple,dict,set常用方法

    Python中list,tuple,dict,set常用方法 collections模块提供的其它有用扩展类型 from collections import Counter from collect ...

  7. 记录yii2-imagine几个常用方法

    记录yii2-imagine几个常用方法: //压缩 Image::thumbnail('@webroot/img/test-image.jpg', 120, 120)->save(Yii::g ...

  8. DOM常用方法总结

    DOM(Document Object Model:文档对象模型)为javascript中的一部分,它为访问和修改html文档或xml文档提供了一些编程接口,DOM以对象的形式来描述文档中的内容,以树 ...

  9. JSP内置对象及常用方法

    jsp九大内置对象及四个作用域: 何为作用域 先让我们看看效果: 大概流程是这样的,我们访问index.jsp的时候,分别对pageContext, request, session,applicat ...

  10. java中集合类中Collection接口中的Map接口的常用方法熟悉

    1:Map接口提供了将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值.Map接口中同样提供了集合的常用方法. 2:由于Map集合中的元素是通过key,value,进行存储的,要 ...

随机推荐

  1. 搭建CentOS 7

    首先,操作系统要部署在哪一个盘符下就在哪一个盘符下创建一个空文件夹,用来存放实验环境.这里的实验环境的文件夹可以命名为CentOS 7 x64. VMware中,"文件"--&qu ...

  2. stl关联式容器的接口和实现

    红黑树的实现就不再记录了,详情可以去github上面翻翻源代码 set的接口和实现: map的接口和实现: hash_set接口与实现 hash_map接口和实现:

  3. 2.4G收发一体芯片NRF24L01P跟国产软硬件兼容 SI24R1对比

    超低功耗高性能 2.4GHz GFSK 无线收发器芯片Si24R1Si24R1 是一颗工作在 2.4GHz ISM 频段,专为低功耗无线场合设计,集成嵌入式ARQ 基带协议引擎的无线收发器芯片.工作频 ...

  4. Winfrom ComboBox中的性能探索

    在为Control维护元素列表的过程中,会不可避免的造成性能损耗,我们接下来要探究的就是哪种方式才是我们的最优解. 方案比较 以ComboBox为例,常见的方式一共有两种:Add.AddRange. ...

  5. 事务与spring事务

    事务 事务的特性(ACID) 原子性(Atomicity): 标识将事务中所有的操作进行捆绑层一个不可分割的单元格,计对事务所有进行的数据库修改等操作,要么全部执行,要么就是全部失败隔离性(Isola ...

  6. 使用MVC编程模型通过flask蓝图实现前端后台新闻发布系统

    相关知识点: flask:是Python开发轻量级框架,也能很好的开发动态网站. 蓝图:flask中蓝图能很好的实现代码分割管理,从而不使代码全部放在app.py杂乱无章,蓝图就像动物管理员一样,把猫 ...

  7. Linux上面配置Apache2支持Https(ssl)具体方案实现

    虽然Nginx比较流行,但是由于一些老项目用到了Apache2来支持Web服务,最近想给服务上一个Https支持,虽然看似教程简单,但是也遇到一些特殊情况,经历了一番折腾也算是解决了所有问题,将过程记 ...

  8. mysql修改密码报错:Your password does not satisfy the current policy requirements

    这是 mysql 初始化时,使用临时密码,修改自定义密码时,由于自定义密码比较简单,就出现了不符合密码策略的问题. 密码策略问题异常信息: ERROR 1819 (HY000): Your passw ...

  9. laravel request lifecycle

    1,  index.php2, 生成service container3,  service provider register/booted4, dispatch routing5, middlew ...

  10. clear_buff-cache.sh

    #! /bin/bash sync;echo 1 > /proc/sys/vm/drop_caches # 表示清除pagecache sync;echo 2 > /proc/sys/vm ...