En aquest tema, aprendrem com capturar captures de pantalla durant l'execució de proves amb Selenium. Aquesta funcionalitat és molt útil per documentar errors, verificar l'estat de l'aplicació en un moment determinat o simplement per a la revisió visual dels resultats de les proves.
Per què Capturar Captures de Pantalla?
- Documentació d'Errors: Quan una prova falla, una captura de pantalla pot proporcionar informació visual sobre l'estat de l'aplicació en el moment de l'error.
- Verificació Visual: Assegura't que la interfície d'usuari es mostra correctament en diferents navegadors i resolucions.
- Revisió de Resultats: Facilita la revisió dels resultats de les proves per part de l'equip de desenvolupament o de qualitat.
Com Capturar una Captura de Pantalla amb Selenium
Selenium proporciona una interfície anomenada TakesScreenshot
que permet capturar captures de pantalla. A continuació, es mostra com utilitzar aquesta interfície en un script de Selenium.
Exemple de Codi
import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.OutputType; import org.openqa.selenium.TakesScreenshot; import java.io.File; import org.apache.commons.io.FileUtils; public class ScreenshotExample { public static void main(String[] args) { // Configura el WebDriver System.setProperty("webdriver.chrome.driver", "path/to/chromedriver"); WebDriver driver = new ChromeDriver(); try { // Navega a una pàgina web driver.get("https://www.example.com"); // Captura la captura de pantalla File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); // Desa la captura de pantalla en un fitxer FileUtils.copyFile(screenshot, new File("screenshot.png")); System.out.println("Captura de pantalla desada amb èxit."); } catch (Exception e) { e.printStackTrace(); } finally { // Tanca el navegador driver.quit(); } } }
Explicació del Codi
- Configuració del WebDriver: Es configura el WebDriver per utilitzar el navegador Chrome.
- Navegació a la Pàgina Web: El navegador es dirigeix a "https://www.example.com".
- Captura de la Captura de Pantalla:
- Es fa un "cast" del
driver
aTakesScreenshot
. - Es captura la pantalla utilitzant
getScreenshotAs(OutputType.FILE)
.
- Es fa un "cast" del
- Desament de la Captura de Pantalla:
- La captura de pantalla es desa en un fitxer utilitzant
FileUtils.copyFile
.
- La captura de pantalla es desa en un fitxer utilitzant
- Gestió d'Excepcions: Es captura qualsevol excepció que pugui ocórrer durant el procés.
- Tancament del Navegador: Finalment, es tanca el navegador per alliberar els recursos.
Exercici Pràctic
Objectiu: Captura una captura de pantalla d'una pàgina web de la teva elecció i desa-la en un directori específic.
Passos:
- Configura el teu entorn de desenvolupament amb Selenium i el WebDriver adequat.
- Escriu un script que:
- Navegui a una pàgina web de la teva elecció.
- Capturi una captura de pantalla.
- Desa la captura de pantalla en un directori específic amb un nom de fitxer únic.
- Executa l'script i verifica que la captura de pantalla s'ha desat correctament.
Solució
// Similar al codi anterior, però assegura't de canviar el camí del fitxer i el nom de la pàgina web.
Errors Comuns i Consells
- Error de Camí Incorrecte: Assegura't que el camí on deses la captura de pantalla existeix i és accessible.
- Problemes de Permisos: Verifica que tens els permisos necessaris per escriure al directori especificat.
- Gestió d'Excepcions: Sempre gestiona les excepcions per evitar que l'script falli sense avisar.
Conclusió
Capturar captures de pantalla és una tècnica essencial en l'automatització de proves amb Selenium. Proporciona una manera visual de verificar i documentar l'estat de l'aplicació durant l'execució de les proves. Practica aquesta tècnica per millorar la qualitat i la fiabilitat de les teves proves automatitzades.
Automatització de Proves amb Selenium
Mòdul 1: Introducció a l'Automatització de Proves
- Què és l'Automatització de Proves?
- Beneficis de l'Automatització de Proves
- Visió General de Selenium
- Configuració del Teu Entorn
Mòdul 2: Començant amb Selenium
- Introducció a Selenium WebDriver
- Instal·lació de Selenium WebDriver
- Primer Script de Selenium
- Comprensió de la Interfície WebDriver
Mòdul 3: Localització d'Elements Web
- Introducció als Localitzadors
- Ús de Localitzadors ID i Nom
- XPath i Selectors CSS
- Estratègies Avançades de Localització
Mòdul 4: Interacció amb Elements Web
- Realització d'Accions sobre Elements Web
- Gestió de Desplegables i Caixes de Selecció
- Treballant amb Alertes i Pop-ups
- Gestió de Finestres del Navegador i Frames
Mòdul 5: Sincronització en Selenium
Mòdul 6: Marc de Proves i Selenium
- Introducció a TestNG
- Configuració de TestNG amb Selenium
- Creació de Casos de Prova TestNG
- Proves Basades en Dades amb TestNG
Mòdul 7: Conceptes Avançats de Selenium
- Gestió de Trucades AJAX
- Treballant amb Cookies
- Captura de Captures de Pantalla
- Execució de JavaScript amb Selenium
Mòdul 8: Selenium Grid i Proves en Paral·lel
- Introducció a Selenium Grid
- Configuració de Selenium Grid
- Execució de Proves en Paral·lel
- Proves Multinavegador
Mòdul 9: Integració Contínua i Selenium
- Introducció a la Integració Contínua
- Integració de Selenium amb Jenkins
- Automatització de l'Execució de Proves
- Informes i Registre