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                   ...

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

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

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

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

  4. [转]Android:布局实例之模仿QQ登录界面

    Android:布局实例之模仿QQ登录界面 预览图: 准备: 1.找到模仿对象 QQ登陆界面UI下载>>>>> 2.导入工程 3.查看布局结构和使用控件 其对应效果图分布 ...

  5. Android 应用开发实例之情景模式

    2013-07-01 Android 应用开发实例 1. 情景模式 使用TabHost来实现主界面的布局. 设置一组RadioButton来切换不同的情景模式. 对比普通情景模式,定时情景模式需要加上 ...

  6. Android:布局实例之模仿QQ登录界面

    预览图: 准备: 1.找到模仿对象 QQ登陆界面UI下载>>>>> 2.导入工程 3.查看布局结构和使用控件 其对应效果图分布为 4.分析样式选择器 下拉箭头2种样式:点 ...

  7. Android:布局实例之模仿京东登录界面

    预览图及布局结构参考: 布局: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout ...

  8. 功能强大的图片截取修剪神器:Android SimpleCropView及其实例代码重用简析(转)

    功能强大的图片截取修剪神器:Android SimpleCropView及其实例代码重用简析 SimpleCropView是github上第一个第三方开源的图片修剪截取利器,功能强大,设计良好.我个人 ...

  9. Android native进程间通信实例-binder篇之——HAL层访问JAVA层的服务

    有一天在群里聊天的时候,有人提出一个问题,怎样才能做到HAL层访问JAVA层的接口?刚好我不会,所以做了一点研究. 之前的文章末尾部分说过了service call 可以用来调试系统的binder服务 ...

随机推荐

  1. win10 1709正式版iso镜像下载|windows10 1709秋季创意者更新官方下载地址

    win10 1709正式版iso镜像下载|windows10 1709秋季创意者更新官方下载地址 发布时间:2017-10-18 14:27发布者:系统城-xtcjh浏览数:74458 win10 1 ...

  2. ASP.NET数据库连接字符串的加密与解密

    ASP.NET web.config中,数据库连接字符串的加密与解密. 虽然不怎么新鲜,但相信还是有许多人不知道,好,不说废话,直接给方法:开始--->运行,输入cmd,接着输入以下内容 加密: ...

  3. Java学习之路 第四篇 oop和class (面向对象和类)

    本人水平有限,创作本文是为了记录学习和帮助初学者学习,欢迎指正和补充 一.面向对象编程的设计概述 很多同学都在学校学了电脑的编程,现在的书籍大部分都是oop面向对象编程,一个很抽象的的名字,比较难以理 ...

  4. c# 根据枚举Value 获得名称

    // 定义枚举类型enum sotype : int { book=1, pen=2, other=3 } // 输出名称 switch (Enum.GetName(typeof(sotype), 1 ...

  5. VS中Component Class、User Control及Custom Control的区别 .

    .NET Framework 为您提供了开发和实现新控件的能力.除了常见的用户控件外,现在您会发现,您可以编写能执行自身绘图的自定义控件,甚至还可以通过继承扩展现有控件的功能.确定创建何种类型的控件可 ...

  6. file标签样式修改

    1. 这是默认的file样式,无法修改,在网页中用它感觉非常不合群,大部分修改的办法就是把它隐藏,绝对定位一个文本框和一个按钮 这是修改后的样式,之后修改样式就是分别修改文本框和按钮样式了,就非常简单 ...

  7. Linux就该这么学--命令集合11(配置系统相关信息)

    1.配置主机名称: 查看主机名: hostname 修改主机名: vim /etc/hostname 2.配置网卡信息: 在红帽RHEL6系统中网卡配置文件的前缀为“ifcfg-eth”,第一块即为“ ...

  8. 【Linux】服务器之间的免密登录脚本

    在实际运维的过程中,经常需要用到免密登录,下面这个脚本实现服务器之间的免密登录,如下 比如,要实现A服务器与B.C.D服务器的免密登录,只需要将B.C.D服务器的IP地址写在serverlist.tx ...

  9. [2018-08-25]模板引擎Razor Engine 用法示例

    好久没写博客了,回宁波后最近几个月一直忙些线下的事情. 敲代码方面脱产有阵子了,生疏了,回头一看,这行业果然更新飞快. 最近线下的事情基本忙完,准备开始干回老本行,最重要的一件事就是升级abplus库 ...

  10. Android Weekly Notes Issue #275

    Android Weekly Issue #275 September 17, 2017 Android Weekly Issue #275 本期内容包括给Google Map实现一个Marker A ...