Uiautomator2 tutorial

Reference:
uiautomator2 library Chinese manual , very detailed
use uiautomator2 automated test app practical
uiautomator2- quick start app automated test video learning

Get detailed equipment information

displayRotation  0 代表竖屏 1 代表横屏

currentPackageName  当前的Activity的Package名字

productName  当前设备名称

displayWidth  当前设备屏幕宽度  当 displayRotation 取值为 1 时,也就是说当前是横屏状态时,displayWidth 取值会和 displayHeight 互换

displayHeight 当前设备屏幕高度  当 displayRotation 取值为 1 时,也就是说当前是横屏状态时,displayHeight 取值会和 displayWidth 互换

sdkInt 当前SDK版本

naturalOrientation 当 displayRotation 取值为 1 时,也就是说当前是横屏状态时,取值为False,为竖屏状态时,取值为:True

How to view the port number of the connected mobile phone

adb forward --list

appium Uiautomator2 Vs.

  • Appium can be cross-platform, cross-language, Uiautomator is only applicable to python
  • appium (standardized), most companies use appium

Targeting

• text (exactly equal, exact match), textContains (including text), textMatches (matching text with regular expressions), textStartsWith (start of text)
• className, classNameMatches
• description, descriptionContains, descriptionMatches, descriptionStartsWith
• checkable, checked, clickable, longClickable
• scrollable, enabled,focusable, focused, selected
• packageName, packageNameMatches
• resourceId, resourceIdMatches
• index, instance (for multi-element positioning)

Multi-condition targeting

import uiautomator2 as u2
d = u2.connect("ed05d469")
d(text = "手机",checkable = True, checked=True).click()

Multi-element positioning

import uiautomator2 as u2
d = u2.connect("ed05d469")
d(text = "手机" instance=2).click()   # 将查找到的text属性为“手机”的元素,第3个元素

Click method

import uiautomator2 as u2

#点击操作共三种方式
#1、定位元素后点击
d = u2.connect("ed05d469")
d(resourceid = "com.sinovatech.unicom.ui:id/home_gridview_item_imageView").click()

#2、根据绝对坐标直接点击

d.click(74, 150)

#3 根据坐标百分比
d.click(0.069, 0.066)

Swipe

# 滑动操作
#1、d.swipe(self, fx,fy,tx,ty,duration, steps=None)
d.(800,500,100,500,10)
#2、d.swipe_ext(direction, scale)  参数为滑动方向(left,right,up,down),和滑动屏幕的百分比
d.swipe_ext("left",scale=0.9)
#3、元素滑动 定位元素,
e = d(text="手机")
e.swipe('down',steps=100)

Wait (implicit wait)

d = u2.connect("ed05d469")
d.wait_timeout = 30
d.implicitly_wait(30)

d.app_start("com.sinovatech.unicom.ui", wait=True)

# 等待页面加载
d.wait_activity()
#等待元素出现
d().wait()
#等待元素小时
d().wait_gone()
#等待元素是否存在
d().exit()
# 等待点击,设置隐藏等待后 click clear_text()

d(resourceid = "com.sinovatech.unicom.ui:id/home_gridview_item_imageView").click(timeout=50)


toast and assertion

assert d.toast.get_message() =="手机号是否为空"

Guess you like

Origin blog.csdn.net/Mwyldnje2003/article/details/113111262