全面解决uiautomatorviewer /Appium元素检查出错 Error taking device screenshot: EOF

问题描述:Android APP自动化 测试启用 uiautomatorviewer 工具,点击左上角手机图标后报错:Error taking device screenshot: EOF

现象如下:

 

 出现的原因很多种,常见的有以下两类

问题原因分析:

一、应用中的部分页面截图不了

1、uiautomatorviewer(Appium) 检测器识别不了元素,比如:银行金融类 App 页面、登录页面、输入密码页面等

这些情况通常是App 为了安全方面的考量,禁止用户在敏感页面(比如输入密码页面、用户隐私数据页面)进行截图,此时可通过(以下两种方法之一)

  1)手动截图(一般是通过手机上的截图组合键,此时是无法截图成功的

       2)电脑端命令 adb shell screencap -p /sdcard/test.png 查看 sdcard 目录下是否有正常截取图片 test.png 

如果是的话,那你出现的就是这种情况,

     开发在 App 的源代码中加入了禁止截图限制: getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);而检测器确需要截图的权限

2、页面存在动态元素,如倒计时,这时候也有可能出现这类的错误

解决方案一:

直接用page_source()这个方法获取页面的元素信息:然后找到自己对应的元素

 

解决方案二:可以直接用一些其他的工具,如airtestIDE

 

二、同一应用所有的页面都截图不了,这个问题比较好解决

解决方法:(如果一步能解决的就不需要后面的步骤了)

1、重启uiautomatorviewer 

2、手机重新连接

3、device 端口冲突

  查看占用5037端口的进程:netstat -ano | findstr 5037

  杀掉启用的进程:taskkill /pid  进程号  /f

  再次重新启动uiautomatorviewer 

 

posted on 2023-02-14 15:26  batteys  阅读(689)  评论(0编辑  收藏  举报