uiautomator2常用语法

连接设备

使用USB连接:

d=u2.connect_USB('148b4090')输入手机序列号

d是给当前连接设备定位一个变量

获取设备的信息:

print(d.info)

获取当前APP的活动窗口和包名:

print(d.current_app())

获取窗口的大小:

print(d.window_size())

打开关闭app

打开app:

d.app_start(‘’)传入APP的包名称

关闭app

d.app_stop(‘’)传入APP的包名称

停止所有正在运行的程序:

d.app_stop_all()只能关闭已经打开正在运行的第三方APP不能关闭后台运行的APP,包名只能停止自定义安装的app

停止所有正在运行的程序设置白名单d.app_stop_all(excludes=[‘’])引号里面传入一个APP的包名

元素的定位和操作

元素的定位方法:

ResourceId定位:

d(resourceId="com.smartisanos.clock:id/text_stopwatch").click()

Text定位:

d(text="秒表").click()

ClassName定位:

d(ClassName="com.smartisanos.clock:id/text_stopwatch").click()

description定位:

d(description='短信').click

Instance定位到第几个:

如果页面存在多个相同的元素可以使用instance进行选择;

三个相同的元素他们的resourceid和ClassName选择一个即可,然后在使用instance:

第一个:d(resourceId="com.netease.cloudmusic:id/a6w", className="android.widget.ImageView").click()

第二个:d(resourceId="com.netease.cloudmusic:id/a6w", className="android.widget.ImageView", instance=1).click()

第三个:d(resourceId="com.netease.cloudmusic:id/a6w", className="android.widget.ImageView", instance=2).click()

元素的操作方法

对定位到的元素点击:

d(text="Settings").click()

对定位到的元素长按

d(text="Settings").long_click()

等待元素出现,返回True为出现false为没有出现:可用于做判断处理

d(text="Settings").wait(timeout=10.0)

输入

d(text="Settings").set_text("你好")

手机屏幕和按键的操作

屏幕的操作

#打开屏幕:

d.screen_on()

#关闭屏幕:

d.screen_off()

获取当前屏幕状态:

d.info.get(' screenOn ')

解锁屏幕:

d.unlock()

点击屏幕:

d.click(x,y)

双击屏幕:

d.double_click(x,y)

d.double_click(X,Y,0.1)双击屏幕间隔时间

长按屏幕:

d.long_click(x,y)

d.long_click(X,Y,0.5)0.5为长按屏幕的时间

对屏幕的拖动:

d.swipe(sx, sy, ex, ey)传入开始坐标和结束坐标

d.swipe(sx, sy, ex, ey, 0.5)0.5代表拖动速度

或者

d.drag(sx, sy, ex, ey)

d.drag(sx, sy, ex, ey, 0.5)

滑动点:

d.swipe((x0, y0), (x1, y1), (x2, y2), 0.2)

截图:

d.screenshot("home.jpg")传入路径和名称

按键的操作:

手机的home键

d.press("home")

手机的返回键

d.press("back")

通知栏的操作:

打开通知栏

d.open_notification()

打开通知栏的设置

d.open_quick_settings()

shell命令

d.adb_shell(‘‘)直接传入shell命令即可

e)文件的导入导出

把文件从电脑导入手机

d.push(‘文件的路径加文件名’,’/sdcard/’)

把文件从手机导入电脑

d.pull("/sdcard/tmp.txt(手机文件的路径)", "拉 倒电脑后要改的名字")

d)针对弹窗的操作

d.disable_popups()#自动跳过弹出窗口

d.disable_popups(False)#禁用自动跳过弹出窗口

详情

更多方法请参考:https://github.com/openatx/uiautomator2

1、uiautomator2常用语法的更多相关文章

  1. Markdown通用的常用语法说明

    前言 Markdown 是一种轻量级的 标记语言,语法简洁明了.学习容易,还具有其他很多优点,目前被越来越多的人用来写作使用. Markdown具有一系列衍生版本,用于扩展Markdown的功能(如表 ...

  2. Markdown简介以及常用语法

    Markdown简介以及常用语法 最近发现用markdown记录东西很方便,感觉和emacs的org mode很类似,但是windows下使用emacs不是很方便.特此记录一下markdown常用的语 ...

  3. Sql常用语法以及名词解释

    Sql常用语法以及名词解释 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) D ...

  4. Markdown常用语法

    什么是Markdown Markdown 是一种方便记忆.书写的纯文本标记语言,用户可以使用这些标记符号以最小的输入代价生成极富表现力的文档. 通过Markdown简单的语法,就可以使普通文本内容具有 ...

  5. 2 hive的使用 + hive的常用语法

    本博文的主要内容有: .hive的常用语法 .内部表 .外部表 .内部表,被drop掉,会发生什么? .外部表,被drop掉,会发生什么? .内部表和外部表的,保存的路径在哪? .用于创建一些临时表存 ...

  6. sql 常用语法汇总

    Sql常用语法 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控 ...

  7. ES6常用语法

    ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES2015. ...

  8. python MVC、MTV 框架介绍 Django 模板系统常用语法

    Django 框架简介一.MVC框架和MTV框架1.MVC 全名Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分.优势: 耦合性低 重用性高 生命 ...

  9. PHP中Smarty引擎的常用语法

    PHP中Smarty引擎的常用语法 输出今天的日期: {$smarty.now|date_format:"%H:%M %A, %B %e, %Y"} 实际上用到了PHP的time( ...

随机推荐

  1. 【环境搭建与软件安装】How to install CUDNN or uninstall

    前言 CuDnn是用于深度学习的GPU加速库,安装好NVIDIA和CUDA之后,安装CuDnn就简单多了,可参考官方文档. 操作过程 1. 下载cuDnn. 需要在NVIDIA官网注册账号,登录之后下 ...

  2. 淡sqlserver对like '%关键词%' 处理时的索引利用问题

    说法一:百分号%通配符前置会让SQL查询不走索引,改走全表扫描.这种说法很流行 结论是错误的 事实上这种说法不太准确 通配符%前置会让SQL查找索引时效率极速下降,但在大多数情况下还是会走索引(不需要 ...

  3. 【嵌入式硬件Esp32】MQTT链接测试工具

    1.Eclipse Paho MQTT Utility GUI测试工具 下载地址: 链接:https://pan.baidu.com/s/1ivxk3DWJkod-jBsowlcoBA 提取码:0lp ...

  4. vue-cli3 element 分页组件el-pagination的基本使用

    <!--分页组件--> <el-pagination :total="total" :current-page="currentPage" : ...

  5. 小程序常用操作,if,for,跳转,弹出提示

    if <block wx:if="{{result.child_items}}"> ... </block> <block wx:else> . ...

  6. PHP 获取星期

    <?php function getWeek($time = 0) { $week_array=array('日', '一', '二', '三', '四', '五', '六'); //先定义一个 ...

  7. js实现之--防抖节流【理解+代码】

    防抖: 理解:在车站上车,人员上满了车才发走重点是人员上满触发一次. 场景:实时搜索,拖拽. 实现: //每一次都要清空定时器,重新设置上计时器值,使得计时器每一次都重新开始,直到最后满足条件并且等待 ...

  8. Kafka-Docker:使用Docker运行Apache Kafka的步骤

    1.目标 在这个Kafka教程中,我们将学习Kafka-Docker的概念.此外,我们将在Kafka中看到Docker的卸载过程.这包括使用Docker 运行Apache Kafka的所有步骤  .除 ...

  9. Java开发笔记(一百四十)JavaFX的选择框

    与Swing一样,JavaFX依然提供了三种选择框,它们是复选框CheckBox.单选按钮RadioButton.下拉框ComboBox,分别说明如下: 一.复选框CheckBox复选框允许同时勾选多 ...

  10. Django模板语言中静态文件路径的灵活写法

    如图,我们看到的时html页面中静态文件的路径,其中/static/是settings.py中的设置: 假设我们将settings.py中的/static/改变了,这样的话我们还需要将html中的/s ...