Студенты, которые использовали Webdriver, знают, что Webdriver может сделать скриншот страницы в браузере. Например:
Public Byte [] TakesCreenshot () бросает ioException {TakessScreenshot TakessScreenshot = (TakessScreenshot) Driver;
Изображение, созданная таким образом, представляет собой всю веб -страницу. Но иногда нам не нужна вся веб -страница, нам нужно только какой -то конкретный WebElement, чтобы избежать некоторых помех.
Хотя сам Webdriver не предоставляет такие API, мы можем прийти сами, просто вырезать на снимке экрана полноэкля, следующим образом:
Public BufferedImage CreateElementImage (WebElement WebElement) бросает ioException {// Получить позицию и размер WebElement. Point Location = webElement.getLocation (); BufferedImage OriginalImage = ImageIo.Ream Buffredimage CrospedImage = OriginalImage.getSubimage (locality.getx (), localtion.get (), size.getWidth (), size.getheight ());
Imageio и BufferedImage взяты от javax.imageio и java.awt.image соответственно.
Этот метод вполне может уменьшить размер скриншота, а также избежать некоторых неопределенных факторов (таких как даты и т. Д.), Что является хорошим способом сохранить скриншоты в тесте.
Примечание. Если тестовая веб -страница содержит IFRAME, вам необходимо рассчитать положение WebElement более сложным.