有没有办法自动从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);
并逐个做截图。
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");
}
}