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("", 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+appium学习总结
经过了这个月的学习,今天终于完成了公司APP系统的自动化的脚本的编写. 通过单元测试框架UNITTEST,进行脚本的连跑,本来还想把测试数据统一写到EXCEL表格内,实现脚本与数据的分离. 后来发现增 ...
- 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL
周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...
- 60分钟Python快速学习(给发哥一个交代)
60分钟Python快速学习 之前和同事谈到Python,每次下班后跑步都是在听他说,例如Python属于“胶水语言啦”,属于“解释型语言啦!”,是“面向对象的语言啦!”,另外没有数据类型,逻辑全靠空 ...
- python爬虫学习(1) —— 从urllib说起
0. 前言 如果你从来没有接触过爬虫,刚开始的时候可能会有些许吃力 因为我不会从头到尾把所有知识点都说一遍,很多文章主要是记录我自己写的一些爬虫 所以建议先学习一下cuiqingcai大神的 Pyth ...
- python爬虫学习 —— 总目录
开篇 作为一个C党,接触python之后学习了爬虫. 和AC算法题的快感类似,从网络上爬取各种数据也很有意思. 准备写一系列文章,整理一下学习历程,也给后来者提供一点便利. 我是目录 听说你叫爬虫 - ...
- Python正则表达式学习摘要及资料
摘要 在正则表达式中,如果直接给出字符,就是精确匹配. {m,n}? 对于前一个字符重复 m 到 n 次,并且取尽可能少的情况 在字符串'aaaaaa'中,a{2,4} 会匹配 4 个 a,但 a{2 ...
- python 线程学习
彩照 一.学习[1] # -*- coding: utf-8 -*- import time import thread def timer(no, interval): cnt = 0 while ...
- Openstack python api 学习文档 api创建虚拟机
Openstack python api 学习文档 转载请注明http://www.cnblogs.com/juandx/p/4953191.html 因为需要学习使用api接口调用openstack ...
- !!对python列表学习整理列表及数组详细介绍
1.Python的数组分三种类型:(详细见 http://blog.sina.com.cn/s/blog_6b783cbd0100q2ba.html) (1) list 普通的链表,初始化后可以通过特 ...
- Python实战:Python爬虫学习教程,获取电影排行榜
Python应用现在如火如荼,应用范围很广.因其效率高开发迅速的优势,快速进入编程语言排行榜前几名.本系列文章致力于可以全面系统的介绍Python语言开发知识和相关知识总结.希望大家能够快速入门并学习 ...
随机推荐
- redis5 集群迁移方案
Redis5 集群迁移方案 一.KEY优化 1.按原来要求进行优化与大KEY分拆. 二.现Redis 集群缩容(对业务无影响) 主节点按要求合并至3个主节点. 业务配置为3主4从 删除没有槽的主节点与 ...
- 转:centos查看实时网络带宽占用情况方法
Linux中查看网卡流量工具有iptraf.iftop以及nethogs等,iftop可以用来监控网卡的实时流量(可以指定网段).反向解析IP.显示端口信息等. centos安装iftop的命令如下: ...
- input text 只能输入数字
添加 onkeyup="value=value.replace(/[^\d]/g,'')"
- python的基本用法(一)
1.什么变量,什么是数据类型? 变量就是用来存放东西的, 数据类型:字符串str,整数int,浮点数(小数)float type()函数用来检验数据格式的类型 2.什么是for循环,什么是while循 ...
- eclipse 如何安装freemaker ftl 插件
借鉴原链接 https://blog.csdn.net/lsygood/article/details/80565933 在线安装的方法是:Help –> Install New Softw ...
- BZOJ4386[POI2015]Wycieczki / Luogu3597[POI2015]WYC - 矩乘
Solution 想到边权为$1$的情况直接矩乘就可以得出长度$<=t$ 的路径条数, 然后二分check一下即可 但是拓展到边权为$2$,$3$ 时, 需要新建节点 $i+n$ 和 $i+2n ...
- jQuery对象和DOM对象相互转换
DOM对象转为DOM对象: obj = document.getElementById('id') 使用$()包括对象即可 $(obj) jQuery对象转为DOM对象: 在对象后面添加[0] $(' ...
- flask通过form表单一次上传多个文件
基本上,用了flask官网的示例代码(中文版,英文版),稍微做了修改. import os from flask import Flask, flash, request, redirect, url ...
- C#中Equals()和= =(等于号)区别
在这里,首先得告诉大家,在C#中,不管是 == ,还是 Equals() 我们都是可以重写的.所以,在具体选择使用两者时,还是得根据这两个方法的具体实现逻辑来选择. 值类型的比较 对于值类型来说,两者 ...
- Learning Rust - Syntax
Rust is another compiling language that may replace the position of C/C++ in server filed. It runs f ...