En aquest tema, explorarem dos dels localitzadors més potents i flexibles que ofereix Selenium: XPath i Selectors CSS. Aquests localitzadors són essencials per identificar elements web de manera precisa, especialment quan altres localitzadors com ID o Nom no són suficients.
Què és XPath?
XPath (XML Path Language) és un llenguatge que permet navegar per l'estructura d'un document XML o HTML. És molt útil per localitzar elements en una pàgina web quan els atributs com ID o Nom no estan disponibles o no són únics.
Característiques de XPath:
- Flexibilitat: Pot navegar per l'arbre DOM i seleccionar elements basats en una varietat de criteris.
- Suport per a expressions complexes: Permet utilitzar condicions i funcions per refinar la cerca.
- Compatibilitat: Funciona amb qualsevol element del DOM, independentment dels seus atributs.
Sintaxi bàsica de XPath:
//
: Selecciona nodes en el document des de l'actual node que coincideix amb la selecció.tagname
: El nom de l'etiqueta de l'element.@attribute
: L'atribut de l'element.value
: El valor de l'atribut.
Exemple de XPath:
Aquest XPath selecciona tots els elements <input>
amb l'atribut type
igual a text
.
Què són els Selectors CSS?
Els Selectors CSS són una altra manera de localitzar elements en una pàgina web. Són similars als selectores utilitzats en CSS per aplicar estils als elements.
Característiques dels Selectors CSS:
- Simplicitat: Sovint són més curts i llegibles que els XPath.
- Velocitat: En general, són més ràpids que XPath en la majoria dels navegadors.
- Versatilitat: Permeten seleccionar elements basats en classes, ID, atributs, i més.
Sintaxi bàsica dels Selectors CSS:
tagname
: El nom de l'etiqueta de l'element.[attribute='value']
: Selecciona elements amb un atribut específic i el seu valor.
Exemple de Selector CSS:
Aquest selector CSS selecciona tots els elements <input>
amb l'atribut type
igual a text
.
Comparació entre XPath i Selectors CSS
Característica | XPath | Selectors CSS |
---|---|---|
Flexibilitat | Molt flexible, suporta expressions complexes | Menys flexible, però suficient per a la majoria de casos |
Velocitat | Pot ser més lent en alguns navegadors | Generalment més ràpid |
Compatibilitat | Funciona amb qualsevol element del DOM | Funciona amb elements que tenen estils CSS |
Simplicitat | Pot ser complex i llarg | Sovint més curt i llegible |
Exercici Pràctic
Objectiu: Escriu un script de Selenium que utilitzi tant XPath com Selectors CSS per localitzar un element en una pàgina web.
Pas 1: Configura el teu entorn
Assegura't que tens Selenium WebDriver instal·lat i configurat.
Pas 2: Escriu el codi
from selenium import webdriver # Inicialitza el WebDriver driver = webdriver.Chrome() # Obre una pàgina web driver.get('https://exemple.com') # Localitza un element utilitzant XPath element_xpath = driver.find_element_by_xpath("//input[@type='text']") # Localitza un element utilitzant un Selector CSS element_css = driver.find_element_by_css_selector("input[type='text']") # Tanca el navegador driver.quit()
Solució de l'Exercici
- XPath:
//input[@type='text']
- Selector CSS:
input[type='text']
Conclusió
En aquesta secció, hem après a utilitzar XPath i Selectors CSS per localitzar elements web de manera eficient. Aquests localitzadors són fonamentals per escriure scripts de Selenium robustos i flexibles. Practicar amb diferents expressions i selectors t'ajudarà a millorar les teves habilitats en l'automatització de proves. En el següent tema, explorarem estratègies avançades de localització per abordar situacions més complexes.
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