En aquest tema, explorarem estratègies avançades per localitzar elements web utilitzant Selenium. A mesura que els llocs web es tornen més complexos, la localització precisa d'elements esdevé crucial per a l'èxit de l'automatització de proves. Aprendrem a utilitzar tècniques avançades per assegurar-nos que els nostres scripts siguin robustos i fiables.
Conceptes Clau
-
Localitzadors Dinàmics:
- Els llocs web moderns sovint utilitzen elements dinàmics amb atributs que canvien amb cada càrrega de pàgina. Aprendrem a manejar aquests elements.
-
XPath Avançat:
- Utilització de funcions XPath com
contains()
,starts-with()
, itext()
per localitzar elements amb atributs dinàmics o text parcial.
- Utilització de funcions XPath com
-
Selectors CSS Avançats:
- Com utilitzar selectors CSS avançats per localitzar elements basats en la seva posició, atributs parcials, o relacions amb altres elements.
-
Localització Basada en Relacions:
- Estratègies per localitzar elements basats en la seva relació amb altres elements, com ara elements germans, fills o pares.
Exemples Pràctics
- Localitzadors Dinàmics
Quan els identificadors d'elements canvien dinàmicament, podem utilitzar parts constants dels atributs per localitzar-los.
// Exemple d'ús de contains() en XPath per localitzar un botó amb un ID dinàmic WebElement button = driver.findElement(By.xpath("//button[contains(@id, 'submit')]"));
- XPath Avançat
Utilitzant funcions avançades d'XPath per localitzar elements amb text parcial.
// Localitzar un element amb text parcial WebElement link = driver.findElement(By.xpath("//a[contains(text(), 'Inicia')]"));
- Selectors CSS Avançats
Utilitzar selectors CSS per localitzar elements basats en atributs parcials.
// Localitzar un element amb un atribut que comença amb un valor específic WebElement input = driver.findElement(By.cssSelector("input[id^='user']"));
- Localització Basada en Relacions
Localitzar elements basats en la seva relació amb altres elements.
// Localitzar un element fill WebElement childElement = driver.findElement(By.xpath("//div[@class='parent']/child::div"));
Exercicis Pràctics
Exercici 1: Localització amb XPath Avançat
Objectiu: Escriu un script que localitzi un element de la pàgina utilitzant una funció avançada d'XPath.
Instruccions:
- Troba un element amb un text parcial utilitzant
contains()
. - Prova el teu script en una pàgina web de pràctica.
Solució:
Exercici 2: Utilització de Selectors CSS Avançats
Objectiu: Utilitza selectors CSS per localitzar un element amb un atribut que comença amb un valor específic.
Instruccions:
- Localitza un element d'entrada (input) amb un ID que comenci amb "search".
- Prova el teu script en una pàgina web de pràctica.
Solució:
Conclusió
Les estratègies avançades de localització són essencials per a l'automatització de proves en llocs web complexos. Utilitzant localitzadors dinàmics, XPath i selectors CSS avançats, podem crear scripts més robustos i flexibles. Aquestes tècniques ens permeten adaptar-nos a canvis en el disseny de la pàgina i assegurar-nos que els nostres scripts continuïn funcionant correctament. En el següent mòdul, explorarem com interactuar amb elements web utilitzant Selenium.
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