在日常自动化测试中发现, iOS 端部分按钮使用 appium 点击后的效果,与手指点击效果不同。
比如手指点击按钮 A 后,会在当前界面上出现 toast 提示,但是用 appium 点击就不会有这个 toast 出现。
好像大多不能出现的元素,都是在当前界面上增加的部分小元素。
目前怀疑是 wda 在执行时会占用较多系统资源,导致应用程序的后续动作被影响了。
跑的多了你会发现,你以为你点击了,程序也告诉你点击了,实际上没点击到 点击前加 sleep 可以提高一点概率,剩下的就只能当做失败,case 重跑一次
看了下自动化执行时的性能消耗,执行时 ios 的 cpu 占用会飙升,会影响到程序中弹窗的执行,而且多出现在,界面上浮层,点击后再弹一个浮层的情形下。iPhone 比较新的成功概率会提高,老的就经常失败。
我目前的解决办法是,先定位元素,然后获取元素 location 和 size 算出元素中心点,然后点击页面像素解决;