Los estudiantes que han usado WebDriver saben que WebDriver puede tomar una captura de pantalla de la página en el navegador. Por ejemplo:
Public byte [] TakeCreensHot () lanza IOException {TakessScreensHot TakessScreensHot = (TakessScreensHot) controlador;
La imagen producida de esta manera es toda la página web. Pero a veces no necesitamos toda la página web, solo necesitamos algo de webelemento específico para evitar cierta interferencia.
Aunque Webdriver en sí no proporciona tales API, podemos venir por nosotros mismos, simplemente cortar la captura de pantalla de la pantalla completa, de la siguiente manera:
Public BufferedImage CreateElementImage (WebElement Webelement) lanza IoException {// Obtener la posición y el tamaño del webelemento. Point Ubication = WebElement.getLocation (); BufferedImage OriginalImage = Imageio.ream BufferDimage CroppedImage = OriginalImage.getSubImage (localidad.getx (), localtion.get (), size.getWidth (), size.getheight ());
El ImageIO y BufferedImage son de Javax.Imageio y Java.AWT.Image, respectivamente.
Este método puede reducir el tamaño de la captura de pantalla, y también evitar algunos factores inciertos (como fechas, etc.), lo cual es una buena manera de guardar capturas de pantalla en la prueba.
Nota: Si la página web de la prueba contiene iframe, debe calcular la posición del webelemento de una manera más complicada.