首页 > 其他分享 >在Airtest自动化中如何清除iOS后台应用

在Airtest自动化中如何清除iOS后台应用

时间:2022-10-29 16:58:43浏览次数:47  
标签:iOS 切换器 应用 Airtest 后台 多任务 图标

前言

不知道做iOS测试的同学有没有遇到过1个非常让人苦恼的问题:每次打开iOS应用的界面都是上次退出时的界面,应用初始页面不一致,导致脚本运行出现了各种问题。

但 iOS平台并不支持 clear_app() 接口 ,所以无法像Android那样直接调用 clear_app() ,就能把应用进程杀掉。而 stop_app() 也只能把应用放到后台,下次再唤起应用时,初始页面依旧是上次退出时的页面。

所以究竟有没有什么办法可以清除iOS的后台应用,从而保证应用的初始页面一致呢?下文我们一起来探讨下。

清除iOS后台应用实践

既然没有接口可以给我们用来清除iOS的后台应用,那我们可以换一种解决思路,用Airtest模拟清理后台应用的行为:双击HOME键/从底部向上滑动,唤出多任务切换的界面,再通过向上滑动的动作,逐一清理后台应用。

但实践后发现,执行两次 keyevent("HOME") 并不能实现双击HOME键的效果;从底部向上滑动也不能如预期那样唤出多任务切换的界面。

那还有没有别的方式可以唤出多任务的界面呢?其实是有的,在我们最常见的苹果圆点样式的辅助功能按钮中,包含了1个名为 应用切换器 或者 多任务 的快捷功能。

 

1、在辅助触控中设置应用切换器


我们在示例设备中依次找到 设置--通用--辅助功能--辅助触控 ,打开 自定顶层菜单... ,点击 自定 的图标,将其改成 多任务 ,此时单击苹果的圆点按钮,就可以看到里面已经出现了一个 多任务 的快捷键图标:

图片

设置好之后,我们可以通过Airtest的点击脚本,轻松唤出多任务切换的界面,并通过向上滑动关掉后台应用:

图片

2、提高清除iOS后台应用脚本的兼容性


虽然上述脚本可以完成清除后台应用的工作,但实际在脚本编写和运行的过程中,很容易发现一些影响兼容性的问题:

① 苹果的圆点按钮在闲置时会变成透明的,所以截图时会把手机背景也连带着截进去,换设备执行的时候容易找不到图或者匹配出错误结果:

我们可以在设置中把这个圆点按钮的闲置透明度改成100%,即闲置时,圆点按钮也不会变成透明的效果: 

图片

把其余待测iOS设备的圆点按钮透明度都设置为100%,即闲置时圆点按钮也是全黑不透明的,此时的截图脚本就可以在更多机器上成功运行了:

 

② 不同型号的iOS任务切换器图标不全相同比如iPhone 6的任务切换器图标:

iPhone 7 plus的多任务图标:

不同型号的苹果设备,存在不一样的应用切换器图标,那我们总不能换一台设备就改一次点击切换器图标的脚本吧?当然不是。更好的解决办法是,我们把这几种图标保存在1个列表里面,只要列表中的任意1个图标出现了,我们就进行点击操作:

这样即使更换了iOS设备,应用切换器的图标不一致了,我们还是可以使用同一个脚本:

图片

标签:iOS,切换器,应用,Airtest,后台,多任务,图标
From: https://www.cnblogs.com/songzhenhua/p/16839055.html

相关文章

  • M区ios创建方法
    今天整理了一期美区id注册教程,用处我就不多介绍了,需要的人自然是知道的.接下来让我们一步一步进行,第一步:准备一个邮箱国内的126、qq、163等等都可以,只要没用它注册过......
  • 【AGC】iOS的applink的回调没反应问题分析
    ​问题背景在iOS平台集成AGCAppLinking是遇到了问题和疑惑。提问如下:使用universallink或者urlschema的applink都能拉起app,但是判断是否applink返回false,applink......
  • 博客后台:博客签名
    博客签名    一、博客签名的功能 博客签名,展示作者信息和声明;博客签名,位于每篇文章的末尾。    二、图例 --博客签名的使用方法:  ......
  • 【分布式】-- 基于Nacos、OpenFeign搭建的微服务抽奖系统后台小案例
    1.项目介绍最近入项目之前要求熟悉一下SpringCloudNacos微服务基于Feign接口调用并整合Swagger2进行接口文档展示给前端,所以自己按照要求来编写并整合了一套基于SpringClou......
  • 解决AxiosError: options must be an object ERR_BAD_OPTION_VALUE
    VUE中HTTP请求,AxiosError:optionsmustbeanobjectERR_BAD_OPTION_VALUE错误解决。 此错误完整为:{message:'optionsmustbeanobject',name:'AxiosError',......
  • Fiddler抓包iOS手机配置全流程
    前情平时做移动移动端开必的时候经常需要抓包手机,用于接口请求跟踪,但iOS的抓包经常性的配不成功,经过踩过不少坑后终于知道了整个配置流程,此文记录Fiddler抓包iOS手机的配......
  • JavaScript--JSONP和Axios
    JSONP概述:JSONP(JSONwithpadding)是一种跨域解决方案,它主要是利用了script标签不受跨域影响的特性来完成对应的请求操作。实际上是一个get请求。JSONP格式包含两个部分:......
  • iOS开发应用上传AppStore的步骤
    原文:http://blog.csdn.net/ayangcool/article/details/46647693前言:作为一名IOS开发者,把开发出来的App上传到AppStore是必须的。下面就来详细介绍下具体流程。1.打开苹果开......
  • [苹果APP上架]ios App Store上架详细教程-一条龙顺滑上架-适合小白 如何在 2022 年将
    您正在启动您的第一个应用程序,或者距离上次已经有一段时间了。作者纸飞机@cheng716051来给你讲讲将应用程序提交到AppStore并不像按下启动按钮那么简单,但也没有看起来那......
  • iOS开发应用上传AppStore的步骤
     原文:http://blog.csdn.net/ayangcool/article/details/46647693 前言:作为一名IOS开发者,把开发出来的App上传到AppStore是必须的。下面就来详细介绍下具体流程。1.......