1、引用模块
import uiautomator2 as u2
2、device 连接
d = u2.connect(device) #通过IP连接
d = u2.connect_usb(device) #通过adb连接
3、方法使用
d(resourceId="android:id/input").set_text("wifi") #通过搜索框输入应用名筛选
time.sleep(2)
d(text='wifi').click()
time.sleep(1)
if d(text=u'省电策略').exists:
d(text=u'省电策略').click()
time.sleep(1)
d(text=u'无限制').click()
time.sleep(1)
d(description=u'返回').click()
4、其中text、description,resourceId等都可以通过weditor来查询
1)安装weditor
pip install weditor ==0.6.4
2)安装后检查是否成功:
weditor -v
3)启动weditor,会打开浏览器,如下图
python -m weditor
(注:若不能打开浏览器,在python3安装路径中打开cmd,输入weditor或输入python -m weditor)
5、
1)读设备,获取的结果填入第一个红框中,connect之后显示小绿叶标志
adb devices
2)点击Dump Hierarchy,刷新之后显示手机页面,可以进行静态动态的切换(动态缓冲较慢)。
注:每次设备disconnect之后,都需要
3)定位元素的方法支持uiautomator的定位方法,也可以支持xpath和坐标定位
①可以查看元素的resourceId属性
②自动生成xpath定位方法
③支持坐标点击,根据屏幕的比例
⑤自动生成uiautomator定位方法参考代码
⑥可以勾选强制使用xpath
4)右上角可以支持在线测试code,需要自行摸索了,谢谢
附其他uiautomator2的其他方法
1. 查找元素
- d.app_wait(timeout) - 等待app加载指定秒数
- d.xpath(xpath) - 根据xpath查找元素
- d.id(id) - 根据资源id查找元素
- d.by_text(text) - 根据文本内容查找元素
- d.child_by_text(parent, text) - 根据父元素和文本查找子元素
- d.sibling_by_text(sibling, text) - 根据兄弟元素和文本查找元素
2. 元素交互
- el.click() - 点击元素
- el.long_click() - 长按元素
- el.send_keys(text) - 输入文本
- el.clear_text() - 清除文本
- el.get_text() - 获取元素文本
- el.set_text(text) - 设置元素文本
- el.swipe(direction, steps) - 滑动元素
- el.drag_to(target) - 拖拽元素到目标位置
- el.pinch() - 对元素执行捏合手势
- el.double_click() - 双击元素
3. 滑动和滚动
- d.swipe(fx, fy, tx, ty) - 滑动屏幕
- d.swipe_ext(fx, fy, tx, ty, duration=0.1) - 滑动屏幕指定时间
- d.scroll(direction, distance) - 滚动屏幕
- d.scroll_to(text) - 滚动至包含指定文本的元素
#swipe_ext只需要提供方向:right,left,down,up
d.swipe_ext("right")
4. 屏幕操作
- d.screen_on() - 唤醒屏幕
- d.screen_off() - 锁定屏幕
- d.open_notification() - 打开通知栏
- d.open_quick_settings() - 打开快速设置栏
5. 设备信息
- d.info - 获取设备信息
- d.devices() - 获取已连接设备列表
- d.device_info - 获取当前连接设备的信息