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:

//tagname[@attribute='value']
  • //: 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:

//input[@type='text']

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[attribute='value']
  • 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:

input[type='text']

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

Mòdul 2: Començant amb Selenium

Mòdul 3: Localització d'Elements Web

Mòdul 4: Interacció amb Elements Web

Mòdul 5: Sincronització en Selenium

Mòdul 6: Marc de Proves i Selenium

Mòdul 7: Conceptes Avançats de Selenium

Mòdul 8: Selenium Grid i Proves en Paral·lel

Mòdul 9: Integració Contínua i Selenium

Mòdul 10: Millors Pràctiques i Resolució de Problemes

© Copyright 2024. Tots els drets reservats