自动化测试 Appium之Python运行环境搭建 Part2
Appium之Python运行环境搭建 Part2
by:授客 QQ:1033553122
实践环境
环境部署
1、安装Android SDK
安装好后,配置ANDROID_HOME环境变量,设置为Android SDK安装路径(例中:D:\Program Files (x86)\Android\android-sdk)
2、安装其它SDK相关软件包
安装好Android SDK后,选择打开Android SDK Manager(在Android SDK目录下,例中D:\Program Files (x86)\Android\android-sdk)


选好后点击 接受协议Accept License,Install

参考链接:
https://www.zhihu.com/question/31935836
http://www.cnblogs.com/kangjianwei101/p/5621238.html
3、安装appium-uiautomator2-driver
cmd打开控制台,输入以下命令安装
> npm install -g appium-uiautomator2-driver
参考链接:
http://appium.io/docs/en/drivers/android-uiautomator2/index.html
https://github.com/appium/appium-uiautomator2-driver
4、开启appium、appium-desktop(如果没有开启的话)
其它准备工作
开启手机(模拟器)USB调试模式
打开目标程序主页,比如图示计算机

获取APK包名及资源定位器
双击打开android_sdk_install_home\tools\uiautomatorviewer.bat
(例中:D:\Program Files (x86)\Android\android-sdk\tools\uiautomatorviewer.bat
点选图示圈选按钮中任何一个

如上图,鼠标移动到目标控件,比如数字按钮7,可看到程序所在包名:package 为com.android.calculator2,数字按钮7对应资源IDpackage 为com.android.calculator2:id/digit_7

活动名称获取
通过adb logcat > log.txt 获取的
代码测试
#!/usr/bin/env python
# -*- encoding:utf-8 -*-
__author__ = 'laifuyu'
import time
from appium import webdriver
if __name__ == '__main__':
desired_caps = {
"platformName":"Android",
"platformVersion":"5.0",
"deviceName":"Android Emulator",
"automationName":"UiAutomator2",
# "app":"D:\\apks\\ai-sorting_v3.5.5_sit_debug_20180423114313.apk",
"appPackage":"com.android.calculator2",
"appActivity":".Calculator"
}
driver = webdriver.Remote("http://localhost:4723/wd/hub", desired_caps)
digit7 = driver.find_element_by_id('com.android.calculator2:id/digit_7')
digit7.click()
result = driver.find_element_by_id('com.android.calculator2:id/result')
result.send_keys('+')
time.sleep(30)
driver.quit()
运行结果:

说明:
platformName 设置手机操作系统平台(iOS, Android, FirefoxOS)
platformVersion 设置手机操作系统版本
deviceName 设置手机设备、模拟器类型。比如iPhone Simulator, iPad Simulator, iPhone Retina 4-inch, Android Emulator, Galaxy S4, 等,IOS操作系统上,该设备名必须是通过instruments -s devices命令返回的合法设备。对于Android操作系统来说,该属性虽然是必填,但是缺是被忽视的。
automationName 设置使用哪个自动化引擎。对于Android:Appium(默认)、Selendroid 、UiAutomator2 、对于IOS:XCUITest
app:设置apk软件包的绝对路径,或者.ipa ios包的http url,或者是一个包含一个.ipa、.apk软件包的.zip文件绝对路径。注意,似乎是这样的,如果手机设备、手机模拟器上没安装该软件包,则可设置该属性,运行时,会自动把该安装包安装到手机设备、模拟器上。 Appium会先尝试把这个app二进制文件安装到手机设备或者模拟器中。 注意,如果指定了appPackage和appActivity属性,则该可以不设置该属性。
eg:
/abs/path/to/my.apk
http://myapp.com/app.ipa
appPackage:设置Android app JAVA软件包
appActivity:想启动的Android activity名称。通常需要加前缀. 比如.MainActivity而不是MainActivity。
eg:
MainActivity
.Settings
参考链接:
https://github.com/appium/appium-uiautomator2-driver/blob/master/README.md
https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md
https://github.com/appium/sample-code/blob/master/sample-code/examples/python/android_contacts.py
https://blog.csdn.net/xyz846/article/details/50750701
自动化测试 Appium之Python运行环境搭建 Part2的更多相关文章
- 自动化测试 Appium之Python运行环境搭建 Part1
Appium之Python运行环境搭建 Part1 by:授客 QQ:1033553122 实践环境 Win7 Python 3.4.0 JAVA JDK 1.8.0_121 node.js8.11. ...
- 教女朋友学Python运行环境搭建
下班比较早,吃了饭没什么事,就和女朋友一起研究了Python. 编程语言有很多,为什么选择它呢?因为它火吧,没什么好解释的,下面开始第一步,环境搭建.网上的教程实在太多,各种系统的各种版本,本地链接下 ...
- python开发环境搭建
虽然网上有很多python开发环境搭建的文章,不过重复造轮子还是要的,记录一下过程,方便自己以后配置,也方便正在学习中的同事配置他们的环境. 1.准备好安装包 1)上python官网下载python运 ...
- python学习之python开发环境搭建
Python简介 Python是一种面向对象.解释型计算机程序设计语言.Python语法简洁而清晰,具有丰富和强大的类库等等众多的特性,这是来自百度百科的介绍,在百度百科还能看到它的更详细的介绍信息, ...
- eclipse python开发环境搭建
eclipse python开发环境搭建[非原创] 1.在www.eclipse.org官网下载Eclipse Classic 4.2.2,Win7 64位下载eclipse-SDK-4.2.2-wi ...
- ubuntu下python flask环境搭建
ubuntu下python flask环境搭建 1. 安装pip sudo apt-get install python-dev pyhton-pip 2. 安装virtualenv sudo apt ...
- python服务器环境搭建(2)——安装相关软件
在上一篇我们在本地的虚拟服务器上安装好CentOS7后,我们的python web服务.自定义的python service或python脚本需要在服务器上运行,还需要在服务器安装各种相关的软件才行, ...
- python开发环境搭建及numpy基本属性-【老鱼学numpy】
目的 本节我们将介绍如何搭建python的开发环境以及numpy的基本属性,这样可以检验我们的numpy是否安装正确了. python开发环境的搭建 工欲善其事必先利其器,我用得比较顺手的是Intel ...
- selenium+python爬虫环境搭建
前言: 准备使用selenium爬取网站数据,先搭建selenium+python爬虫环境搭建 系统环境: 64位win10系统,同时装python2.7和python3.6两个版本,IDE为pych ...
随机推荐
- Java - 静态代理详讲
Java - 静态代理详讲 作者 : Stanley 罗昊 [转载请注明出处和署名,谢谢!] 写在前面:*此章内容比较抽象,所以需要结合实际操作进行讲解* *需要有 ...
- Deepin linux Compass.app安装
compass.app是集成了sass的工具,安装完Compass就能够使用sass. 首先,上官网 可以看到官网上推荐的两种sass使用方式,application&command line ...
- IDEA编写css样式报错
粗心大意!浪费了30分钟时间,必须记录一下! 报错图片 琢磨了半天,没想出是哪里错了,很无奈!!!!!!!!! 度娘:ctrl+shift+alt+H,设置成NONE就可以了 试了一下,果然好使,不再 ...
- SAP MM 巴西采购订单中的NCM Code
SAP MM 巴西采购订单中的NCM Code 1,近日收到业务部门报的一个问题,某用户试图将采购订单4400000071中ITEM 40的删除标记取消, SAP系统报错,'Enter a valid ...
- jquery操作iframe的方法:父页面和子页面相互操作的方法
今天在弄jquery操作iframe中元素:先由iframe中的子页面b.html给外面的父页面a.html页面传值,再将a.html页面计算机的值放到b.html页面上,这里就用到子页面和父页面相互 ...
- #Java学习之路——基础阶段二(第七篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...
- #Java学习之路——基础阶段(第十一篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...
- pycharm远程同步服务器代码,并设置权限
Pycharm开发工具链接至上面创建的虚拟环境链接 权限问题:此时上传还可能遇到权限问题,即使用的用户名没有权限在给定的目录下写入和修改文件. ubuntu权限管理:移动到指定目标上传文件夹的父文件夹 ...
- SpringBoot基础系列一
SpringBoot基础知识概览 特性 核心理念:约定优于配置 特点: 1. 开箱即用,根据项目依赖自动配置 2. 功能强大的服务体系,如嵌入式服务.安全 3. 绝无代码生成,不用写.xml配置,用注 ...
- python中的2、8、16、10进制之间的转换
python除法的坑 众所周知,python除法有两个运算符,一个是/,还有一个是//,那么这两个有什么不同之处呢? 从图片可以得知,使用//返回一个float类型,而使用/返回一个int类型.我们总 ...