有没有一种方法可以自动从Windows在android上获取本地化的屏幕截图?
我找到了适用于Mac的工具
https://docs.fastlane.tools/getting-started/android/screenshots/
但是在Windows上有办法吗?我需要为11种不同的语言拍摄5张屏幕截图,以某种方式实现自动化非常好。
编辑
在来自{gr3rr}的this post之后,我实现了自动捕获所有本地化的 FirstActivity 。但是,我无法确定如何浏览我的应用程序以及从多个活动中获取屏幕截图,更改本地化并再次进行浏览。流应该是这样的:
'en'
FirstActivity(scr)> MainActivity(scr)> SettingsActivity(scr)...
'de'
FirstActivity(scr)> MainActivity(scr)> SettingsActivity(scr)...
以此类推。
编辑2
自动取款机是通过手动更改
中的活动来实现的private final CustomActivityTestRule mActivityTestRule = new CustomActivityTestRule<>(StartActivity.class);
并一张一张地截图。
答案 0 :(得分: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");
}
}