2016-04-06 17 views
1

Appium + selenium cihazının yerel depolama birimine gerçek bir android cihazdan alınan ekran görüntüsünün nasıl kaydedileceğini bilen var mı? Burada cihazdan ekran görüntüsü alıp PC depolama alanına kaydedebilen bir yöntem var. Ancak, kodun gerçek aygıt klasöründe (ör. DeviceName \ tablet \ GUI \ screenshots \ screenshot.jpg ... veya başka bir yolla) kaydedilmesi için yolun nasıl ayarlanacağı, kodunun PC'de çalışması gerektiğini dikkate alarak.Appium + selenium tarafından android cihaz görüntüsünü nasıl kaydederim?

p.s. Uygulamam hibrid oldu, bu yüzden "NATIVE_APP" öğesine geçiş yapıp WEBVIEW uygulamasına geri dönüyorum.

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


} 

cevap

1

Bu size yardımcı olacaktır, bu durumda, kodunuzdan adb komutunu çalıştırabilirsiniz:

adb shell screencap -p /sdcard/screen.png 

Not: Farklı adlandırılmış testler/yapı ile dizüstü ekran görüntüleri kaydetme tasarrufu daha iyidir Onları cihazlarda.

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

Lütfen cevaba bir açıklama eklemeyi düşünün. Http://stackoverflow.com/help/how-to-answer –

+0

ImageIO.write, görüntünün yola kaydedilmesini sağlar. –

İlgili konular