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
 
