目录
原理:
安装:
JDK:
Appium:
SDK:
补充:
*** 作:
1.连接手机
2.指令
3.定位元素
两种办法:
4.appium *** 作中流砥柱
1.先连接手机
2.实例化
5. *** 作他来了
1.查找元素
2.基本的 *** 作元素
3.加强的基本 *** 作元素
4.TouchAction
6.其他 *** 作
7.补充按键 *** 作
总结:
工具及自己用xmind记的笔记
原理:
是手机自动化测试需要的工具,是开源滴
支持多平台,多系统,多语言
就是电脑传给appium server 由appium将指令转发给手机,以此来控制手机。中间还有处理过程我就不说了,说了我能把自己绕进去。
这篇博客以自动化 *** 作安卓手机为例
安装:需要下载和配置东西很多,jdk、sdk、appium、模拟器,甚至于你要做ios的你还要买一个苹果电脑,手机我都买不起,跟别说电脑了。这篇博客咱就老老实实的做安卓自动化吧。
简单的来谈一谈怎么安装,b站上都有具体视频。
博客最下面会有网盘链接,里面就有sdk、jdk、appium的安装包,python和pycharm我就不放上了,我比较懒。
JDK:jdk是软件开发工具包,学后端的必须知道,没有jdk,java就无法编译,现在大部分使用的都是jdk1.8,但我不知道要是做自动化的话jdk的版本会不会影响自动化,随波逐流吗,下载1.8的jdk就行了,自动化需要使用jdk里的东西所以要下载,下载了之后配置jdk的环境变量就行了。
右击我的电脑-----点击属性----右上角往下一点有个高级系统设置-----点他----d出系统属性d框----点击右下角的环境变量-----点击新建----起名为JAVA_HOME----输入自己的jdk路径----点击确定。
一定要记住变量值是自己的jdk在你自己电脑所在的绝对路径。
Appium:解压了我给的appium压缩包,点击就行了,两个选择无所谓,主要看你的心情,点击安装就好了。
SDK:网盘里也有压缩包,下载完后配置环境变量。
右击我的电脑-----点击属性----右上角往下一点有个高级系统设置-----点他----d出系统属性d框----点击右下角的环境变量-----点击新建----起名为ANDROID_HOME----输入自己的SDK路径----点击确定
这还没完,还要配置别的环境变量,在Path里配置,系统变量和用户变量的Path都可以,随便一个就行。
往Path加入这两个,也就是sdk文件夹的tools和platform-tools文件
补充:JDK和SDK在appium中要用到,如果你两个环境变量配置好了,它会自动显示出来。
大体的安装就完成了,下面就要开始 *** 作了。
*** 作: 1.连接手机既然做移动端自动化,那肯顶必须有移动端,手机、平板。还有一种就是可以用手机模拟器,现在网上有很多的手机模拟器,随便下一个就行了。
1.模拟器:这个很简单,打开模拟器就行了
2.手机:得用数据线来连接,最好是原厂配套的,手机必须处于开发者模式。并且进入开发者选项把usb调试打开
点击手机设置------狂点版本号,就会看到显示进入开发者模式------退出去,点击系统和更新-----点击开发人员选项-----打开usb调试
2.指令学习实际 *** 作之前我们还要学会一些指令,因为在终端输入指令得到的东西非常重要,而且会运用到我们的 *** 作之中。前三个比较好呈现,我就只呈现前三个,我觉着后三个不经常用。
1.adb devices:查看是否成功连接手机
2.adb shell getprop ro.build.version.release:获取手机的版本,连接手机的时候要用到手机版本
3.adb shell dumpsys window windows | findstr mFocusedApp:获取当前手机处在哪个界面的名称和运行程序的名称,连接手机的时候要用到
4.adb push:电脑文件传到手机
5.adb pull:手机文件传到电脑
6.install/uninstall:安装/删除
3.定位元素selenium和appium定位元素有所不同,selenium定位元素直接在控制台找就行了,但appium需要借助工具
两种办法:第一种
1.大家还记得我们下载了一个Android_SDK吗,这个文件夹里面的tools文件夹里有个uniautomatorviewer.bat。
找到它点击它,就会出现一个终端和一个工具窗口
3.例如你想点击手机设置里面的声音,你就打开设置页面让后点击工具里面左上角数第二个,他就会截到你的设置界面。定位元素就在红框里找,红框上面就类似于html的dom节点(标签)。
第二种
运用appium工具,打开appium工具点击start server,然后点击右上角的搜索的图标
下一步很重要了,敲敲小黑板了。要想截取到界面,必须有一个步骤很重要,就是把你在python里写的连接手机的配置参数也要添加到appium,配置参数在下面appium *** 作中有写到。添加完后直接点蓝色按钮start Session就OK了
如果你常用这个界面的话,你可以保存下来,点击 Save As下一次就不用再重新输了。
注意:如果你要用sdk自带的uniautomatorviewer.bat工具,他有的时候会报错,是因为他和你的appium冲突了,关闭appium就行了。
4.appium *** 作中流砥柱 1.先连接手机上面的连接手机你姑且认为是物理连接,下面就要用代码让python和手机相连接。
这些没必要死记硬背,忘了回来再看一遍就行了。
2.实例化和selenium一个样,先得实例化一个对象 *** 作元素啊
我觉着大家有个疑问,中间绿色的http是固定的吗,为什么这样写。
我简单的回答一下大家,我有可能说的不对,这块我也不确定。
按住CTRL键,点击Remote里面有源码。红框里的就是,复制下来就行了,因为我们直接写脚本是不可能直接控制手机的,别忘了我们是要把脚本传给appium,让appium下达指令,所以我要借助appium,刚打开的appium就有我们需要的4723
5. *** 作他来了 1.查找元素find_element(AppiumBy.ID,"ID值")
find_element(AppiumBy.XPATH,"XPATH值")
最常用的就是这两种,就讲这两种吧。上面为查找元素的新写法,旧写法selenium基础中有。
Selenium基础用法
2.基本的 *** 作元素send_keys("输入的内容"):输入
clear():清除文本
text:获取元素文本内容
click():点击
get_attribute(属性的名称):获取属性的值
location:获取元素左上角的坐标
size:获取元素的宽高
这些我就不演示了,相信小伙伴们都很聪明
3.加强的基本 *** 作元素swipe():滑动
根据坐标滑动,开始的x和y坐标和结束的x和y坐标
duration是持续时间,这个可写 可不写,因为他不写默认的是600毫秒
scroll():滚动
scroll与swipe的作用是一样的,但是scroll是根据元素进行滚动,不能准确定位
drag_and_drop():拖拽
4.TouchAction这个方法被弃用了,但是现在还能使用就是报警告。有可能python版本再高的的话就不能使用了,但初学阶段我就会这种方法,大家见谅。python建议用w3c,但我现在还不会。
1.先导包然后实例化对象,这可不能少。
2.接下来 *** 作元素
press(元素):点击
wait(等待秒数):等待
move_to(元素):移动
release():松手
tap(可设置点击数):轻敲 这个就不放实际 *** 作了,下面解释一下咋用
例如:手机上有一个计数按钮,点几下按钮就显示几下的点击数,这个时候就可以用tap(元素,count=要点击几下)
偷点懒,实例就是我的另一篇博客,自动绘制锁屏,连接放在下面了。
TouchAction *** 作案例: appium自动化绘制锁屏图案_码猴。的博客
6.其他 *** 作device_time:获取手机时间
get_window_size():获取屏幕大小
network_connection:获取网络信息 按住CTRL键点击network_connection,就可以查看,输出的值的含义 Date是数据网络 wifi是无线 Airplane Mode是飞行模式 0代表没有 1代表有 only是仅有
get_screenshot_as_file/save_screenshot(图片路径):截图
open_notifications():打开通知栏 通知栏都知道吧,玩了这么多年手机不可能不知道从顶部往下滑,出来的那叫通知栏吧。
所有 *** 作的代码
7.补充按键 *** 作除了点按钮什么的我们还需要小键盘上的按键
其实有些手机上的搜索框后面并没有那种能点击搜索的图标,我们只能借用小键盘的回车按键去搜索。
导包:from appium.webdriver.extensions.android.nativekey import AndroidKey
AndroidKey.按键(按键有很多,回车、字母等等)
总结:自我感觉这篇博客写的有点差,有可能是对appium还没掌握牢固,最重要的一个原因是这篇用了很多天才写完,五一之前写了一半,五一就玩了两三天才写的另一半,所以前后有可能有很大的差距,如有写的不好,请多多体谅、多多指教。
工具及自己用xmind记的笔记链接:https://pan.baidu.com/s/1GQ16eWwtDdHqXUWkif3GQw
提取码:ljh6
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)