赞
踩
目录
1.5安装python插件:Appium-Python-Client
4.参数platformName和platformVersion的获取:
在开始这篇文章之前,您需要做好以下几个准备:
以上可选择性参考下面这两篇文章:
https://blog.csdn.net/test_number1/article/details/121754944?spm=1001.2014.3001.5506
https://blog.csdn.net/u013302168/article/details/122475805?spm=1001.2014.3001.5506
A.打开开发者选项
B.打开允许USB调试
C.打开坐标设置
Windows版本下载:
https://dl.google.com/android/repository/platform-tools-latest-windows.zip
Mac版本下载:
https://dl.google.com/android/repository/platform-tools-latest-darwin.zip
Linux版本下载:
https://dl.google.com/android/repository/platform-tools-latest-linux.zip
2.1配置环境变量:高级->环境变量->系统变量->path->添加adb的路径【要到adb/planform_tools】>保存保存保存
2.2验证:doc窗口:win+r---->adb --version------>看到adb对应的版本号就成功了。反之请重新检查
3.1.打开手机:夜神模拟器为例(并保证相关设置已打开)
3.2.打开窗口:win+r
3.3.连接设备:adb connect 127.0.0.1:62001------>回车【这里使用的是夜神模拟器】
3.4.查看连接状态:adb devices-----List of devices attached表示连接成功了,反之就是失败,请重新检查相关是否正常。
3.5断开连接:adb kill-server---->回车
正文开始啦
appium是一个移动端自动化框架,它采用C/S的设计模式,支持多类开发语言(java python js c#…)、支持多平台(ios android),支持跨平台使用(windows linux)。它适用于原生或混合移动应用;
appium继承了webDriver协议(也就是继承了selenium 2),在其基础上做了扩展,使用JSON wire protocol协议驱动安卓和ios移动应用;
废话总结:Appium继承了selenium 2,适用于多种语言。
1.下载:https://github.com/appium/appium-desktop/releases/tag/v1.22.2
2.解压:存放于自己喜欢的目录【建议新建一个目录】,最好D盘哈,为什么自己想。
3.打开:进入解压后的目录,双击打开 Appium Server GUI.exe
打开手机或模拟器
打开界面如下,直接点击Start Server
再点击搜索放大镜:
【如下】
连接手机(模拟器)时需要在这里填写几个正确的参数
几个重要的参数【有很多、一般这几个就ok】:
key | 含义 |
appPackage | app包名 |
appActivity | 启动app的activity |
deviceName | 设备名称,手机(模拟器)ip+端口,如夜神模拟器127.0.0.1:62001 |
platformName | 设备类型,Android |
platformVersion | 设备版本,进入手机或模拟器中查看版本,如:7.1.2 |
-----参考上面的:一、1.7(3)
输入:
adb shell pm list package -3
adb shell pm list package -3 | 展示第三方安装包名 |
adb shell pm list package -s | 展示系统自带的安装包 |
如下 就是第三方的包名,也就是对应的 appPackage,比如是: appPackage=com.zzly99.wnl
接着上面的操作,得到了包名:com.zzly99.wnl,当然这里你可以直接问开发要包的appActivity。但是我们也可以自己查询到:
输入命令:adb shell monkey -p 包名 -v -v -v 1
adb shell monkey -p com.zzly99.wnl -v -v -v 1
得到如下信息:+一行和:Switch:一行都可以找到对应的appActivity
appActivity=com.zzly99.wnl.ui.Welcome
【小提醒:两个地方不同的是:后一个appActivity多了一个"/",如果复制后面的记得要去掉"/",复制前面的一般没有问题】
查询完成后记得断开adb与手机的连接:adb kill-server
在手机中的“关于手机”中可以查看到信息【如下】:
platformName=Android
platformVersion=7.1.2
如下,填写了如上的几个参数后,点击连接
[记得查询完参数后要断开adb连接]
连接中:
连接成功:
进入录制状态
(2)选择操作:
选择元素还是滑动
我们先来一个滑动:点击滑动---
录制记录了滑动的代码
再来一个元素的点击:
记录了点击元素的操作
上面就是简单的滑动,元素的点击、输入、清空的操作的录制。
点击结束录制,录制就结束了。代码会完整保存在记录区中。
选择要生成的语言,再复制代码
adb kill-server
这个界面就行
首行加入以下一行代码用来说明编码格式
#encoding=UTF-8
- 需要导入相关的包
- 鼠标置于目标字段中----->alt+enter----->回车-
appium继承了selenium2,生成的定位方式自然是selenium2的定位方式。如果python安装的对应的selenium版本的定位方式与selenium2的定位方式写法不同,就会出现标红的形式。【find_element_by_的定位方式在selenium3.0后续已弃用,改成了find_element("","")的形式】
修改降低selenium的版本为3.0以下,使之一致。
或修改成新的写法。
截图中的asynic忽略哈,导入错了,后面正了。应该是time
- #encoding=UTF-8
-
- from time import sleep
- from appium import webdriver
- from appium.webdriver.common.touch_action import TouchAction
-
- caps = {}
- caps["appPackage"] = "com.zzly99.wnl"
- caps["appActivity"] = "com.zzly99.wnl.ui.Welcome"
- caps["deviceName"] = "127.0.0.1:62001"
- caps["platformName"] = "Android"
- caps["platformVersion"] = "7.1.2"
-
- #连接设备
- driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
- sleep(3)
- #滑动
- TouchAction(driver).press(x=1067, y=471).move_to(x=1045, y=2467).release().perform()
- sleep(5)
- #同意协议
- el1 = driver.find_element("id","com.zzly99.wnl:id/btnLogin")
- el1.click()
- sleep(3)
- #同意进入
- el2 = driver.find_element("xpath","/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.LinearLayout/android.widget.LinearLayout[2]/android.widget.TextView")
- el2.click()
- sleep(20)
- driver.quit()

启动稍候-appium如下窗口开始连接启动
查看手机(模拟器)看运行---运行起来了------手机模拟器开始被操纵
如上中,使用Xpath定位生成的定位方式,巨巨巨长且太难看了,可以进行自己定义定位方式的写法。具体的写法可以进一步学习,优化代码的美观和长度。
加上pytest、selenium、unittest等结合使用、断言,等待,加油吧。各位。
【END】
庆祝一下
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。