android x866.0 教程,poco脚本编写之api
连接设备后使用poco
使用connect_device连接好指定设备后,会返回一个Device对象,将这个对象传入 AndroidUiautomationPoco第一个参数里进行poco的初始化,
接下来使用此poco 实例将会获取所指定的设备的UI和对其进行操作。
fromairtest.core.api import connect_devicefrompoco.drivers.android.uiautomation import AndroidUiautomationPoco
dev= connect_device('Android://:/')
poco= AndroidUiautomationPoco(dev)
Andorid注意事项
版本越高越好
需要Android SDK API version ≥ 19,即Android 4.4及以上,越高版本兼容性越好。
使用poco
在Android原生应用上使用poco不需要配置任何依赖,只需手机处于usb调试模式即可(部分手机需要连同usb安装、usb模拟点击等权限一起打开,均位于开发者选项里)。
在初始化poco 实例时,会自动向手机里安装PocoService.apk,如果此时弹出安装提示,请点击同意,否则poco无法使用,一共会安装两个app进去。
什么时候初始化poco
1、ide中选择android的模式
2、代码中创建poco对象
脚本编写
调用文件外部方法
如果想要在一个.air脚本中,调用另外一个.air脚本里封装的公用函数,可以这样做:
from airtest.core.api import using
using("common.air")
from common import common_function
common_function()
元素定位
使用Poco选择UI对象
属性选择器
选出所有满足给定条件的UI
括号里的参数就是所给定的条件,用属性名值对表示
其中第一个参数固定表示 节点名
其余可选参数均表示节点的属性及预期的属性值。
poco('bg_mission')
poco('bg_mission', type='Button')
poco(textMatches='^据点.*$', type='Button', enable=True)
poco(name='com.zhihu.android:id/magi_title', textMatches='^古剑奇谭三.*$').click()//text模糊匹配
相对选择器
直接用节点属性没法选出你所想要的UI时,还可以通过UI之间的渲染层级关系进行选择,例如父子关系、兄弟关系、祖先后代关系。
poco('main_node').child('list_item').offspring('item')
api
点击(click)
点击默认点在 锚点上(一般就是正中央的点)
poco('bg_mission').click()
poco('bg_mission').click('center')
poco('bg_mission').click([0.5, 0.5]) # equivalent to center
poco('bg_mission').focus([0.5, 0.5]).click() # equivalent to above expression
拖拽(drag)
与 swipe 不同的是, darg 是从一个UI拖到另一个UI,而 swipe 是将一个UI朝某个方向拖动
poco(text='突破芯片').drag_to(poco(text='岩石司康饼'))
等待出现(wait)
一段时间内查找元素。超时则报错
poco('bg_mission').wait(5).click() # wait 5 seconds at most,click once the object appears
poco('bg_mission').wait(5).exists() # wait 5 seconds at most,return Exists or Not Exists
局部定位(focus (local positioning)),归一化坐标系
锚点在盒子上的哪个位置,
锚点就是操作的起点
所有UI相关的操作都默认以UI的 anchorPoint 为起点,
自定义锚点
如果想自定义起点那么可以使用 focus方法。
focus 所使用的是局部坐标系,UI包围盒的左上角为原点,x轴向右,y轴向下,并且包围盒长宽均为单位1。很显然中心点就是 [0.5, 0.5] 。
poco('bg_mission').focus('center').click() # click the center
将 focus 和 drag_to 结合使用还能产生卷动(scroll)的效果,下面例子展示了如何将一个列表向上卷动半页。
scrollView = poco(type='ScollView')
scrollView.focus([0.5, 0.8]).drag_to(scrollView.focus([0.5, 0.2]))
全局操作(Global Operation)
在没有选定或指定UI的情况下也可以进行操作(模拟输入),也叫全局操作。
点击(click)
poco.click([0.5, 0.5]) # click the center of screen
poco.long_click([0.5, 0.5], duration=3)
滑动(swipe)
方法1:
# swipe from A to B
point_a = [0.1, 0.1]
center = [0.5, 0.5]
poco.swipe(point_a, center)//推荐
方法2:
# swipe from A by given direction
direction = [0.1, 0]//向量
poco.swipe(point_a, direction=direction)
方法3:
scrollView = items[0]
scrollView.focus([0.5, 0.9]).drag_to(scrollView.focus([0.5, 0.2]))
方法4:
//操作元素滑动,操作元素就有锚点,锚点就是操作起点,如果你想改变起点请使用下面的 focus 方法,然后朝给定向量所代表的方向滑动,距离也就是向量的长度
joystick = poco('movetouch_panel').child('point_img')
joystick.swipe('up')
joystick.swipe([0.2, -0.2]) # swipe sqrt(0.08) unit distance at 45 degree angle up-and-right
joystick.swipe([0.2, -0.2], duration=0.5)
截屏(snapshot)
install("path/to/your/apk")
start_app("package_name_of_your_apk")
uninstall("package_name_of_your_apk")
读取元素
mission_btn = poco('bg_mission')
print(mission_btn.attr('type')) # 'Button'
print(mission_btn.get_text()) # '据点支援'
print(mission_btn.attr('text')) # '据点支援' equivalent to .get_text()
print(mission_btn.exists()) # True/False, exists in the screen or not
写脚本技巧
title_obj_list = poco(name='com.zhihu.android:id/magi_title')
title_list = [title.get_text() for title in title_obj_list]
discuss_obj_list = poco(name='com.zhihu.android:id/magi_count')
discuss_list = [discuss.get_text() for discuss in discuss_obj_list]
for title, discuss in zip(title_list, discuss_list):
print(title, discuss)
android x866.0 教程,poco脚本编写之api相关推荐
- android x866.0 教程,海尔暴风AmlogicT866平台升级步骤教程
一.本地升级(可开机进入系统设置升级): 1.将本地升级软件包"update"拷贝至U盘里,插入电视USB端口,打开电视进入系统设置选择本地升级. 1.png (75.07 KB, ...
- android 5.0 刷机教程,一加手机怎么升级安卓5.0系统?一加手机刷Android 5.0教程
谷歌今天正式发布了最新的安卓5.0正式版,作为一次非常大的系统升级,安卓5.0带来了非常多明显的升级,体验上相比安卓4.4要精进不少.在众多手机纷纷向Android 5.0发起冲击之时,日一加手机官方 ...
- Android Studio2.0 教程从入门到精通Windows版
系列教程 Android Studio2.0 教程从入门到精通Windows版 - 安装篇 Android Studio2.0 教程从入门到精通Windows版 - 入门篇 Android Studi ...
- android5.0刷机,一加手机怎么升级安卓5.0 一加手机刷Android 5.0教程
谷歌今天正式发布了最新的安卓5.0正式版,作为一次非常大的系统升级,安卓5.0带来了非常多明显的升级,体验上相比安卓4.4要精进不少.在众多手机纷纷向Android 5.0发起冲击之时,日一加手机官方 ...
- Android Studio2.0 教程从入门到精通MAC版 - 安装篇
来自:http://www.open-open.com/lib/view/open1466430392743.html 前言 这个教程你将学会如何使用Android Studio2.0开发Androi ...
- android版本升级5.0,安卓系统升级到Android 5.0教程【详解】
很多安卓手机用户在得知Android 5.0系统推出后,都很想将自己的手机系统升级成5.0.但是,,目前,Android 5.0只推送了部分手机,其他的安卓用户想要使用此系统的话,就要来看一看小编今天 ...
- 小米5怎样升级android,小米5开发版怎么升级Android 7.0?小米5开发版升级Android 7.0教程...
Android 7.0系统已经陆续推送,今天小米5手机的Android 7.0终于公测了,虽然只限于开发版,但是小伙伴们总算有盼头了!小米5开发版怎么升级Android 7.0?下面小编为大家带来小米 ...
- android怎么升级版本5.0,安卓系统升级到Android 5.0教程【详解】
很多安卓手机用户在得知Android 5.0系统推出后,都很想将自己的手机系统升级成5.0.但是,,目前,Android 5.0只推送了部分手机,其他的安卓用户想要使用此系统的话,就要来看一看小编今天 ...
- android 5.0按钮不可用,Android 5.0 教程:解决 Smart Lock 不能正常工作问题
Smart Lock 是 Andoird 5.0 新引入的智能解锁方案,它可以在信任的蓝牙/NFC 设备.地点实现免密码解锁,关于 Smart Lock 的详细功能介绍大家可参阅这篇文章.这个功能一经 ...
最新文章
- ECCV 2020 | 对损失信息进行建模,实现信号处理高保真还原
- 2018计算机职称考试题,2018年职称计算机Powerpoint考试试题及答案
- c语言115写成16进制,C语言指针问题
- Go 语言 Session机制和 Cookie机制
- 《云计算揭秘企业实施云计算的核心问题》——导读
- 《Arduino计算机视觉编程》一3.3 总结
- python初学者代码示例_python基础示例
- Java充电宝模型设计_继续探讨点赞功能模块设计
- java日期转换_java日期格式转换
- Atitti 类库 开发者 常用 api 目录 1.1. Meta anno注解元数据api	1 1.2. Ref 反射api	1 1.3. Database meta api	1 1.4.
- java IEnumerator_获取实现接口的所有类型
- 不用找,你想要的简约ppt模板素材都在这里
- 智能交通综合管控平台方案
- mysql 存储特殊符号_mysql 存储特殊符号
- linux命令练习4:cat命令;sort命令;grep命令以及cut命令练习
- 组件(component)技术介绍
- SLAM中的边缘化舒尔补
- Lasso 的 python实现
- java基础知识复习(上半)
- html如何让table表格垂直(上下)居中