【问题标题】:TakeScreenshot with AWS Device Farm and UIAutomator 2使用 AWS Device Farm 和 UIAutomator 2 截屏
【发布时间】:2017-10-19 20:54:19
【问题描述】:

我在使用 AWS 设备场进行自动化 UI 测试时遇到问题。我试图创建一个新的 UIAutomator 2 测试。这在我的设备和我的开发机器上运行良好。

不,我在 AWS 设备场中创建了一个新的测试运行,以便在创建屏幕截图输出的所有其他设备上运行此测试。这里的问题似乎在于截屏。

在 Automator 2 中,我使用 automator 框架 UIDevie.takeScreenshot 方法截取屏幕截图。此方法采用File 作为参数。

AWS documentation 中所述,我尝试使用/sdcard/ 文件夹以及Environment.getExternalStorageDirectory() 来存储文件。这些目录似乎都不起作用。

使用Environment.getExternalStorageDirectory() 我得到以下日志:

Error UiAutomatorBridge java.io.FileNotFoundException: /storage/emulated/0/test-screenshots/coupondetail-screen-2.png: open failed: EACCES (Permission denied)

使用/sdcard/ 我得到以下日志:

Error UiAutomatorBridge java.io.FileNotFoundException: /sdcard/test-screenshots/coupondetail-screen-2.png: open failed: EACCES (Permission denied)

我还使用了以下参考实现: https://github.com/awslabs/aws-device-farm-sample-app-for-android/blob/master/app/src/androidTest/java/com/amazonaws/devicefarm/android/referenceapp/Util/ScreenShot.java

【问题讨论】:

    标签: android android-uiautomator aws-device-farm


    【解决方案1】:

    从 Android 6.x 开始,用户需要直接接受关键权限的新权限系统似乎确实存在问题。对于测试,有一种解决方法,您可以使用 adb shell 命令接受权限(例如 WRITE_EXTERNAL_STORAGE):

    How to manage Runtime permissions android marshmallow espresso tests

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-02
      • 2017-06-26
      • 2016-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多