RT:怎么用 appium 测试首页中的轮播图,需对轮播图中的每个图片遍历一次,看起跳转是否成功
我会每个图片找到,然后点击下。。
截图,选取对比范围,进行图片对比,根据对比度判断,是否切换,需要 PIL 库之类的。
我们这边也有这样的需求,但是我们的轮播图是 5 秒切下个广告(会不会出现抓不到这个广告而很容易挂掉?),而且研发那边也没有给每个广告设置 id 或者下标属性什么的,想问问大家也是怎么做的?
有什么方法可以得到这个位置会轮播多少张图片?
appium 感觉有点不好做
要知道多少个可以直接解析接口数据
要是我就会找到这个控件里面的 adapter,然后控制跳转,然后点击 呃 思路就这样 没有具体实现过
这个意义不大吧,banner 基本上天天变吧
因为加载不成功的话会出现例如 “加载失败,重试” 之类的文案吧,就验证这个 text,或者匹配加载失败的图片
如果有错误的标准图,在一段时间内实时检测控件图像,分析是否和错误图匹配就可以了。
图像分析匹配参考,OpenCV 的 MatchTemplate,或者 Sift 特征匹配.
我们这边的是帧布局,可以拿父 layout,然后那他的子控件数量,应该就可以了,不过真的感觉点击广告,跳转到特定登陆页不好做,天天变来变去的,现在我是判断他跳转就算了,没有断言到指定登陆页
图像对比最靠谱
虽然不建议你 -- 没找到 “加载失败” 就算通过了;你可以获取 banner 的 center 的 x,y,根据你 banner 的轮播策略,或是自己滑动,或是等待,然后直接点击 x,y
python 的话,可以用图片对比 win 环境,可以调用按键精灵图片对比的库来做 比较容易 ,通用点的方法 OpenCV 有图片中找到另一个图片的方法。java 或 linux 环境都可以参考。OpenCV 支持 java。
不过上面方法有个缺点,截图速度慢很容易失败,快速截图的方法可以自己论坛里找找
终极办法 换 appium 用 ATX