Appium移动自动化测试-----(六)2.AppiumDesktop录制脚本生成极简脚本
AppiumDesktop启动页面:


启动AppiumDesktop以后点击该页面右上角的Start New Session按钮,就会启动一个新的会话窗口(如下图),在这个窗口我们需要配置一些Desired Capabilities信息:


platformName:'Android' #Android手机
platformVersion:'4.3 ' #模拟器系统是4.3
deviceName:'192.168.105.101::5555' # 这个是模拟器的设备名称

app:'D:\\app\\SHIPPER_Android_TEST_4.1.1.0.apk' # 安装自己待测app,类型为filepath
appPackage:'com.taobao.taobao' #app的包名称

appActivity:'com.taobao.tao.welcome.Welcome ' #activity的名称
使用命令查看:adb shell dumpsys activity activities

noReset:是一个bool值,选TRUE。
如果想要使用真机,必须再加一个字段udid,是text类型。
2.参数配置好之后可以保存下,然后启动模拟器,再点Start Session按钮就能定位元素了

定位元素信息
写Appium脚本的最重要的一个信息是定位元素,获取元素的ID或者xpath等等类似的信息。
只需要点击Inspector最左边一栏的Select按钮,然后再去点击所要获取信息的元素即可,当元素突出显示时,其信息将显示在Inspector右侧的详细视图中。有些是用accessibility id 定位,有些是xpath定位或者其他的定位信息,但是在iOS应用上Appium推荐使用accessibility id 来定位一个元素信息。
在Inspector窗口的中间是您的应用程序的层次结构,表示为XML。

滑动页面(元素)
现在可以定位当前页面的元素了,但是怎么滑动到下一个页面或者怎么滑动页面上的滑动条(slider)呢?
选中Swipe。模拟在手机上的操作手势,从起点到终点各点击一下,就实现了滑动。


点击某一个元素
如果我们想要点击某一个元素进行下一步操作,比如在输入框内输入文本或者弹出一个alert该怎么操作呢?
选中Tap。然后再去点击textfield或者alert我们就可以进行下一个操作了。如果想要定位alert上的元素信息,那就在alert弹出的时候在切换到Select,然后点击想要定位的元素就行了。

录制脚本
这真的是一个很实用的功能。他似乎解决了我们一个大问题,那就是该使用哪个API的问题以及脚本的编写规范的问题。对于初步入坑的小伙伴来说是一个很好的参考。脚本录制功能就是那个眼睛图标,如下图:
点击该按钮以后如下图:
然后就可以在左边随便对App进行操作了,此处我进行的操作有:点击输入框,点击Alert,滑动滑动条,滑动屏幕,点击软键盘并输入文本(这里我选择是Python语言)。这时候Inspector生成的脚本是非常简单的,只是对你操作的步骤进行记录,还不能执行,这段脚本如下:
TouchAction(driver).tap([(167, 73)])
TouchAction(driver).tap([(81, 300)])
TouchAction(driver).tap([(303, 414)])
el1 = driver.find_element_by_accessibility_id("IntegerA")
el1.click()
el1.send_keys("Hello")
TouchAction(driver)
.press({x: 198, y: 393})
.moveTo({x: 50: y: 0})
.release()
TouchAction(driver)
.press({x: 335, y: 264})
.moveTo({x: -183: y: -3})
.release()
TouchAction(driver).tap([(191, 498)])
TouchAction(driver).tap([(357, 698)])
反正我没看懂这段代码。别担心,这只是Inspector默认生成的极简脚本,善良的Inspectory为我们提供了一个功能那就是将极简脚本变成可执行脚本,操作如下图:
现在脚本就变成了这个样子:
# This sample code uses the Appium python client
# pip install Appium-Python-Client
# Then you can paste this into a file and simply run with Python
from appium import webdriver
caps = {}
caps["platformName"] = "iOS"
caps["platformVersion"] = "10.3"
caps["deviceName"] = "iPhone 7 Plus"
caps["app"] = "http://appium.s3.amazonaws.com/TestApp7.1.app.zip"
caps["noReset"] = True
driver = webdriver.remote("http://0.0.0.0:4723/wd/hub", caps)
TouchAction(driver).tap([(167, 73)])
TouchAction(driver).tap([(81, 300)])
TouchAction(driver).tap([(303, 414)])
el1 = driver.find_element_by_accessibility_id("IntegerA")
el1.click()
el1.send_keys("Hello")
TouchAction(driver)
.press({x: 198, y: 393})
.moveTo({x: 50: y: 0})
.release()
TouchAction(driver)
.press({x: 335, y: 264})
.moveTo({x: -183: y: -3})
.release()
TouchAction(driver).tap([(191, 498)])
TouchAction(driver).tap([(357, 698)])
driver.quit()
这样是不是就和我们写的脚本格式一样了,你学会了吗?
在学习过程中遇到问题可以留言,互相学习,共同进步!
Appium移动自动化测试-----(六)2.AppiumDesktop录制脚本生成极简脚本的更多相关文章
- appium-desktop录制脚本二次开发,生成我司自动化脚本
目的 通过对appium-desktop脚本录制功能进行二次开发,使录制的java脚本符合我司自动化框架要求. 实现步骤 1.增加元素名称的输入框 由于ATK(我司自动化测试框架)脚本中元素是以“ap ...
- AppiumDesktop录制脚本
AppiumDesktop启动页面: 启动AppiumDesktop以后点击该页面右上角的Start New Session按钮,就会启动一个新的会话窗口(如下图),在这个窗口我们需要配置一些Desi ...
- RF+Appium框架自动化测试系列一之(Mac下Appium环境搭建)万事开头难
消失了3个月,有一段时间没来园子更新博客了,各位看官见谅哈哈,消失是因为刚换了工作环境没外网,好多笔记没能及时的记录分享,以后有时间慢慢补上吧,这段时间主要接触了移动端app的自动化测试,公司为了快速 ...
- Appium移动自动化测试(一)--工具软件安装
Appium移动自动化测试(一)--工具软件安装 详情参考-- http://www.cnblogs.com/fnng/p/4552438.html 第一节 安装node.js Appium 官方网 ...
- Appium移动自动化测试(四)--one demo
继续更新. -------------------------------------------- 第四节 安装Appium Client Appium Client是对webdriver原生ap ...
- Appium移动自动化测试(四)--one demo(转)
Appium移动自动化测试(四)--one demo 2015-06-15 20:41 by 虫师, 40514 阅读, 34 评论, 收藏, 编辑 继续更新. ------------------- ...
- Appium移动自动化测试(二)--安装Android开发环境(转)
Appium移动自动化测试(二)--安装Android开发环境 2015-06-04 17:30 by 虫师, 35299 阅读, 23 评论, 收藏, 编辑 继续Appium环境的搭建. 第二节 ...
- 手机自动化测试:搭建appium手机自动化测试开发环境
手机自动化测试:搭建appium手机自动化测试开发环境 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大 ...
- 初次尝试使用jenkins+python+appium构建自动化测试
初次尝试使用jenkins+python+appium构建自动化测试 因为刚刚尝试使用jenkins+python+appium尝试,只是一个Demo需要很多完善,先记录一下今天的成果,再接再厉 第一 ...
随机推荐
- combox使用自定义的model列表中无元素显示
自定义的model(stationModel)中有 name 和point两种属性名. 初始化stationModel Combobox{ textRole: 'name' model:station ...
- Pytest权威教程-更改标准(Python)测试发现
目录 更改标准(Python)测试发现 在测试收集过程中忽略路径 测试期间收集的测试取消 保留从命令行指定的重复路径 更改目录递归 更改命名约定 将cmdline参数解释为Python包 找出收集的东 ...
- Pytest权威教程21-API参考-02-标记(Marks)
目录 标记(Marks) pytest.mark.filterwarnings pytest.mark.parametrize pytest.mark.skip pytest.mark.skipif ...
- win10系统中对本地端口进行简单分析
突然有事情涉及到本地端口,对相关内容进行了了解,这部分知识应该偏向运维,有些不好理解,查起来也零零散散的,理解的可能也有误……只记录一部分东西 想要查看本地端口的情况,在cmd下使用 netstat ...
- 【知识点】Java机密
Java添加PDF图章.动态图章 主要实现以下功能: 添加图片图章.即通过加载现有的图章(以图片形式),添加到PDF指定页面位置 添加动态图章.即加载PDF文档,并在动态的添加印章内容,包括印章字样. ...
- Samba文件共享服务设置
SMB的主程序 smbd:SMB-TCP139,CIFS-TCP445 nmbd:NetBios-UDP137,138 SMB主程序对应的两个服务 /etc/init.d/smb /etc/init. ...
- Spatial-Temporal Relation Networks for Multi-Object Tracking
Spatial-Temporal Relation Networks for Multi-Object Tracking 2019-05-21 11:07:49 Paper: https://arxi ...
- HmacSHA256摘要算法
mac(Message Authentication Code,消息认证码算法)是含有密钥散列函数算法,兼容了MD和SHA算法的特性,并在此基础上加上了密钥. 甲乙双方进行数据交换可以采取如下流程完成 ...
- spring-data-mongodb中的MongoTemplate与MongoRepository及推荐
SpringData支持两种关系数据存储技术: JDBCJPA ● SpringData 方法定义JPA规范: 1. 不是随便声明的,而需要符合一定的规范2. 查询方法以find | read | g ...
- Prometheus基于consul自动发现监控对象 https://www.iloxp.com/archive/11/
Prometheus 监控目标为什么要自动发现 频繁对Prometheus配置文件进行修改,无疑给运维人员带来很大的负担,还有可能直接变成一个“配置小王子”,即使是配置小王子也会存在人为失误的情况 ...