背景

在做 App 自动化测试时,有些 App 的页面无法通过 UIAutomatorViewer 或者 Appium 检查器识别元素,比如银行金融类 App 页面、密码输入页面,这里以 B 站(哔哩哔哩)App 的登录页面为例:

此时工具会提示 Error taking device screenshot:EOF(截图失败)这样的错误信息。

问题发生原因

有些 App 为了安全方面的考量,禁止用户在敏感页面(比如输入密码页面、用户隐私数据页面)进行截图,此时通过手动截图(一般是通过手机上的组合按键【音量-】+【电源键】)是无法截图的。

我们还可以通过另外的方法来进行验证:

  1. 打开电脑端命令行窗口

  2. 输入如下 adb 命令



adb shell screencap -p /sdcard/test.png

  1. 通过 adb shell 进入到手机内部文件系统中,查看 sdcard 目录下是否有 test.png 图片

此时也会发现图片是没有生成的,其他 App 的普通页面是可以生成截图的。

导致这类问题的根本原因是:

开发在 App 的源代码中加入了禁止截图限制: getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);

而元素识别工具 UIAutomatorViewer 或者 Appium 检查器都需要截图的权限,否则识别不到元素。

解决方案

在自动化脚本中使用 getPageSource()这个方法获取页面的 dom 结构信息:

关注我,学习更多软件测试知识

软件测试,最全资料包,免费大放送!!

外包干了三年,废了!

APP测试:禁止APP登录页面截图解决方法相关推荐

  1. 整理Flutter App开发过程中遇到的问题及解决方法

    整理Flutter App开发过程中遇到的问题及解决方法 最近使用flutter开发一款app,因为是第一次接触flutter,在开发过程中遇到一些问题或常用的功能点,在此记录一下(持续更新-) (1 ...

  2. mac在App Store下载更新软件失败的解决方法

    mac在App Store下载更新软件失败的解决方法 | 浏览:1435 | 更新: 2014-04-04 12:51 mac电脑无论是macbook还是imac在正规的软件下载地方就是 App St ...

  3. centos在yum install报错:Another app is currently holding the yum lock解决方法

    centos在yum install报错:Another app is currently holding the yum lock解决方法 参考文章: (1)centos在yum install报错 ...

  4. iphone6s计算机驱动,教你iphone6s连接电脑出现驱动问题怎么办及iOS9.0.2 App Store打不开问题的解决方法...

    有的用户的iphone6s连接电脑时,提示驱动安装失败或需要安装手机驱动,下面就教大家用驱动人生解决iphone6s驱动问题,一起来看看吧! 首先,下载安装一个专业的驱动软件,比如驱动人生6,安装好软 ...

  5. 重装系统lol登录服务器,LOL无法登录的彻底解决方法

    近日来很多LOL玩家在打开LOL客户端登录LOL显示whoops,something.brokewhoops!而无法登入的情况.whoops!something broke哎呦!有什么东西打破了,这问 ...

  6. 计算机win10无法正常登录系统,win10系统无法使用微软账户登录系统的解决方法...

    很多小伙伴都遇到过win10系统无法使用微软账户登录系统的困惑吧,一些朋友看过网上零散的win10系统无法使用微软账户登录系统的处理方法,并没有完完全全明白win10系统无法使用微软账户登录系统是如何 ...

  7. win10进不了微软服务器,Microsoft帐户无法登录怎么办 Win10微软账户登录不上解决方法...

    今天想要改用Microsoft账户登录,但是无法登录上去,一直转圈并提示请稍等...,最后还提示发生了错误,"请重试,或选择"取消"以后再设置设备",反复测试了 ...

  8. php搭建的网站空白,使用phpstudy搭建dedecms网站后台页面空白解决方法

    这篇文章主要为大家详细介绍了使用phpstudy搭建dedecms网站后台页面空白解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴. 在把 phpStudy ...

  9. 梦想世界3手游服务器维护,梦想世界手游进不去 闪退及登录不上解决方法

    梦想世界手游进不去,梦想世界手游无法连接服务器,梦想世界手游登陆失败,梦想世界手游进去就死机,更新失败,或更新之后进不去了,梦想世界手游闪退是怎么回事,黑屏怎么回事,闪退怎么办,连接不上,梦想世界手游 ...

  10. 和平精英怎么在服务器维护中登录,和平精英登录过于频繁怎么办 和平精英登录过于频繁解决方法...

    和平精英于今日下午3点开服后,很多玩家都出现了无法登陆的问题.有些小伙伴表示,在登录过程中游戏出现了"登录过于频繁,请X分钟后再尝试!"的提醒.那么,和平精英登录过于频繁怎么办呢? ...

最新文章

  1. qa session of management of technology
  2. c语言 amp amp 逻辑运算符,C++编程中的或||、与amp;amp;、非!逻辑运算符基本用法整理...
  3. Linux命令gitview,使用linux的gitview命令查看文件内容
  4. 父进程给子进程传参数
  5. C++---之动态内存申请new
  6. Android Screen Orientation
  7. Java 游戏手柄 编程
  8. 无法格式化sd卡怎么办 sd卡无法格式化怎么弄
  9. 联通光猫IPV6配置
  10. Qt编写的知名的开源软件汇总
  11. tp-link与台式计算机连接教程,【详细图解】TP-Link TL-WDR6510路由器电脑设置教程...
  12. HTTP - 长连接/短连接 - 学习/实践
  13. 不买服务器,使用网络通免费发布网站到外网
  14. 下厨房内部孵化项目——懒饭产品体验分析报告
  15. 【web前端初级课程】第二章 CSS层叠样式表
  16. 由《樱桃小丸子》想到的……(未完成)
  17. [1.2.0新功能系列:二] Apache Doris 1.2.0 JDBC外表 及 Mutil Catalog
  18. php网站页面显示源码,用PHP显示网站的源代码
  19. Tinyxml一一利用tinyxml读取节点元素属性值
  20. 【新技术】:移动支付过程中的NFC技术

热门文章

  1. luogu3191 [HNOI2007]紧急疏散EVACUATE
  2. 后台登录管理员数据表创建
  3. Socket+华为云 实现广域网五子棋在线对战
  4. jinjia2 本地渲染文本文件核心代码(可以渲染html,xml,txt等等)
  5. python 实现抖音视频无水印解析
  6. Halcon threshold详解
  7. 前端基础入门之css动画与变形
  8. 微信公众号裂变推广有哪些方法?做一次公众号裂变活动有哪些推广渠道?
  9. 分子动力学模拟计算新冠病毒S蛋白和抗体结合自由能
  10. 国际冠码与国际电话区号