问题描述: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
标签:Appium,元素,EOF,uiautomatorviewer,截图,全面解决,device,页面 From: https://www.cnblogs.com/bao-yan/p/17119754.html