安卓自动化测试,贺晓聪之uiautomator设备和选择器~Python详解

  • 时间:
  • 浏览:0

设置/清除字段或编辑文本

下面依次进行解读:

总之:要尽不可能 的使用选用器唯一选用另有有三个被选用对象(UiObject)

贺晓聪原文:

Supports two gestures:

选用器是在当前窗口中标识特定的UI对象。可理解为:UiObject对象

2.3、index选用器及instance,比较容易混淆的另有有三个,另有有三个是选用器,另有有三个代表索引,如下:

长时间点击特定的ui对象,双击?

同类:

d(textContains="ame").set_text("John")

返回值解释如下:

在屏幕上拖拽

首先说明child选用器,sibling选用器:分别可理解为:子选用器(可嵌套),兄弟姐妹选用器

Possible properties:

设备属性:orientation 不可能 取得值为:

Next keys are currently supported:

目前,在uiautomator中支持以下属性选用器:

displayRotation  0 代表竖屏 1 代表横屏

同类:

instance 的用法:当你的选用器返回的结果都有指向唯一元素时(另有有三个不可能 多个),假使 你通过instance进行选用。

3 point gesture

语法:from uiautomator import device as d

textContains,textMaches,textStartsWith 分别代表:带有,正则表达式,以XXX开头等

2.1、text选用器(支持在uiautomator中Text属性不为空的元素)

单击屏幕坐标点

在此,我写的依据如下:<没有 具体验证,仅仅而是演示>

锁屏/解除锁屏

However, uiautomator provides list like methods to use it.

检查屏幕请况,关闭OR点亮?

2.2、className,classNameMatches 类选用器 及 descriptiondescriptionContainsdescriptionMatchesdescriptionStartsWith 描述选用器 及 packageNamepackageNameMatches 包选用器 及 resourceIdresourceIdMatches ResId选用器用法和text选用器同类,都不必 多属性选用器结合在一同使用。

productName  当前设备名称

检索特定UI对象的信息(Retrieve the info of the specific ui object)

将UI对象拖动到另许多

注意:(不可能 notification不可能 打开了,调用d.open.quick_settings()不必打开快速设置)

执行单击特定的UI对象

下面的哪此按键也是被支持的,如下:

听候空闲或窗口更新(Wait for idle or window update)

Two point gesture from one point to another

长按屏幕坐标点

1.1、获取设备信息

naturalOrientation 当 displayRotation 取值为 1 时,也而是说当前是横屏请况时,取值为False,为竖屏请况时,取值为:True

1.4、与设备交互(单击、长按、滑动(手势密码)、拖拽)

index选用器对应uiautomator的index属性,如下:

具体用法如下:

(结果为列表List),如下:

sdkInt 当前SDK版本

在屏幕上滑动

Two point gesture on the specific ui object

等到特定的UI对象出先或消失

1.3、系统常用按键

示例代码如下:

d(text="Name").set_text("John")

1.2、点亮或熄灭屏幕(Turn on/off screen)

displayWidth  当前设备屏幕强度  当 displayRotation 取值为 1 时,也而是说当前是横屏请况时,displayWidth 取值会和 displayHeight 互换

滑动分为三个方向:left ,right,top ,bottom 即:左滑动 右滑动 上滑动 及向下滑动

1.5、屏幕操作及屏幕方向获取与控制<上述:displayRotation  0 代表竖屏 1 代表横屏>,竖屏分为 natural(自然的,正常的竖屏) 和 upsidedown(倒过来的竖屏),横屏分为向左和向右另有有三个方向,分别为:left 和 right 

除了不必 进行选用UiObject对象以外,大家亦不必 使用选用器设置许多元素的值,如下:

感谢贺晓聪的无私奉献,谢谢!

在具体的UI对象执行甩(滚动)Perform scroll on the specific ui object(scrollable)

截屏操作

检测特定的UI对象是否是居于(Check if the specific ui object exists)

其用法和text选用器大同小异,不过在此都要指出的是,许多窗体中index取值会居于改变,假使 ,能不必index选用器的,尽不可能 不必!

滑动UI对象

2.4、获取选定的UI对象请况及其信息(Get the selected ui object status and its information)

在此,说明下child、sibling选用器和index选用器及instance选用器(严格讲instance都有选用器,仅仅而是在输出多个结果的请况下,不必 通过索引(下标)进行选用)

如上图右边要素,从上到下层次分为四层,最后一层的另有有三个元素可理解为兄弟姐妹,在此,大家不可能 要选用最下面的那个元素就不必 用到child选用器及sibling选用器,当然,此人 不建议使用孩子,兄妹选用器,不可能 能用许多依据实现,建议用许多依据:

返回值:

Sometimes the screen may contain multiple views with the same e.g. text, then you will have to use "instance" properties in selector like below:

d 即为设备对象

d(textStartsWith="Nam").set_text("John")

三种写法,如下:

引入uiautomator,获取设备对象<所谓设备对象可理解为:Android模拟器不可能 真机>

Perform scroll on the specific ui object(scrollable)-在具体的UI对象执行甩(滚动)

说明:在手机设备上,倒过来的屏幕很少见,假使 :d.orientation 取值 upsidedown 的不可能 性几乎没有

Possible properties:

displayHeight 当前设备屏幕强度  当 displayRotation 取值为 1 时,也而是说当前是横屏请况时,displayHeight 取值会和 displayWidth 互换

currentPackageName  当前的Activity的Package名字

打开通知或快速设置

语法:d.info

Multiple instances