Сделайте несколько скриншотов (не переопределяя предыдущий), используя класс aShot в Selen Webdriver
Как сделать несколько скриншотов (не переопределяя предыдущий) через селеновый веб-драйвер с помощью класса aShot. Я в состоянии выполнить 2 контрольных примера и вижу, что снимок экрана снимается для обоих контрольных примеров, однако снимок экрана копируется только в папку для текущего случая. Ниже приведен код, который я использую для создания полного снимка экрана с помощью класса aShot.
public static void captureFullPage() throws IOException
{
screenshotName = d.toString().replace(":", "_").replace(" ", "_")+ "PNG";
Screenshot screenshot = new AShot().shootingStrategy(ShootingStrategies.viewportPasting(1000)).takeScreenshot(driver);
String dest = System.getProperty("user.dir") + "\\TestOutput\\" + screenshotName;
ImageIO.write(screenshot.getImage(), "PNG", new File(dest));
//return dest;
}
2 ответа
Я думаю, что вы переопределяете свой первый снятый скриншот вторым, поэтому вам нужно определить другой путь / папку, в которую вы хотите сохранить ваш второй скриншот, чтобы сохранить оба скриншота под разными именами
Пишите код как
public void screenshotByAshot() throws IOException {
WebDriverManager.chromedriver().setup();
ChromeDriver driver = new ChromeDriver();
driver.get("URL");
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("ddMMyyyy_HHmmss");
LocalDateTime now = LocalDateTime.now();
String date = dtf.format(now);
AShot ashot = new AShot();
Screenshot ss = ashot.shootingStrategy(ShootingStrategies.viewportPasting(1000)).takeScreenshot(driver);
BufferedImage img = ss.getImage();
String dest = System.getProperty("user.dir");
File path = new File(dest + "//folder_name/file_name" + date + ".png");
ImageIO.write(img, "png", path);
}
Этот код поможет вам каждый раз делать снимок экрана с разными именами, поскольку он включает в себя отметку времени в своем имени, поэтому предыдущие снимки экрана не будут переопределены, и вы получите все свои снимки экрана. внесите изменения в этот код по своему вкусу.