【问题标题】:How to change save location of screenshot using com.google.android.libraries.cloudtesting.screenshots.ScreenShotter如何使用 com.google.android.libraries.cloudtesting.screenshots.ScreenShotter 更改屏幕截图的保存位置
【发布时间】:2020-03-27 16:42:14
【问题描述】:

我遵循了这个指南:https://firebase.google.com/docs/test-lab/android/test-screenshots

但是,查看 ScreenShoter 的源代码:

private static final String SCREENSHOT_PATH = "/sdcard/screenshots/";
....
File imageFolder = new File("/sdcard/screenshots/");

/sdcard/screenshots/ 是默认位置,无法更改。

目前我收到此日志错误:

E/cloud_screenshotter: Exception taking screenshot: java.io.FileNotFoundException: /sdcard/screenshots/<package>.MockTest-testFilterButton-isPageShown-1.jpg: open failed: ENOENT (No such file or directory)

我正在尝试在没有 sdcard 插槽的真实设备上进行测试,因此我想将其保存到内部存储中。

如何更改位置?还是只能将 cloudtestingscreenshotter_lib.aar 库与 firebase 测试实验室一起使用?

【问题讨论】:

  • /sdcard (应该)在每台设备上都可用,即使没有明确的 sdcard 插槽。每个 Android 设备都有一个映射到/sdcard 的存储区域。我没有遇到没有它的设备。您可以检查以下内容:a)您的测试包具有WRITE_EXTERNAL_STORAGE权限,b)创建文件夹adb shell ls /sdcard,您应该看到一个名为screenshots的文件夹。
  • 我也遇到了同样的问题,@nommer 你解决了吗?我有写/读存储权限,但它仍然没有帮助。
  • 抱歉,我还没有机会尝试解决方案

标签: android screenshot android-espresso firebase-test-lab


【解决方案1】:

另请注意,写入外部存储的规则在 Android 10 (API 29) 中发生了变化。 https://developer.android.com/training/data-storage 但正如 Maik 所说,如果您的应用具有 WRITE_EXTERNAL_STORAGE 权限,您应该没问题。

【讨论】:

    猜你喜欢
    • 2014-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多