一、搭建环境

  准备: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代码

  1. from appium import webdriver
  2. from time import sleep
  3. import unittest
  4. import warnings #用于屏蔽信息
  5.  
  6. class AndroidTest(unittest.TestCase):
  7. """
  8. Android测试用例
  9. """
  10.  
  11. def setUp(self):
  12. warnings.simplefilter('ignore', ResourceWarning)#屏蔽警告信息
  13. desired_cap = {}
  14. desired_cap['platformName'] = 'Android' #操作系统类型
  15. desired_cap['deviceName'] = 'Android Emulator'#设备名称,随意也可以
  16.  
  17. # 方法1:指定打开的APP,针对没有安装被测APP
  18. # desired_cap['app'] = r"E:\share\App\apks\ApiDemos-debug.apk"
  19. # 方法2:指定打开的APP,针对已经安装了APP
  20. desired_cap['appPackage'] = 'io.appium.android.apis'#App的包名
  21. desired_cap['appActivity'] = "io.appium.android.apis.ApiDemos"#打开的UI界面
  22. #4723为Appium服务器的端口号,需要根据实际设定
  23. self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_cap)
  24. self.driver.implicitly_wait(10) #定位元素超时时间
  25.  
  26. def tearDown(self):
  27. sleep(2)
  28. #关闭APP
  29. self.driver.quit()
  30.  
  31. def test1(self):
  32. # 根据class和text属性
  33. # el = self.driver.find_element_by_xpath("//android.widget.TextView[@text='Animation']")
  34. #定位控件
  35. el = self.driver.find_element_by_xpath("//android.widget.TextView[@text='Animation' and @index='1']")
  36.  
  37. # 获得控件的文本
  38. print(el.text)
  39. 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. Ubuntu 18.04图形化软件包管理器

    1.ubuntu软件这个管理工具提供了一种管理您系统中软件的好方法,通过他可以很直观的查找软件安装很简单,打开终端,输入以下命令:----------------------------------- ...

  2. 一篇文章教会你理解Scrapy网络爬虫框架的工作原理和数据采集过程

    今天小编给大家详细的讲解一下Scrapy爬虫框架,希望对大家的学习有帮助. 1.Scrapy爬虫框架 Scrapy是一个使用Python编程语言编写的爬虫框架,任何人都可以根据自己的需求进行修改,并且 ...

  3. 用 while 循环做个小游戏

    import random #可输入次数 flag = 0 #生成一个1到10之间的随机整数 res = random.randint(1,10) #判读三次输入机会 while(flag<3) ...

  4. 新机器的vim配置

    最近一直用vim去写acm代码,算是一种练习吧. 用着用着感觉不错,最近也稍微配置了一下vim,用着更舒服了 键盘映射 ESC<->CapsLock 我们知道vim有自带的键盘映射命令,但 ...

  5. center os 7最小化安装后按table无法补全命令的问题

    闲来无趣,这两天huskiesir又重新安装了下center os 7操作系统,结果呢,发现一个问题:按table键无法补全命令啊. 咦,奇怪了,这次怎么回事,完全没遇到过啊.哦,回想了一下,和以往的 ...

  6. caioj 1081 动态规划入门(非常规DP5:观光游览)

    这道题和前面的分组的题有点像 就是枚举最后一组的长度. 然后组数可以在第一层循环也可以在第二层循环 我自己的话就统一一下在第一层循环吧 然后这道题题意我一直没理解清楚,浪费了很多时间,写复杂了 同时初 ...

  7. 如何使用Java创建Excel(.xls 和 .xlsx)文件 并写入数据

    1,需要依赖的jar包, <!-- POI(operate excel) start --> <!-- the version of the following POI packag ...

  8. OpenJDK源码研究笔记(九)-可恨却又可亲的的异常(NullPointerException)

    可恨的异常 程序开发过程中,最讨厌异常了. 异常代表着程序出了问题,一旦出现,控制台会出现一屏又一屏的堆栈错误信息. 看着就让人心烦. 对于一个新人来讲,遇到异常经常会压力大,手忙脚乱,心生畏惧. 可 ...

  9. 常量成员函数的注意事项 & mutable的使用场景

    mutable的使用场景: 可以在一个const的对象里面,解除对部分字段的const限制.也可以用在const成员函数里面. 对于const与否,一般会调用不同版本的函数: 而对于二元操作符,如果用 ...

  10. 【 Beginning iOS 7 Development《精通iOS7开发》】05 Autorotation and Autosizing

    一.旋转后相对位置不变 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ29nbGVy/font/5a6L5L2T/fontsize/400/fill/I0 ...