python-UiAutomator学习&使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python-UiAutomator学习&使用相关的知识,希望对你有一定的参考价值。
一、安装
源码地址:
https://github.com/xiaocong/uiautomator#basic-api-usages
①下载zip包,解压到本地目录下
②进入对应目录下,执行
$sudo python setup.py install
命令行提示uiautomator安装成功,现在可以开始用python编写uiautomator脚本了~~
二、使用
https://github.com/xiaocong/uiautomator#basic-api-usages
作者提供了所有API的解释说明,可直接查询使用。
还有个PPT,PPT地址:
http://xiaocong.github.io/slides/android-uiautomator-and-python/#/main
以下是在具体操作TV的过程中使用到的API,记录一下 ~~~~
#coding:utf-8 import time from uiautomator import device as d d.press.enter()time.sleep(5) print(d(className="android.widget.FrameLayout").child(resourceId="com.stv.launcher:id/metro_space").child_by_instance("0", className="android.view.View").count) print (d(className="android.widget.FrameLayout").child(resourceId="com.stv.launcher:id/metro_space", className="android.support.v4.view.ViewPager").count) print (d(className="android.widget.FrameLayout").child(resourceId="com.stv.launcher:id/metro_space", className="android.support.v4.view.ViewPager")[0].info) print (d(className="android.widget.FrameLayout").child(resourceId="com.stv.launcher:id/metro_space", className="android.support.v4.view.ViewPager")[1].info) print (d(className="android.view.View").count) print (d(className="android.view.View")[0].info) print (d(className="android.view.View")[1].info) print (d(className="android.widget.FrameLayout").child(resourceId="com.stv.launcher:id/metro_space").child(index=2).count) print (d(text="热点聚焦").info) d(text="播放记录").click() print (d.exists(className="android.widget.FrameLayout")) d.dump("home.xml") print (d(resourceId="com.letv.android.tv.letvlive:id/title",instance=0).text) d.click(1100,850)
三、在TV测试使用过程中遇到的问题及局限性
还是比较方便,基本的UI操作基本都能覆盖。但使用起来还是不够得心应手。
1.TV上的click操作和手机上不同,手机上可直接实现点击操作,但TV上的click操作首先实现的是焦点移动,再次click或者pressEnter才实现点击进入操作;但TV上某些APP并未支持click移动焦点操作,只支持模拟遥控器输入实现上下左右移动;
以上是关于python-UiAutomator学习&使用的主要内容,如果未能解决你的问题,请参考以下文章
Python-UiAutomator2实现Android自动化测试
机器学习应用——强化学习&课程总结 实例 “自主学习Flappy Bird游戏”(MDP&蒙特卡洛强化学习&Q-learning&DRL&DQN)