如果爬数据,为啥不用接口爬; 如果是做 UI 自动化,那就屏幕上滑,加载下一页的元素;
# 模拟用户向上滑动 # 返回当前页,支持链式调用
@allure.step("向上滑动")
def swipe_up(self):
log.info("向上滑动")
size = self.app_driver.get_window_size()
x = size['width'] * 0.5 # 横向中点
start_y = size['height'] * 0.8 # 起点:顶部 80% 位置
end_y = size['height'] * 0.3 # 终点:顶部 30% 位置
self.app_driver.swipe(x, start_y, x, end_y, 200)
return self
嗯嗯,好像是有的 Switch 开关类型的,这个值会变化,大部分其余的控件都没变化
嗯嗯,是个思路,只能通过点击后,其余元素导向的变化,来验证了; 比如筛选后,列表变化;选中后,输入框变化这种
哦哦多谢,我们都是这种类型,不是 button
我目前的思考就是,这种选中的样式,不好自动化断言,那就手动来执行,这种用例就不做到自动化里。或者用例执行后截图,人工看报告结果,人工干预验证结果
我最近也在思考这个问题;考虑加入代理,可以验证前台点击后,请求传的入参对不对,或者说前台是否触发了这个接口,相当于验证了点击生效; 在这代理可以抓取接口反参,验证列表、筛选等功能的数据正确性,这种数据验证 UI 断言不好做;还可以通过代理 mock 特殊数据,然后验证前端 UI 的展示;但是我还没着手去做,看你 5 年前问的问题,不知道你有事实落地方案么?
嗯嗯,还好这种局部刷新元素的场景不多;还是 wda 问题,没有考虑到这种情况。我和 AI 聊了两天了,AI 让我去改 wda 源码了。。。我也是服了= =,
我的处理方案。。。太 low 了。。。
多谢大佬回复,越狱我没弄过,我先老老实实有线跑,等有空了,试试这个方案
感谢大佬回复,deepseek 的方案不太行哦,我就 IOS 用有线跑就行,安卓用无线跑
请问如何重启 wda;我目前的方案就是断开 inspector,然后更新 "appium:wdaLocalPort": 8700 变为 8701,这样就不会服用之前的 wda 实例,也就相当于没缓存了,然后读出新的元素; 那写脚本,就要断掉 driver,重新生成新的 driver,其实也变相解决了,但是会影响执行速度;也还好五个筛选,就获取五次 driver,每次给 caps 中端口 +1
感谢大佬,我尝试用 weditor 试试;
其实不刷新,我也可以通过类比的方式,将这些不刷新出来的元素,定位信息给猜出来
但是,就怕跑脚本的时候,wda 还是不刷新,那脚本肯定也会报错,不过只是 IOS 不刷新, 安卓就会刷新,也是奇了怪; 如果跑测,也不刷新,那这种筛选框的用例,IOS,就没法用 wda 方式去实现自动化了,我晚点去实验下跑测情况
我发现重启 appium server 不会清理 wda 缓存,应用源里还是没最新元素; 目前没找到重启 wda 或者 清理 wda 缓存的方法
我通过更新了最新的 WDA,发现问题依旧; 这个还没在 UI 自动化脚本中测试,如果脚本中也不刷新
那岂不是就算在 Inspector 中定位到了元素,但真正执行脚本的时候,也会报错,找不到元素。。。
好的多谢大佬, 想请问下无线方式,capabilities 要如何配置
好的,大佬。其实我就是想搞个 IOS 无线的情况下,跑 Appium 自动化脚本 -,- 但我当前的 capabilities 配置只能有线跑。所以想问下,无线的要如何配置,可以跑起来。
多谢大佬,我再试试。我好像是关闭 appium server,然后关闭 inspector,然后重启 appium server,重新打开 inspector,加载出当前页后,还是找不到元素😓 不知道以上操作有没有生成新的 wda session
楼主,我使用 mac ,xcode 通过无线 WIFI 连接的手机,也通过无线可以 test 将 WDArunner 安装到手机; 表示 Xcode 与手机之间肯定是无线连通的。
我现在 appium 脚本在初始化 driver 找不到我的设备,请问楼主是如何解决的
这坑今天被我踩了,各位大佬,做移动端 UI 自动化 还在用 appium 么
这坑今天被我踩了 ; 现在做移动端 UI 自动化,各位大佬还在用 appium 么
经过查询 testhome 的其他文章,还有 git 上的说明
https://testerhome.com/topics/40793
https://github.com/alibaba/tidevice
通过如下方式已解决,分别执行 xcuitest 和 转发,分两个命令行执行,就很稳定,不再断开,原因未知:
tidevice xcuitest
tidevice relay 8200 8100
如上是监听 8200 端口,转发到手机 8100 端口; 此时 appium 配置需要配置 8200 端口
"appium:webDriverAgentUrl": "http://127.0.0.1:8200",
这个好使,跪谢大佬
这个不行喔
有勇气做出改变就很强了
我都 sleep 800 秒了,不好使啊