python +uiautomator 安卓UI控件操作
一、搭建环境
准备:win7、JDK、androidSDK(adt-bundle-windows-x86_64-20140702\sdk)、Appium、安卓模拟器(真机也可以),可以到这个地址下载https://pan.baidu.com/s/1NV5ncqRel4bkGoVzLyXuIg 提取码:6bst
1.安装Android模拟器: TianTian模拟器
2.安装Appium服务器
3.安装JDK
4.如JDK安装在C盘,androidSDK放在C盘则按下面进行配置环境:
增加变量(系统变量处新建):JAVA_HOME 值为: C:\Program Files\Java\jdk1.8.0_51
增加变量(系统变量处新建):JRE_HOME 值为: C:\Program Files\Java\jre1.8.0_51
增加变量(系统变量处新建):ANDROID_HOME 值为:C:\adt-bundle-windows-x86_64-20140702\sdk
添加PATH环境:C:\adt-bundle-windows-x86_64-20140702\sdk\platform-tools;
C:\adt-bundle-windows-x86_64-20140702\sdk\build-tools\android-4.4W;
5.开启安卓模拟器或者电脑连接手机(要保证已经安装了驱动,开启调试)
6.cmd命令行下查看
adb devices 查看连接的安卓设备
adb connect 127.0.0.1:6555 连接天天模拟器
如下表是连接成功

7.经过以上步骤说明已经成功和手机连接了(模拟器和真机都可以)
二、安装Appium的Python客户端库 cmd命令:pip install Appium-Python-Client
三、写python代码
from appium import webdriver
from time import sleep
import unittest
import warnings #用于屏蔽信息 class AndroidTest(unittest.TestCase):
"""
Android测试用例
""" def setUp(self):
warnings.simplefilter('ignore', ResourceWarning)#屏蔽警告信息
desired_cap = {}
desired_cap['platformName'] = 'Android' #操作系统类型
desired_cap['deviceName'] = 'Android Emulator'#设备名称,随意也可以 # 方法1:指定打开的APP,针对没有安装被测APP
# desired_cap['app'] = r"E:\share\App\apks\ApiDemos-debug.apk"
# 方法2:指定打开的APP,针对已经安装了APP
desired_cap['appPackage'] = 'io.appium.android.apis'#App的包名
desired_cap['appActivity'] = "io.appium.android.apis.ApiDemos"#打开的UI界面
#4723为Appium服务器的端口号,需要根据实际设定
self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_cap)
self.driver.implicitly_wait(10) #定位元素超时时间 def tearDown(self):
sleep(2)
#关闭APP
self.driver.quit() def test1(self):
# 根据class和text属性
# el = self.driver.find_element_by_xpath("//android.widget.TextView[@text='Animation']")
#定位控件
el = self.driver.find_element_by_xpath("//android.widget.TextView[@text='Animation' and @index='1']") # 获得控件的文本
print(el.text)
print(el.get_attribute("text"))
python +uiautomator 安卓UI控件操作的更多相关文章
- ANDROID L——Material Design详解(UI控件)
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! Android L: Google已经确认Android L就是Android Lolli ...
- WinForm/Silverlight多线程编程中如何更新UI控件的值
单线程的winfom程序中,设置一个控件的值是很easy的事情,直接 this.TextBox1.value = "Hello World!";就搞定了,但是如果在一个新线程中这么 ...
- 富客户端 wpf, Winform 多线程更新UI控件
前言 在富客户端的app中,如果在主线程中运行一些长时间的任务,那么应用程序的UI就不能正常相应.因为主线程要负责消息循环,相应鼠标等事件还有展现UI. 因此我们可以开启一个线程来格外处理需要长时间的 ...
- AppleWatch___学习笔记(二)UI布局和UI控件
1.UI布局 直接开发,你会发现Apple Watch并不支持AutoLayout,WatchKit里有个类叫做WKInterfaceGroup,乍一看像是UIView,但是这货其实是用来布局的.从 ...
- Silverlight项目笔记1:UI控件与布局、MVVM、数据绑定、await/async、Linq查询、WCF RIA Services、序列化、委托与事件
最近从技术支持转到开发岗,做Silverlight部分的开发,用的Prism+MVVM,框架由同事搭好,目前做的主要是功能实现,用到了一些东西,侧重于如何使用,总结如下 1.UI控件与布局 常用的主要 ...
- Android4.0 -- UI控件之 Menu 菜单的的使用(三)
上一讲 [Android 开发]:UI控件之 Menu 菜单的的使用(二) 我们讲解了创建上下文菜单的第一种使用方式:Creating a floating context menu [创建悬浮的上下 ...
- C#学习之在辅助线程中修改UI控件----invoke方法
Invoke and BeginInvoke 转载地址:http://www.cnblogs.com/worldreason/archive/2008/06/09/1216127.html 在Invo ...
- 优化UI控件 【译】
翻译自:https://unity3d.com/cn/learn/tutorials/topics/best-practices/optimizing-ui-controls?playlist=300 ...
- 面试题汇总--数据储存/应用程序/UI控件/客户端的安全性与框架处理。。。
一 数据储存 1.如果后期需要增加数据库中的字段怎么实现,如果不使用 CoreData 呢?编写 SQL 语句来操作原来表中的字段1)增加表字段ALTER TABLE 表名 ADD COLUMN 字 ...
随机推荐
- iOS开发——NSString小结
1.创建常量字符串. NSString *astring = @"This is a String!"; 2.创建空字符串,给予赋值. NSString *astring = ...
- JS文字特效:彩色滚动变幻效果,只适合少量的文字。(过多对页面有影响)
JS代码如下: 代码具体是在哪里的我不知道但是我的有道云上有.如有哪位朋友知道,还望联系下,添加出处. <div id="chakhsu"></div> & ...
- CF718C Sasha and Array(线段树维护矩阵)
题解 (不会矩阵加速的先去学矩阵加速) 反正我想不到线段树维护矩阵.我太菜了. 我们在线段树上维护一个区间的斐波那契的列矩阵的和. 然后询问时提取每个符合题意列矩阵的答案项(不是列矩阵存了两项吗,一个 ...
- MPI对道路车辆情况的Nagel-Schreckenberg 模型进行蒙特卡洛模拟
平台Ubuntu 16.04,Linux下MPI环境的安装见链接:https://blog.csdn.net/lusongno1/article/details/61709460 据 Nagel-Sc ...
- 一个Web报表项目的性能分析和优化实践(一):小试牛刀,统一显示SQL语句执行时间
最近,在开发和优化一个报表型的Web项目,底层是Hibernate和MySQL. 当报表数据量大的时候,一个图表要花4秒以上的时间. 以下是我的分析和体会. 1.我首先需要知道哪些函数执行了多少时间 ...
- centos同步网络北京时间
sudo yum -y install ntpdate ntp sudo ntpdate time.windows.com sudo hwclock -w
- CIKM 2013 Paper Modeling interaction features for debate side clustering
中文简单介绍:本文对怎样对网上论坛讨论中用户交互关系进行统计建模分析进行了研究. 论文出处:CIKM'13. 英文摘要: Online discussion forums are popular so ...
- setTimeOut函数传参数
这样使用,后面的4000无效 setTimeout(removeGift(customer_id,gift_id),4000); function removeGift(customer_id,gif ...
- Canny边缘检测及C++实现
Canny边缘检测算法是澳大利亚科学家John F. Canny在1986年提出来的,不得不提一下的是当年John Canny本人才28岁!到今天已经30年过去了,Canny算法仍然是图像边缘检测算法 ...
- cf B. Black Square
B. Black Square time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...