python中uiautomator_Python-uiautomator使用说明文档

这个Python库是基于Android自带的uiautomator测试框架的一个python封包。适用于Android 4.1以上版本,需要通过adb连接Android设备。

from uiautomator import device as d

d . screen.on()

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

安装

pip install uiautomator

前置条件

安装 Android的SDK,设置Android_home环境以正确的路径。

启动 adb 并且通过usb数据线将电脑与Android设备相连接。

设置Android设备,在开发者选项中允许未知来源应用安装。

导入uiautomator

如果仅有一台设备或在 Android_serial 环境变量中配置。

from uiautomator import device as d

通过设备的设备ID来确定设备对象:

from uiautomator import Device

d=Device('014E05DE0F02000E')

通过其他计算机的端口及连接运行adb服务

虽然 adb 支持sdk 4.3的 -a选项 ,但是现在它有问题。在所有非本地服务上启动adb监听服务使用

adb -a -P 5037 fork-server server &

from uiautomator import Device

d=Device('014E05DE0F02000E', adb_server_host='192.168.1.68', adb_server_port=5037)

注:在下面的例子中,我们使用d代表Android设备对象。

基本API用法

此部分通过一些简单的示例显示设备的正常操作。

检索设备信息

d.info

以下是我这里得到的信息:

{u'displayRotation': 0,

u'displaySizeDpY': 640,

u'displaySizeDpX': 360,

u'currentPackageName': u'com.android.launcher',

u'productName': u'takju',

u'displayWidth': 720,

u'sdkInt': 18,

u'displayHeight': 1184,

u'naturalOrientation': True

设备的关键时间操作

打开/关闭屏幕

#在屏幕上打开

d.screen.on()

#关闭屏幕

d.screen.off()

替代方法是:

#唤醒设备

d.wakeup()

#睡眠设备,一样关闭屏幕。

d.sleep()

按硬/软键

#按home键

d.press.home()

#按返回键

d.press.back()

#正常的方式按返回键

d.press( “back”)

#按下键码0×07(‘0’)与ALT (0X02)

d.press(0x07,0X02)

目前下列按键支持上述方法

home

back

left

right

home

back

left

right

up

down

center

menu

search

enter

delete(or del)

recent(recent apps)

volume_up

volume_down

volume_mute

camera

power

down

center

menu

search

enter

delete(or del)

recent(recent apps)

volume_up

volume_down

volume_mute

camera

power

在设备上模拟手势交互

#点击屏幕

# click (x, y) on screen

d.click(x, y)

#长按屏幕

# long click (x, y) on screen

d.long_click(x, y)

滑动

# swipe from (sx, sy) to (ex, ey)

#从sx,sy坐标滑动至ex,ey坐标

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

# swipe from (sx, sy) to (ex, ey) with 10 steps

d.swipe(sx, sy, ex, ey, steps=10)

拖动

# drag from (sx, sy) to (ex, ey)

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

# drag from (sx, sy) to (ex, ey) with 10 steps

d.drag(sx, sy, ex, ey, steps=10)

设备屏幕的事件

有以下几种属性:

natural 或者 n 代替

left 或者 l 代替

right 或者 r 代替

upsidedown或 u(不能设定)

#获取orientation(方向),可能是上述中的任意一种

orientation = d.orientation

#设置定向和冻结旋转。

#说明:"upsidedown"不能用于Android 4.3 以前的版本

d.orientation="l"

d.orientation="r"

d.orientation="n"

锁定/解除旋转

#锁定旋转

d.freeze rotation()

#解除旋转锁定

d.freeze_rotation(False)

屏幕截图

获取屏幕截图并且将其存本机地址中,命名为home.png,不能被用于Android 4.2以前的版本

d.screenshot("home.png")

将屏幕结构储存(就是使用uiautomatorviewer看到的那个结构,以xml格式保存)

#将当前屏幕结构保存在本机并命名为"heiera

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值