appium:FLAG_SECURE TakeScreenshotException: Failed to capture a screenshot. Does the current view

博客围绕Appium遇到FLAG_SECURE截图异常展开。介绍了Appium Desktop 1.13.0等环境,在自动登录京东时无法获取登录页面。分析问题与FLAG_SECURE有关,最新版本无法绕过限制。还提出直接通过程序获取被限制页面的app source的解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

appium:FLAG_SECURE TakeScreenshotException: Failed to capture a screenshot. Does the current view have ‘secure’ flag set?

1、环境

  • Appium Desktop 1.13.0
  • android 真实设备 oppo A7 sdk 8.1.0
  • android 模拟器 逍遥安卓 sdk 5.1.1
  • 京东APP 8.0.2

2、问题由来

通过Appium自动登录京东。

desired_caps_xiaoyao = {
        "platformName": "Android",
        "deviceName": "vivo_X9Plus",
        "appPackage": "com.jingdong.app.mall",
        "appActivity": "com.jd.lib.login.LoginActivity",
        "automationName": "uiautomator2"
}

发现无法获取登录页面(输入账户密码页面)。实际上模拟器已经加载该页面
图一:Appium一直处于加载
在这里插入图片描述
图二:逍遥模拟器已经加载完毕
在这里插入图片描述
图三:appium server 日志
在这里插入图片描述

3、Failed to capture a screenshot. Does the current view have ‘secure’ flag set?

Google了下 ,发现这个问题应该跟FLAG_SECURE 有关 。FLAG_SECURE是啥,大概跟安全有关,防止被截屏。
无意中看到类似问题详见-请点击。看起来从技术角度出发Appium开发者是有办法绕过FLAG_SECURE限制的(提问者appium server 1.12.1是可以的) , 但不知道最新版本1.13.0为什么无法绕过FLAG_SECURE(盗亦有道???)

4、怎么办

  • 使用Appium desktop 的目的往往是录制脚本、获取 resource-id 的信息。这只是过程不是目的
  • 直接通过程序获取被FLAG_SECURE限制页面的 app source 是否可行?
#Python api
driver=webdriver.Remote( server , desired_caps_xiaoyao )
source=driver.page_source

在这里插入图片描述
直接获取app source 是可以的 ,有可能看APP上有text而实际获取的app source中texe=’ '(比如京东登录页面有“用户名/邮箱/手机号” , 没有“请输入密码”),这个时候搜索"class=“android.widget.EditText”"(字面看就是可编辑) 。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值