2016-04-06 2 views
1

Кто-нибудь знает, как сохранить снимок экрана с реального устройства Android от appium + selenium до локального хранилища устройства? Здесь у меня есть метод, который может снимать снимок с устройства и сохранять его на ПК. Но как установить путь для сохранения их в реальной папке устройства (например, deviceName \ tablet \ GUI \ screenshots \ screenshot.jpg ... или другим способом), с учетом того, что код должен запускаться на ПК.Как сохранить снимок экрана в Android-устройстве appium + selenium

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); 


} 

ответ

1

Вы можете выполнить ADB команды из вашего кода, в этом случае это должно помочь вам:

adb shell screencap -p /sdcard/screen.png 

Примечания: Сохранение скриншотов на ноутбуке с различными названными тестами/сборками лучше, чем экономия их на устройствах.

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")); 
+0

Примите во внимание добавление некоторых объяснений в ответ. См. Http://stackoverflow.com/help/how-to-answer –

+0

ImageIO.write сохранит изображение на пути –

Смежные вопросы