1.查看Android的应用包名和activity的方法
 
(网上有很多种方法,这里应用的是查看日志的方法)
CMD中输入>adb logcat -c
                  >adb logcat ActivityManager:i *:s
然后操作模拟器中要测试的应用,查看日志,结果如下,cmp=应用包名/Activity
参考文件:http://blog.csdn.net/jlminghui/article/details/40622103     
 
2.定位元素
 
Android SDK的一些工具可以帮助定位,在Android SDK安装目录的tools下
1.monitor.bat:找到Android控件的content-description,方便定位
2.uiautomatorviewer.bat:查看控件的属性,也可查看被测app的appPackage
说明:这两个工具都只支持API level16以上的系统,如果低于这个版本,这两个工具是不能使用的
 
下图是如果有多台机器的情况下怎么选择要获取的机器:
(uiautomator的使用方法:http://blog.csdn.net/chenbang110/article/details/23371731)
 
其他方法:使用appium的inspector来定位元素,具体使用方法链接可以参见我的另一篇随笔http://www.cnblogs.com/meitian/p/4837938.html
 
3.开启appium,launch(右侧的小三角)
 
4.编写测试用例,执行用例脚本,完成一个appium实例
(在执行测试脚本前,一定要保证开启了appium和模拟器)
代码:
from appium import webdriver
import time
#以下为启动session时的desired capabilities的设置
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '18'
desired_caps['deviceName'] = 'emulator-5554'
#desired_caps['app']='D:\software\Android\APPS\com.tencent.mm_621.apk',这个是要安装的app的安装包地址,不是必须的,有#这个项的话会先通过这个地址安装app,我没有用这个,直接用的Package名和activity名
desired_caps['appPackage'] = 'com.android.calculator2'
desired_caps['appActivity'] = '.Calculator'

#以下为启动driver,以及定位元素和操作元素的一些用例操作
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
time.sleep(5)
driver.find_element_by_id("com.android.calculator2:id/digit1").click()
time.sleep(2)
driver.find_element_by_id("com.android.calculator2:id/plus").click()
time.sleep(2)
driver.find_element_by_id("com.android.calculator2:id/digit2").click()
time.sleep(2)
driver.find_element_by_id("com.android.calculator2:id/equal").click()
time.sleep(2)
test = driver.find_element_by_class_name("android.widget.EditText").text
print(test)
assert test == 3
driver.quit()

 
 
desired capabilities的设置时的一些项说明:
 
其他注意点:
1.如果有多台模拟器,appium的Android settings中的launch device里选择的launch VAD会影响到启动的模拟器,我代码里设置的是启动platformVersion为4.3.1的模拟器,但是appium那里设置的是4.0.4,执行时会一直去找4.0.4,没有找到最后就报错了
2.低版本的Android要用selendroid
3.公司需要配置代理才可以联网,这里如果不更改启动的代理是没有办法执行用例成功的,有个简便做法,先开启fiddle,再去执行用例

开始一个Android的appium实例的更多相关文章

  1. Android的appium实例

    1.查看Android的应用包名和activity的方法   (网上有很多种方法,这里应用的是查看日志的方法) CMD中输入>adb logcat -c                   &g ...

  2. Android Fragment (二) 实例2

    由于看客的要求,我就把读者所要的写出来. 由于上一篇是每一个Fragment 实例了同一个layout.xml ,造成了读者的困惑,这篇我就让每一个Fragment 加载一个不同的layout.xml ...

  3. 进入第一个Android应用界面

    前话 距离上次学习Android已经过去了半年了,这半年我干嘛去了? 嘛相信大家也没兴趣了解,简单来说就是我学习了周边的知识技术,最后终于转回Android. 感觉开发一个Android需要很多知识吧 ...

  4. 一个简单的appium脚本

    这是一个简单的appium脚本,测试amazon购物过程的,过程包括搜索商品,然后从结果列表中选取中意的商品,然后加入购物车,等等. 它是一个最原始的脚本,对测试元素.数据.报告等未作任何的封装,后面 ...

  5. Adroid APPIUM实例步骤

      1.下载eclipse 2.安装java 配置环境变量 3.eclipse 安装adt android development tools 4.android sdk manager 安装tool ...

  6. android widget 开发实例 : 桌面便签程序的实现具体解释和源代码 (上)

    如有错漏请不吝拍砖指正,转载请注明出处,很感谢 桌面便签软件是android上经常使用软件的一种,比方比較早的Sticky Note,就曾很流行, Sticky Note的介绍能够參见 http:// ...

  7. Android进阶(二十三)Android开发过程之实例讲解

    Android开发过程之实例讲解 前言 回过头来审视之前做过的Android项目,发觉自己重新开发时忽然间不知所措了,间隔了太长时间没有开发导致自己的Android技能知识急剧下降.温故而知新. 废话 ...

  8. Android入门-新手如何成功创建一个Android小应用

    原文:http://android.eoe.cn/topic/summary 第一课程:Building Your First App [本课内容简介]欢迎加入到安卓应用的开发大潮中!这门课程会教授你 ...

  9. 【Android实验】第一个Android程序与Activity生命周期

    目录 第一个Android程序和Activity生命周期 实验目的 实验要求 实验过程 1. 程序正常启动与关闭 2. 外来电话接入的情况 3. 外来短信接入的情况 4. 程序运行中切换到其他程序(比 ...

随机推荐

  1. C/C++基础----IO库

    IO对象无拷贝或赋值,通常以引用形式传递. IO库条件状态 strm::iostate 一种机器相关的类型,提供了表达条件状态的完整功能 strm::badbit 用来指出流已经崩溃 strm::fa ...

  2. 廖雪峰Java1-1Java入门-java简介

    Java特点: 一种面向对象的跨平台变成语言 以字节码方式运行在虚拟机上 自带功能齐全的类库 非常活跃的开源社区支持 Java优点: 简单.健壮.安全 跨平台,一次编写,到处运行 高度优化的虚拟机 J ...

  3. 外网访问XAMPP失败 解决方案

    xampp 访问出现New XAMPP security concept 收藏 New XAMPP security concept: Access to the requested director ...

  4. Oracle jdk 历史版本官方下载地址及下载方法

    Oracle jdk 历史版本官方下载地址及下载方法 原文转载至:http://blog.csdn.net/chwshuang/article/details/54925950 平时要新装一个系统环境 ...

  5. tornado.ioloop.IOLoop相关文章

    http://6167018.blog.51cto.com/6157018/1532899 http://kenby.iteye.com/blog/1159621

  6. Spark Standalone模式HA环境搭建

    Spark Standalone模式常见的HA部署方式有两种:基于文件系统的HA和基于ZK的HA 本篇只介绍基于ZK的HA环境搭建: $SPARK_HOME/conf/spark-env.sh 添加S ...

  7. python 9*9示例

    # 9*9 乘法表# def nine_nine():#     for i in range(1, 10):#         for j in range(1, i+1):#            ...

  8. MySQL数据库索引(上)

    上一篇回顾: 1.数据页由七部分组成,包括File Header(描述页的信息).Page Header(描述数据的信息).Infimum + Supremum(页中的虚拟数据最大值和最小值).Use ...

  9. python入门-测试代码

    断言 测试函数 def get_formatted_name(first,last): """generate a neatly formattef full name& ...

  10. Latex 箭头、下标、符号上下写文字、正方形和三角形

    0. hat   $abc\hat def$  $ab\widehat{cde}f$ 1. 箭头上的文字    $\underrightarrow{\text{你的文字}}$  ($A \xlefta ...