2016-04-06 5 views
1

Kann jemand Screenshot aus realen Android-Gerät von Appium + Selen zu Gerät lokalen Speicher gespeichert speichern? Hier habe ich Methode, die Screenshot vom Gerät nehmen und auf dem PC speichern kann. Aber wie man Pfad setzt, um sie auf realen Geräteordner zu speichern (z. B. Gerätename \ tablet \ GUI \ screenshots \ screenshot.jpg ... oder andere Weise), unter Berücksichtigung, dass Code auf dem PC laufen sollte.Wie screenshot zu Android-Gerät von Appium + Selenium speichern

p.s. Meine App ist hybrid, daher mache ich den Kontext zu "NATIVE_APP" und dann zurück zu 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); 


} 

Antwort

1

können Sie adb Befehl aus dem Code auszuführen, wobei in diesem Fall das soll Ihnen helfen:

adb shell screencap -p /sdcard/screen.png 

Hinweis: Speichern der Screenshots auf Laptop mit verschiedenen Namen Tests/Build ist besser als Spar sie auf Geräten.

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

Bitte erwägen Sie, die Antwort etwas zu erläutern. Siehe http://stackoverflow.com/help/how-to-answer –

+0

ImageIO.write speichert das Bild im Pfad –

Verwandte Themen