一、搭建环境

  准备: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控件操作的更多相关文章

  1. ANDROID L——Material Design详解(UI控件)

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! Android L: Google已经确认Android L就是Android Lolli ...

  2. WinForm/Silverlight多线程编程中如何更新UI控件的值

    单线程的winfom程序中,设置一个控件的值是很easy的事情,直接 this.TextBox1.value = "Hello World!";就搞定了,但是如果在一个新线程中这么 ...

  3. 富客户端 wpf, Winform 多线程更新UI控件

    前言 在富客户端的app中,如果在主线程中运行一些长时间的任务,那么应用程序的UI就不能正常相应.因为主线程要负责消息循环,相应鼠标等事件还有展现UI. 因此我们可以开启一个线程来格外处理需要长时间的 ...

  4. AppleWatch___学习笔记(二)UI布局和UI控件

    1.UI布局 直接开发,你会发现Apple Watch并不支持AutoLayout,WatchKit里有个类叫做WKInterfaceGroup,乍一看像是UIView,但是这货其实是用来布局的.从 ...

  5. Silverlight项目笔记1:UI控件与布局、MVVM、数据绑定、await/async、Linq查询、WCF RIA Services、序列化、委托与事件

    最近从技术支持转到开发岗,做Silverlight部分的开发,用的Prism+MVVM,框架由同事搭好,目前做的主要是功能实现,用到了一些东西,侧重于如何使用,总结如下 1.UI控件与布局 常用的主要 ...

  6. Android4.0 -- UI控件之 Menu 菜单的的使用(三)

    上一讲 [Android 开发]:UI控件之 Menu 菜单的的使用(二) 我们讲解了创建上下文菜单的第一种使用方式:Creating a floating context menu [创建悬浮的上下 ...

  7. C#学习之在辅助线程中修改UI控件----invoke方法

    Invoke and BeginInvoke 转载地址:http://www.cnblogs.com/worldreason/archive/2008/06/09/1216127.html 在Invo ...

  8. 优化UI控件 【译】

    翻译自:https://unity3d.com/cn/learn/tutorials/topics/best-practices/optimizing-ui-controls?playlist=300 ...

  9. 面试题汇总--数据储存/应用程序/UI控件/客户端的安全性与框架处理。。。

    一 数据储存  1.如果后期需要增加数据库中的字段怎么实现,如果不使用 CoreData 呢?编写 SQL 语句来操作原来表中的字段1)增加表字段ALTER TABLE 表名 ADD COLUMN 字 ...

随机推荐

  1. IDL build

    For Developers‎ > ‎Design Documents‎ > ‎ IDL build 目录 1 Steps 2 GYP 3 Performance 3.1 Details ...

  2. ip代理池的爬虫编写、验证和维护

    打算法比赛有点累,比赛之余写点小项目来提升一下工程能力.顺便陶冶一下情操 本来是想买一个服务器写个博客或者是弄个什么FQ的东西 最后刷知乎看到有一个很有意思的项目,就是维护一个「高可用低延迟的高匿IP ...

  3. ArchLinux 设置时间同步和硬件时间同步错误 No usable clock interface found

    笔记本不知道怎么了,总是时间对不上 硬件时间也设置不了,只能时间同步了 手动时间同步 ntpdate即可,ntp服务器在这里用这两个就好了 cn.ntp.org.cn 或 edu.ntp.org.cn ...

  4. 软raid 实验

    RAID0 条带卷 2+ 100% 读写速度快,不容错 RAID1 镜像卷 2 50% 读写速度一般,容错 RAID5 带奇偶校验的条带卷 3+ (n-1)/n 读写速度快,容错,允许坏一块盘 RAI ...

  5. CF245H Queries for Number of Palindromes(回文树)

    题意翻译 题目描述 给你一个字符串s由小写字母组成,有q组询问,每组询问给你两个数,l和r,问在字符串区间l到r的字串中,包含多少回文串. 输入格式 第1行,给出s,s的长度小于5000 第2行给出q ...

  6. HDU 4309 Seikimatsu Occult Tonneru

    Seikimatsu Occult Tonneru Time Limit: 6000ms Memory Limit: 32768KB This problem will be judged on HD ...

  7. Linux Sendfile 的优势

    Sendfile 函数在两个文件描写叙述符之间直接传递数据(全然在内核中操作,传送),从而避免了内核缓冲区数据和用户缓冲区数据之间的拷贝,操作效率非常高,被称之为零拷贝. Sendfile 函数的定义 ...

  8. Spark修炼之道(高级篇)——Spark源代码阅读:第十二节 Spark SQL 处理流程分析

    作者:周志湖 以下的代码演示了通过Case Class进行表Schema定义的样例: // sc is an existing SparkContext. val sqlContext = new o ...

  9. SQL大小写金额转换

    --功能: 用于将小写的数值翻译成大写的字符串(支持到分,即小数点后两位) --入口参数:@decNum------数字型变量 --返回:字符串 --举例:select dbo.fn_ChnMoney ...

  10. Mark Sweep GC

    目录 标记清除算法 标记阶段 深度优先于广度优先 清除阶段 分配 First-fit.Best-fit.Worst-fit三种分配策略 合并 优点 实现简单 与保守式GC算法兼容 缺点 碎片化 分配速 ...