Uiautomator2教程

参考:
uiautomator2 库中文手册,非常详细
使用uiautomator2自动化测试app 实用
uiautomator2-快速入门app自动化测试 视频学习

获取设备信息详解

displayRotation  0 代表竖屏 1 代表横屏

currentPackageName  当前的Activity的Package名字

productName  当前设备名称

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

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

sdkInt 当前SDK版本

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

连接手机的端口号查看方法

adb forward --list

appium Vs Uiautomator2

  • appium可以跨平台,跨语言,Uiautomator仅适用python
  • appium(标准化),大部分公司使用appium

定位方式

• text(完全等于,完全匹配), textContains(包含文本), textMatches(用正则表达式匹配文本), textStartsWith(文本开头)
• className, classNameMatches
• description, descriptionContains, descriptionMatches, descriptionStartsWith
• checkable, checked, clickable, longClickable
• scrollable, enabled,focusable, focused, selected
• packageName, packageNameMatches
• resourceId, resourceIdMatches
• index, instance(多元素定位时用)

多条件定位

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

多元素定位

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

点击方式

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)

等待(隐式等待)

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和断言

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

猜你喜欢

转载自blog.csdn.net/Mwyldnje2003/article/details/113111262