手机端获取元素信息,出现懒加载问题,对应的流程:
1:设置列表变量(收集元素信息);
2:无限循环--获取相似元素列表--循环相似元素列表--获取元素信息--列表插入一项--判断信息是否获取完毕(判断条件根据实际页面情况而定)--是则结束信息获取--否则滑动手机屏幕,继续循环;
3:列表去重,写入表格(确保信息唯一)。
一:场景
为获取准确商品信息,需用手机获取淘宝商品sku和对应价格,但sku个数较多,手机页面多属于懒加载导致无法获取到全部的相似元素,需用【滑动手机屏幕】指令控制页面滑动获取信息,单独测试指令会按照设置正常滑动页面,一旦放在整体流程中,就会出现页面直接到底,获取不到其他sku信息的问题,前置加等待也没有用。
二:遇到的问题
【滑动手机屏幕】不管是选择在指定元素中滑动,还是在整个屏幕中按照规定坐标滑动,在主流程里运行都会直接移动到页面底部,没有收集到所有信息
三:可能的原因
原因1:滑动过快
原因2:滑动指令之前的指令导致屏幕元素变化,页面变成了不可滑动状态(滑动指令前打断点测试)
例:
循环点击sku获取信息,循环到本页面最后一个相似元素时,点击到了相似元素上的其他元素,导致屏幕出现移动。
四:解决办法
原因1解法:
1:首先把在整个屏幕中滑动滑动方式改为坐标(图1)滑动
图1
2:在滑动手机屏幕指令-高级设置-滑动时间-将滑动时间改高,然后就可以顺利运行滑动了;
3:如果还有问题,安卓机可以把开发者模式里的窗口动画缩放,过度动画缩放关掉。
原因2解法:
没有正常运行滑动指令,滑动指令前点击到了屏幕其他位置,导致屏幕移动,所以避免点击对应元素就可以正常滑动获取相似元素信息
例如:判断当前要点击的元素位置,如果位置与 不应该点击的元素位置 有重叠,则不点击,先滑动再获取信息
五:备注
懒加载:一个长页面中需要展示很多元素的时候,如果在进入页面时一次性把所有元素加载完,需要很长的时间。为了提升用户使用体验,使用懒加载,当元素出现在可视区域时,才加载元素。