有人知道如何通过appium + selenium将实际Android设备截取的截图保存到设备本地存储? 在这里,我有一个方法,可以从设备截取屏幕并将其保存到PC存储。 但是如何设置路径将它们保存在真实设备文件夹中(例如deviceName \ tablet \ GUI \ screenshots \ screenshot.jpg ...或其他方式), 考虑到代码应该在PC上运行。
P.S。我的应用程序是混合的,所以我将切换上下文设置为" NATIVE_APP"然后回到WEBVIEW。
public static void getScreenshot(String screenName) throws IOException {
String contextName = AppiumConfigurationTest.driver.getContext();
AppiumConfigurationTest.driver.context("NATIVE_APP");
String Screenshotpath = "C:\\!automation\\build\\reports\\gui_screen_capture\\";
File screenShot = AppiumConfigurationTest.driver.getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(screenShot, new File(Screenshotpath + screenName+"_ " + "." + "jpg"));
AppiumConfigurationTest.driver.context(contextName);
}
答案 0 :(得分:1)
您可以从代码中执行adb命令,在这种情况下,这将对您有所帮助:
adb shell screencap -p /sdcard/screen.png
注意:将屏幕截图保存在具有不同命名测试/版本的笔记本电脑上比将其保存在设备上要好。
答案 1 :(得分:1)
File scrFile = ((TakesScreenshot) appiumDriver).getScreenshotAs(OutputType.FILE);
BufferedImage originalImage=null;
try {
originalImage= ImageIO.read(((TakesScreenshot) appiumDriver).getScreenshotAs(OutputType.FILE));
}
catch(Exception e) {
System.out.println("\n\n\n\nbuffered image" + originalImage +"\n\n\n\n\n\n");
Thread.sleep(5000);
e.printStackTrace();
}
System.out.println("buffered image" + originalImage);
BufferedImage.TYPE_INT_ARGB : originalImage.getType();
BufferedImage resizedImage = CommonUtilities.resizeImage(originalImage, IMG_HEIGHT, IMG_WIDTH);
ImageIO.write(resizedImage, "jpg", new File(path + "/"+ testCaseId + "/img/" + index + ".jpg"));