1、正常都有分页的
2、完全不管分页的话,改 ios
如果只是要点击,那拿显示区的内容没毛病,想爬内容抓不到包?
滑动,元素都捞出来,去重
直接参考 airtest 的这个文章:文字识别技术升级:Airtest 与 PaddleOCR 模型的协作小技巧
https://mp.weixin.qq.com/s/6Y6BeFnoXfz0qKf2P_FaOw
一次图像识别的交互需要多久,针对跑马灯组件,页面自动切换的,当识别返回的时候,页面已经被切走了,怎么处理的
结果导向的判定啊,如果我上面一步失败了,那后续步骤必定失败。整个 case fail。留截图
别考虑那么多,单纯的 TestFlight 出 bug 了而已
跑的多了你会发现,你以为你点击了,程序也告诉你点击了,实际上没点击到
点击前加 sleep 可以提高一点概率,剩下的就只能当做失败,case 重跑一次
建议你尝试使用 weditor 或者 uiauto 查看(看不到不一定点不到,比如 weditor 对 H5 识别弱,但在 uiauto 上又可以看到)
weditor 安装:pip install --pre --upgrade weditor
weditor 使用:在 cmd 执行 python -m weditor
uiauto 安装 :pip3 install -U uiautodev -i https://pypi.doubanio.com/simple
uiauto 使用:在 cmd 执行 uiauto.dev
局域网下大概率你能 ping 通手机的 ip,但是访问不到 8100 端口,然后按这个文档操作一下(据说是,我没干过)解决国产手机 wda 不能联网问题 https://blog.csdn.net/qq_43575801/article/details/141610818
无所谓的,元素查看器能启动就行,不行的话就换成 airtest 维护的 wda(我目前用的是这个,17/18 可以跑)
1、你当前用的是 udid 去连接,这个是 wda 的 USBClient 方法,只支持 usb
2、尝试无线连接(电脑和手机同个网络)wda.Client('http://localhost:8100') ,localhost 改成手机的 ip,理论上直接连手机,不用电脑转发到手机,所以端口还是 8100
首先,需要先排除数据上下游强关联的用例
直接转成数据驱动、或者每行操作单独执行,(先 str 化,然后 exec(str))
1、单步骤执行失败后,sleep(1),后重试一次
2、上下游相关的 case 放一个测试流程,部分节点做校验,不符合就退出流程
3、自动对失败的流程重试(如果是网络问题引起的,这步可以修复,一般重试 1-2 次)
直接用 wda,拒绝中间商..
安卓用的 driver.swipe_points([coordinates1,coordinates2,coordinates3], 0.2)
coordinates1=(x1,y1)
我的安卓是基于 uiautomator2,不过这个方法在 appium 也有(但是好像 ios 不支持)
我的 ios 是基于 wda,直接使用 http 通信
wda_url = f"http://localhost:8100/session/session_id}/actions{"
构建请求数据 相关文档https://github.com/jlipps/simple-wd-spec#perform-actions
写 UI 自动化的时候,兼容一下多语言就可以了
1、页面点击时主要以 text 为主
2、对每个页面的 text 进行 exists 校验
3、执行多语言时,提取 case/代码中的 text,替换成对应的多语言
然后正常执行 ui 自动化
你的要定位的东西在列表上吧,新版在列表上从头找到尾,基本上都在屏幕外。
我自己的重构了,
1、优先 driver(text='模式', visible=True) 快捷指定 visible=True 找到显示区域的,但是新版这个 visible=True 可能不准 (部分 True 的可能返回 False)
2、1 找不到,再去循环查询 driver(text='模式')
element=driver(text='模式')
elementcount = element.count()
for i in range(1, elementcount + 1):
if element[i].visible:
print(str(i) + '个时是显示的')
break