APP测试:禁止APP登录页面截图解决方法
2023-09-27 14:22:55 时间
背景
在做 App 自动化测试时,有些 App 的页面无法通过 UIAutomatorViewer 或者 Appium 检查器识别元素,比如银行金融类 App 页面、密码输入页面,这里以 B 站(哔哩哔哩)App 的登录页面为例:
此时工具会提示 Error taking device screenshot:EOF(截图失败)这样的错误信息。
问题发生原因
有些 App 为了安全方面的考量,禁止用户在敏感页面(比如输入密码页面、用户隐私数据页面)进行截图,此时通过手动截图(一般是通过手机上的组合按键【音量-】+【电源键】)是无法截图的。
我们还可以通过另外的方法来进行验证:
-
打开电脑端命令行窗口
-
输入如下 adb 命令
adb shell screencap -p /sdcard/test.png
-
通过 adb shell 进入到手机内部文件系统中,查看 sdcard 目录下是否有 test.png 图片
此时也会发现图片是没有生成的,其他 App 的普通页面是可以生成截图的。
导致这类问题的根本原因是:
开发在 App 的源代码中加入了禁止截图限制: getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
而元素识别工具 UIAutomatorViewer 或者 Appium 检查器都需要截图的权限,否则识别不到元素。
解决方案
在自动化脚本中使用 getPageSource()这个方法获取页面的 dom 结构信息:
关注我,学习更多软件测试知识
相关文章
- 老板叫我写个APP自动化--方法二次封装--01点击输入
- uni-app 如何引入全局方法或变量?
- Google Earth Engine APP——影像条带色差、色调不均匀等现象解决方案Landsat5 NDWI Image Restoration APP
- Vue - 修改富文本内元素样式,支持 scoped (自定义指令解析的富文本内图片、表格元素,即保留原有样式,又能加入额外自定义的样式详细教程)nuxt.js uni-app 微信小程序wechat
- 技术分享 | app自动化测试(Android)-- 属性获取与断言
- 移动App性能测评与优化1.4.4 多进程应用
- 移动App性能测评与优化2.2.3 优化方法三:传感器
- 移动App性能测评与优化2.2.4 优化方法四:云省电策略
- 漏洞情报 | VMware Carbon Black App Control 身份认证绕过漏洞
- 《为iPad而设计:打造畅销App》——为什么iPad不是放大版的iPhone
- SwiftUI机器学习基础之Create ML app 是什么
- 优化 App 的启动时间
- 检测iOS的APP性能的一些方法
- Xcode 7遇到 App Transport Security has blocked a cleartext HTTP 错误
- 让你更值钱的方法:培养稀缺(追逐新技术,淬炼已有技能、做到出类拔萃,寻找自己所在的行业痛点,App开发者是市场动态平衡的典型)
- uni-app 在父组件中调用子组件的方法
- 安卓APP应用在各大应用市场上架方法整理
- 小程序地图App.json