Детали среды
- Аппиум Версия 1.7
- Android-версия Нуга
И ниже мой код
public class CaptureScreenShot {
AppiumDriver<WebElement> driver;
Dimension size;
String destDir;
DateFormat dateFormat;
BufferedImage expectedImage;
BufferedImage actualImage;
@BeforeTest
public void setUp() throws Exception {
DesiredCapabilities dc = new DesiredCapabilities();
dc.setCapability(CapabilityType.BROWSER_NAME,"Android");
dc.setCapability(CapabilityType.VERSION,"7.0");
dc.setCapability("deviceName","ce041714c44ebd1802");
dc.setCapability("platformName", "Android");
dc.setCapability("appPackage", "io.ionic.starter");
dc.setCapability("appActivity", "io.ionic.starter.MainActivity");
try {
driver= new AppiumDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"), dc);
} catch (MalformedURLException e) {
e.printStackTrace();
}
driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
}
@Test
public void ScrollToTab() {
takeScreenShot();
}
public void takeScreenShot() {
destDir = "<<local path>>\";
File scrFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
dateFormat = new SimpleDateFormat("dd-MMM-yyyy__hh_mm_ssaa");
new File(destDir).mkdirs();
String destFile = dateFormat.format(new Date()) + ".png";
try {
FileUtils.copyFile(scrFile, new File(destDir + "/" + destFile));
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void verify(){
try {
expectedImage = ImageIO.read(new File("<local path>"));
} catch (IOException e) {
e.printStackTrace();
}
try {
actualImage = ImageIO.read(new File("<local path>"));
} catch (IOException e) {
e.printStackTrace();
}
ImageDiffer imgDiff = new ImageDiffer();
ImageDiff diff = imgDiff.makeDiff(expectedImage, actualImage);
Assert.assertFalse(diff.hasDiff(),"Images are Same");
}
@AfterTest
public void End() {
driver.quit();
}
}
Этот код работает нормально, но вместе со снимком экрана строка состояния Android также захватывается, и тесты не выполняются, поскольку элементы экрана состояния являются динамическими. может ли кто-нибудь помочь мне сделать снимок экрана, не включая строку состояния.