Как вы упоминали, что вы используете Selenium, вот как сохранить изображение с помощью Selenium:
Вам необходимо получить URL-адрес изображения, загрузить его (используя ImageIO
в этом примере) и сохранить его.Например, в Java вы должны сделать что-то вроде этого:
try {
driver = new ChromeDriver();
driver.get("http://...");
WebElement img = driver.findElement(By.cssSelector("#selector"));
BufferedImage buffer = ImageIO.read(new URL(img.getAttribute("src")));
ImageIO.write(buffer, "png", new File("image.png"));
} catch (Exception e) {
e.printStackTrace();
} finally {
driver.close();
}
Если вы хотите скопировать это напрямую, ваш класс должен реализовать java.awt.datatransfer.ClipboardOwner
, а затем вы сделаете что-то вроде этого:
try {
driver = new ChromeDriver();
driver.get("http://...");
WebElement img = driver.findElement(By.cssSelector("#selector"));
TransferableImage transferable = new TransferableImage(ImageIO.read(new URL(img.getAttribute("src"))));
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(transferable, this );
} catch (Exception e) {
e.printStackTrace();
} finally {
driver.close();
}
Что касается ваших других вопросов, вот как сделать снимок экрана с помощью Chrome DevTools:
В Chrome DevTools есть 3 Capture ... команды.Чтобы получить к ним доступ, выполните следующие действия:
Откройте DevTools.
Перейдите на вкладку Элементы и нажмитеэлемент, из которого вы хотите сделать снимок экрана.
Нажмите Cmd + P на Mac или Ctrl + P в Windows.
Тип > screen
.Вы получите 3 соответствующих предложения:
Mobile
Снимок экрана в полном размере : Захватывает всю страницу, включая невидимую (вне области просмотра) область.
Mobile
Снимок экрана узла захвата : захватывает один узел, в данном случае элемент, который вы щелкнули на втором шаге.
Mobile
Снимок экрана : захват видимой области страницы (область просмотра).
Нажмите на любой изих и снимок экрана будет загружен автоматически.
Однако имейте в виду, что эта функция не всегда работает нормально, особенно скриншот Capture узла , поэтому он можетлучше захватить видимую область страницы и обрезать потом.