跑的多了你会发现,你以为你点击了,程序也告诉你点击了,实际上没点击到
点击前加 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 自动化