自动化本地化截图

问题描述 投票:-1回答:1

有没有办法自动从Windows上获取Android上的本地化截图?

我找到了适用于Mac的工具

https://docs.fastlane.tools/getting-started/android/screenshots/

但有没有办法在Windows上做到这一点?我需要为11种不同的语言拍摄5个截图,以某种方式自动化它会很不错。

编辑

关于来自@grrrrrr答案的this post,我已经实现了自动化以捕获所有本地化的FirstActivity。但是,我无法找到如何浏览我的应用程序并从多个活动中获取屏幕截图,更改本地化并再次浏览它们。流程应该是这样的:

“恩” FirstActivity(scr)> MainActivity(scr)> SettingsActivity(scr)...

“德” FirstActivity(scr)> MainActivity(scr)> SettingsActivity(scr)...

等等。

编辑2

Atm我通过手动更改活动来完成此操作

private final CustomActivityTestRule mActivityTestRule = new CustomActivityTestRule<>(StartActivity.class);

并逐个做截图。

android windows automation localization screenshot
1个回答
0
投票

Here是如何在失败或成功时截取自动化测试截图的一个很好的指南(几乎是您本地化的确切用例!)。您可以按照指南创建ScreenshotWatcher,或者根据需要调用captureScreenshot方法以获取所需的屏幕截图。我复制了以下相关课程:

public class ScreenshotWatcher extends TestWatcher {

    @Override
    protected void succeeded(Description description) {
        Locale locale = InstrumentationRegistry.getTargetContext()
                .getResources()
                .getConfiguration()
                .getLocales()
                .get(0);
        captureScreenshot(description.getMethodName() + "_" + locale.toLanguageTag());
    }


    private void captureScreenshot(String name) {
        ScreenCapture capture = Screenshot.capture();
        capture.setFormat(Bitmap.CompressFormat.PNG);
        capture.setName(name);
        try {
            capture.process();
        } catch (IOException ex) {
            throw new IllegalStateException(ex);
        }
    }


    @Override
    protected void failed(Throwable e, Description description) {
        captureScreenshot(description.getMethodName() + "_fail");
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.