AirTest相比Appuim有个好处就是可以对GUI图片进行捕捉和最新版本支持WebView(目前Appuim不支持iOS12的WebView进行Xpath抓取)

AirTest环境搭建可参考以下链接:

https://airtest.netease.com/docs/docs_AirtestIDE-zh_CN/1_quick_start.html

环境配置:

libimobiledevice: stable 1.2.0 (bottled), HEAD

Python 3.7

WebDriverAgent 用AirTest提供的[https://github.com/AirtestProject/IOS-Tagent ]

Xcode10.1

AirtestIDE

启动AirTest

运行WebDriverAgent【运行之前先用Xcode打开WebDriverAgent.xcodeproj,选择开发者账号来Build正常】

可以采用终端方式来运行:

xcodebuild build-for-testing test-without-building -project [WebDriverAgent.xcodeproj目录地址] -scheme WebDriverAgentRunner -destination id=[设备UDID] test

事先用$ brew install libimobiledevice 安装 libimobiledevice

每次在WDA启动后进行端口映射

$ iproxy 8100 8100

然后打开AirtestIDE对iOS设备进行连接

iOS连接.png

捕捉参数录制脚本

Airtest提供了两个插件库让我们方便进行自动化测试:

1:AirTest库,主要通过对GUI图片进行定位来操作实现自动化

2:POCO库,类似appuim,通过形成UI树Xpath,对多层次控件进行操作来实现自动化

因为我们自动化测试主要是针对多型号设备进行测试,每台设备的UI可能因为适配状况,会有不一样,会导致AirTest的成功率不稳定,所以,理论上优先使用POCO进行元素定位,其次才是AirTest进行定位

AirTest捕捉

AirTest初始化:

from airtest.core.api import *

手动捕捉

在AirtestIDE的Airtest录制辅助窗内,包含有三种类型的录制按钮:

操作类型

辅助类型

断言类型

touch

text

assert_exists

swipe

keyevent

assert_not_exists

wait

sleep

assert_equal

exist

assert_not_equal

snapshot

AirTestIDE.png

点击 touch/swipe/wait/exists/assert_exists/assert_not_exists 按钮后,在设备画面上按下鼠标左键进行截图框选,抬起鼠标左键完成框选。对应操作语句会自动插入编辑器脚本中。

点击操作:

点击.png

等待操作:

assert_exists(图片, "等待成功登陆出现")

自动捕捉

点击AirTest辅助窗右上角的录制按钮,然后在设备视窗进行操作,就能自动录制操作脚本,但因为这种方式错误性比较高,建议少用,主要是通过手动捕捉对应的图片再进行之后的操作

POCO捕捉

POCO初始化

from poco.drivers.ios import iosPoco

poco = iosPoco()

手动捕捉

POCO.png

点击POCO辅助窗右上方第一个按钮【POCO Pause】,对窗口进行冻结,然后在Log显示元素属性,并且通过点击右键【UI-Path Code】获取对应的UI-path,然后再进行操作,如:

poco("iconUser3").wait(3).click()

poco("iconLogin").click()

transBtn = poco("iconLogin")

poco.wait_for_all([transBtn])

transBtn.click()

#向上滑动一个屏幕的高度

screenWidth,screenHeigth = poco.get_screen_size()

swipe((screenWidth*0.5,screenHeigth*0.9),vector=[0,-0.5])

POCO辅助窗右上方第二个按钮【POCO Inspector】是在不冻结窗口的情况下进行捕捉

自动捕捉

POCO辅助窗右上方第三个按钮【POCO Auto Recording】是进行自动捕捉录制,任何操作都录制成脚本

微信朋友圈无限点赞

from airtest.core.api import *

from poco.drivers.ios import iosPoco

poco = iosPoco()

auto_setup(__file__)

assert_exists(Template(file:///Users/cengsijian/Desktop/AirTest/AirTestWeixinTest.air/tpl1545103410488.png, record_pos=(0.119, -0.708), resolution=(750, 1334)), "进入微信测试")

poco("微信").click()

assert_exists(Template(file:///Users/cengsijian/Desktop/AirTest/AirTestWeixinTest.air/tpl1545103527211.png, record_pos=(0.125, 0.815), resolution=(750, 1334)), "请填写测试点")

poco("发现").click()

poco("朋友圈").click()

screenWidth,screenHeigth = poco.get_screen_size()

while True:

#查找评论按钮

tableList = poco("Table").child('Cell').offspring('评论')

#点击评论按钮

for child in tableList:

childX,childY = child.get_position()

print(childX)

print(childY)

if (childY>=0.1 and childY<1.0):

child.click()

if poco("赞").exists():

touch(Template(file:///Users/cengsijian/Desktop/AirTest/AirTestWeixinTest.air/tpl1545118102228.png, record_pos=(0.057, 0.385), resolution=(750, 1334)))

# poco("赞").click()

#向上滑动一个屏幕的高度

swipe((screenWidth*0.5,screenHeigth*0.9),vector=[0,-0.8],duration=2.5)

#等滚动动画结束

sleep(5)

代码.png

演示.gif

python朋友圈自动点赞_基于AirTest+Python的ios自动化测试demo(微信朋友圈无限点赞)...相关推荐

  1. python自动点赞微信_基于AirTest+Python的ios自动化测试demo(微信朋友圈无限点赞)

    AirTest相比Appuim有个好处就是可以对GUI图片进行捕捉和最新版本支持WebView(目前Appuim不支持iOS12的WebView进行Xpath抓取) AirTest环境搭建可参考以下链 ...

  2. python 自动抢红包_基于Airtest实现python自动抢红包

    一.Airtest的介绍 1)Airtest的简介 Airtest是网易出品的一款基于图像识别和poco控件识别的一款UI自动化测试工具. Airtest的框架是网易团队自己开发的一个图像识别框架,这 ...

  3. python b站自动评论_用语音识别+python自动发送弹幕,变成B站野生字幕君吧!

    在B站观看视频的时候,有时候一些带有旁白但没有字幕的视频,会有野生字幕君出现,贴心的为视频加上字幕,大大提高了视频观感.不过手工加字幕是一件很麻烦的事,需要人工卡时间和听译打字.当一个懒人程序媛想当一 ...

  4. python实现选择题自动答题_答题辅助python代码实现

    本文实例为大家分享了答题辅助python具体代码,供大家参考,具体内容如下 from screenshot import pull_screenshot import time, urllib.req ...

  5. python数字精度自动变化_如何在python中将一个数字转换成12位精度?

    正如其他答案中提到的,这并不存在 在纯python数据类型中,see the docs 但是,您可以使用numpy来指定显式的data types,例如numpy.float16 numpy.floa ...

  6. python无法打开h5权限_解析PyCharm Python运行权限问题

    先通过 which python 获得 python 指令所在路径: $ which python /usr/bin/python 如上得到了其所在路径是 /usr/bin/python,因此我创建了 ...

  7. python应用如何实现升级_基于esky实现python应用的自动升级详解

    基于 esky 实现 python 应用的自动升级 一. esky 介绍 Esky is an auto-update framework for frozen Python applications ...

  8. python爬虫24 | 搞事情了,用 Appium 爬取你的微信朋友圈。

    昨天小帅b看到一些事情不顺眼 有人偷换概念 忍不住就写了一篇反讽 996 的 看不下去了,我支持996,年轻人就该996! 没想到有些人看不懂 这就算了 还来骂我 早些时候关注我的小伙伴应该知道我第一 ...

  9. python 合并excel 自动更新_手把手教你4种方法用Python批量实现多Excel多Sheet合并

    一.前言 大家好,我是崔艳飞.前两天给大家分享了Python自动化文章:手把手教你利用Python轻松拆分Excel为多个CSV文件,而后在Python进阶交流群里边有读者遇到一个问题,他有很多个Ex ...

最新文章

  1. windows10 安装 mysql8.0.12 详解
  2. Javascript日期时间总结
  3. 计算机辅助教学 林筑英,视频教学制作技巧.doc
  4. 具体knn算法概念参考knn代码python实现
  5. Java web之web.xml配置详解
  6. linux简单几个小命令
  7. 互联网各岗位的生存指南
  8. OpenSea联合创始人Devin Finzer:NFT空间在未来几年会产生更多应用 | FBEC 2020
  9. c字符串分割成数组_数组与字符串
  10. java详细设计模式有代码
  11. JAVA版村庄哨塔种子_开局5钻石!你的java版种子到了,请查收
  12. Linux下VirtualBox出现kernel driver not installed的解决方法
  13. OBS-RTMP推流
  14. 涉密计算机检查情况 月检查表,关于2017年下半年保密检查的通知
  15. 数学建模论文常用LaTeX代码(2021美赛)
  16. 二维数组冒泡排序 java
  17. 【数字图像处理】-图像位数
  18. 小红书API根据关键词取商品列表,Onebound数据
  19. life's a struggle - 宋岳庭
  20. android手机电池寿命,安卓手机如何查电池使用寿命

热门文章

  1. nfs:server is not responding,still trying 原因与解决方案
  2. 三 s5p4418对mcp2515 can总线的支持
  3. python pip国内源
  4. 天津理工大学 计算机网络综合实验,天津理工大学计算机网络 实验二
  5. mysql command line client 目标不对_简单几招提高MySQL安全性
  6. window10下搭建汇编环境(软件+资料)
  7. 燃!Java全球标准中国人参与制定,阿里成首个受邀中国公司
  8. FPS武器设计:丹威森500型左轮手枪的制作流程
  9. 娱美德投入千万研发 揭秘韩国第一游戏引擎
  10. 解决gc current request等待事件