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. ghost系统下,C#获取时间带星期几的解决办法

    cmd   regedit打开注册表,进入到[HKEY_USERS\.DEFAULT\Control Panel\International]  ,然后1.将键 sDate 的值由 / 改为 - 2. ...

  2. jenkins 使用的python 不是指定的python 的解决方法

    构建的时候加上要使用python的解析器路径 终端 which python 可以找到 python编辑器里面 import os os.system("which python" ...

  3. POJ 3268 Silver Cow Party 最短路径+矩阵转换

    Silver Cow Party Time Limit : 4000/2000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) T ...

  4. jenkins持续集成3

    1.安装Pipeline插件,并初识 1.启动Jenkins,打开浏览器http://localhost:8080,系统管理,用户名:chenshanju/123456 2.系统管理-插件管理,安装p ...

  5. 正则的使用及replace细讲

    1.var reg=/./ 与 var reg=/\./的区别? .代表任意一个字符 \.而后者代表这个字符串中得有一个. 2.?的使用 如果单独的一个字符后面带? /\d?/ 代表1个或0个这个字符 ...

  6. 使用HTML5里页面可见性接口判断用户是否正在观看你的页面

    转自:http://www.webhek.com/page-visibility 长期以来我们一直缺少一个判断用户是否正在浏览某个指定标签页的方法.用户是否去看别的网站了?他们切换回来了么?现在,HT ...

  7. 用docker搭建php+nginx+laravel的开发环境

    制作镜像 由于官方php:7.2.2-fpm-alpine3.7 镜像不含composer,而单独做一个composer镜像又会依赖php镜像,所以应该在php镜像中添加composer.Docker ...

  8. PHP mysqli_fetch_object() 函数实例讲解

    定义和用法 mysqli_fetch_object() 函数从结果集中取得当前行,并作为对象返回. 注释:该函数返回的字段名是区分大小写的. 语法 mysqli_fetch_object(result ...

  9. MySQL数据库索引(上)

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

  10. opencv3.1+contrib的配置大总结(配置了两天,遇到问题无数)

    开门见山的说:别用opencv3.0,这个版本添加扩展库不怎么好,能不能成功我不敢说,我是试了无数次都不行!!! 我的配置:W7+64位+opencv3.1+Cmake3.7.2 下载 下载什么的大家 ...