appium+python教程1
一、安装
我们知道selenium是桌面浏览器自动化操作工具(Web Browser Automation)
appium是继承selenium自动化思想旨在使手机app操作也能自动化的工具(Mobile App Automation Made Awesome)。
appium可以通过Desktop App和npm两种方式安装。Desktop App类似于selenium IDE提供一个图形界面式操作工具;npm类似于selenium就只能使用命令行。
如果对appium还不太熟悉,推荐使用Desktop App安装,这样一些操作我们可以使用Desktop App来输出代码,写代码时就有个参考。
1.1 安装Android SDK
要想操作安卓手机需要Android SDK,所以在安装appium之前先安装Android SDK。
推荐直接安装Android Studio然后使用Android Studio安装SDK(太慢可通过图中HTTP Proxy设置代理)。
菜单----Tools----SDK Manager,钩选自己要安装的版本点击Apply进行下载即可。
Android SDK安装完成后,新建ANDROID_HOME环境变量,值为上图Android SDK Location的目录(我这里是“D:\Language\ASDK”)
1.2 通过Desktop App安装(推荐)
下载地址:https://github.com/appium/appium-desktop/releases
选择操作系统对应版本下载,Windows直接双击安装即可。
1.3 通过npm安装
1.3.1 安装nodejs
appium本质是一个nodejs库所以要先安装nodejs,然后使用npm安装。
nodejs下载地址:https://nodejs.org/zh-cn/download/
下载zip包解压到自己想放的目录,然后把该目录加入Path环境变量即可。
1.3.2 安装appium
npm install -g appium
安装appium的过程中安装chromedriver时会连接google网站上去(报错RequestError: Error: connect ETIMEDOUT 216.58.220.208:443),所以可能你需要参考以下命令设置一下npm代理
# 设置代理
npm config set proxy http://127.0.0.1:1080
npm config set https-proxy http://127.0.0.1:1080 # 如果代理需要用户名密码
npm config set proxy http://username:password@127.0.0.1:1080
npm config set https-proxy http://username:password@127.0.0.1:1080 # 注册npm仓库
npm config set registry https://registry.npmjs.org # 删除代理配置
npm config delete proxy
npm config delete https-proxy
1.3.3 使用appinum-doctor确认环境配置无误
npm install -g appium-doctor
appium-doctor --android
二、手机连接appium
2.1 启动appium服务
如果是通过npm安装,appium会被安装到nodejs目录下,直接使用appium命令启动即可
我这里使用Desktop App方式安装,安装完成后双击桌面上的图标界面如下:
我们使用默认配置都不修改,直接点击“Start Server”按钮启动
2.2 手机使用数据线连接电脑
使用数据线把手机连接到开启appium的电脑,开启usb调试功能。可使用adb命令列出设备确保连接成功
adb devices -l
三、 使用示例
下边以python3+appium打开微信并登录进行演示。python操作appium是通过向appnium的监听端口发报文实现的,所以python不用安装什么appium库。
3.1 Desktop App打开微信并登录
添加以下四项值,完后点击“Start Session”。
platformName---设备平台。填Android或IOS
deviceName----设备名。按上边adb查出的设备名填写即可
appPackage----要启动的app的包名。微信是"com.tencent.mm"
appActivity----要启动的界面。微信启动界面是".ui.LauncherUI"
{
"platformName": "Android",
"deviceName": "HWEVA",
"appPackage": "com.tencent.mm",
"appActivity": ".ui.LauncherUI"
}
选择xml控件,对应部份就会高亮显示。
点击开始录制,然后在该appium界面上操作(注意不是自己直接在手机上操作),操作过程就会被记录下来然后可输出该过程对应的python代码
操作过程就会被记录下来,在Recorder下拉选择语言即可输出操作对应的代码
3.2 全代码自动化登录实现
Desktop App已给出界面内操作的代码,全代码自动化主要的其实只是打开该界面的代码。
首先我们先安装两个依赖库
pip install Appium-Python-Client Selenium
代码补全如下,Appium-Python-Client继承自Selenium所以使用方法和selenium是很类似的,更多api操作见:https://github.com/appium/python-client
from appium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC # appium服务监听地址
server='http://localhost:4723/wd/hub'
# app启动参数
desired_caps={
"platformName": "Android",
"deviceName": "HWEVA",
"appPackage": "com.tencent.mm",
"appActivity": ".ui.LauncherUI"
} # 驱动
driver = webdriver.Remote(server,desired_caps)
wait = WebDriverWait(driver,30)
# 获取登录按钮
login_btn = wait.until(EC.presence_of_element_located((By.ID,"com.tencent.mm:id/drp")))
# 点击登录按钮
login_btn.click()
# 获取手机号文本框
phone_text = wait.until(EC.presence_of_element_located((By.ID,"com.tencent.mm:id/ji")))
# 填写手机号文本框
phone_text.send_keys("18888888888")
appium+python教程1的更多相关文章
- appium简明教程
appium简明教程 什么是appium? 下面这段介绍来自于appium的官网. Appium is an open-source tool you can use to automate mobi ...
- appium+python做移动端自动化测试
1 导言 1.1 编制目的 该文档为选用Appium作为移动设备原生(Native).混合(Hybrid).移动Web(Mobile Web)应用UI自动化测试的相关自动化测试人员.开发人员等提供 ...
- appium python ios 自动化
mac下搭建appium python selenium来针对ios应用进行自动化测试,并不是官网上的例子,自己程序调试成功. 前言:因为appium的安装前要先确定nodejs的安装.python的 ...
- Appium+python自动化1-环境搭建(上)
前言 appium可以说是做app最火的一个自动化框架,它的主要优势是支持android和ios,另外脚本语言也是支持java和Python.小编擅长Python,所以接下来的教程是appium+py ...
- Appium+python自动化1-环境搭建
一.前言 appium可以说是做app最火的一个自动化框架,它的主要优势是支持android和ios,另外脚本语言也是支持java和Python.小编擅长Python,所以接下来的教程是appium+ ...
- appium+python自动化☞环境搭建
前言:appium可以说是做app最火的一个自动化框架,它的主要优势是支持android和ios,另外脚本语言也是支持java和Python.略懂Python,所以接下来的教程是 appium+pyt ...
- Appium+python自动化16-appium1.6在mac上环境搭建启动ios模拟器上Safari浏览器
前言 在mac上搭建appium踩了不少坑,先是版本低了,启动后无限重启模拟器.后来全部升级最新版本,就稳稳的了. 环境准备: 1.OS版本号10.12 2.xcode版本号8.3.2 3.appiu ...
- appium+python自动化47-首次打开app权限弹窗问题
前言 用真机运行appium代码,首次打开app有的手机会出现权限弹窗问题,一般这种弹窗都是在引导页前面或者引导页后面出现.权限弹窗上面的按钮都是固定的, 只需要定位到"始终允许" ...
- Appium+python自动化1-环境搭建(上)【转载】
前言 appium可以说是做app最火的一个自动化框架,它的主要优势是支持android和ios,另外脚本语言也是支持java和Python.小编擅长Python,所以接下来的教程是appium+py ...
随机推荐
- 51nod 1503
动态规划 $f[a][b][c][d]$ 表示从 $(1, 1)$ 走到 $(a, b)$ 和从 $(n, m)$ 走到 $(c, d)$ 的方案数 $f[a][b][c][d]$ $= f[a][b ...
- 经过测试,feign只能通过@RequestBody传对象参数
通过feign调用,使用ModelAttribute 注解,参数没法传到对应的server
- C语言学习笔记2-程序基础和变量
本系列文章由jadeshu编写,转载请注明出处.http://blog.csdn.net/jadeshu/article/details/50751977 作者:jadeshu 邮箱: jades ...
- P3368 【模板】树状数组 2
原题链接 https://www.luogu.org/problemnew/show/P3368 这个题和洛谷P3374树状数组1 有些不同,在普通的树状数组上运用了差分的知识.(由于P3374涉及 ...
- java编写网站数据抓取
来公司已经俩月了,每天加班平均工时11个小时的我又想起了老东家温馨舒适安逸的生活.已经有好久没时间读博客写博客了,我觉得我退步了,嗯嗯,我很不开心 今天记录下抓数据的一些东西吧. 数据抓取现在是很普遍 ...
- windows环境下启动mongodb服务
方法一1.打开命令窗口,切换到mongodb安装目录下的“bin”目录中. 输入命令:cd E:\software\MongoDB\Server\3.4\bin 2.启动服务.输入命令:”mongod ...
- 互联网IT当线上出现 bug 时,是怎么处理的?
线上BUG说处理方法:1.关于线上BUG问题,目前公司有一整套线上故障流程规范,包括故障定义.定级.处理流程.故障处理超时升级机制.故障处理小组.故障处罚(与故障存在时长有关)等:2.最主要的是,线上 ...
- 【spring源码分析】IOC容器初始化——查漏补缺(四)
前言:在前几篇查漏补缺中,其实我们已经涉及到bean生命周期了,本篇内容进行详细分析. 首先看bean实例化过程: 分析: bean实例化开始后 注入对象属性后(前面IOC初始化十几篇文章). 检查激 ...
- 课下选做作业实现mypwd
2019-2020-1 20175227 <信息安全系统设计基础> 课下选做作业实现mypwd 要求 学习pwd命令 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 ...
- mac 设置 MySQL 数据库默认编码(字符集)为 UTF-8
mac 设置 MySQL 数据库默认编码(字符集)为 UTF-8 原文链接:https://juejin.im/post/5bbdca76e51d45021147de44 鉴于有些刚接触 MySQ ...