Sobes.tech
Junior

Quali sono i localizzatori in Selenium?

sobes.tech AI

Risposta dell'AI

I localizzatori in Selenium sono meccanismi per trovare gli elementi web sulla pagina. I principali tipi di localizzatori:

  • ID: Permette di trovare un elemento tramite il suo attributo id. Il metodo più rapido e affidabile, se l'ID è unico e stabile.
  • Name: Permette di trovare un elemento tramite il suo attributo name. Meno affidabile dell'ID, poiché name non è sempre univoco.
  • Class Name: Permette di trovare elementi tramite il loro attributo class. Restituisce una lista di elementi, poiché più elementi possono condividere la stessa classe.
  • Tag Name: Permette di trovare elementi tramite il nome del tag HTML (ad esempio, div, a, input). Restituisce una lista di elementi.
  • Link Text: Permette di trovare un elemento <a> (link) tramite il testo esatto del link.
  • Partial Link Text: Permette di trovare un elemento <a> (link) tramite una corrispondenza parziale del testo del link.
  • CSS Selector: Metodo potente e flessibile per cercare elementi usando la sintassi dei selettori CSS. Permette di cercare tramite combinazioni di attributi, tag, classi, gerarchie e stati.
  • XPath: Il metodo più potente e flessibile per cercare elementi, basato sulla navigazione nella struttura del documento XML/HTML. Permette di costruire percorsi complessi verso gli elementi, cercare tramite attributi, contenuto e posizione.

Esempi di utilizzo:

# Java
WebElement elementById = driver.findElement(By.id("myElementId"));
WebElement elementByName = driver.findElement(By.name("elementName"));
List<WebElement> elementsByClass = driver.findElements(By.className("myClass"));
WebElement elementByCss = driver.findElement(By.cssSelector("div.container > input[type='text']"));
WebElement elementByXpath = driver.findElement(By.xpath("//div[@id='parent']/button[text()='Submit']"));
# Python
element_by_id = driver.find_element(By.ID, "myElementId")
element_by_name = driver.find_element(By.NAME, "elementName")
elements_by_class = driver.find_elements(By.CLASS_NAME, "myClass")
element_by_css = driver.find_element(By.CSS_SELECTOR, "div.container > input[type='text']")
element_by_xpath = driver.find_element(By.XPATH, "//div[@id='parent']/button[text()='Submit']")

La scelta del localizzatore dipende dalla stabilità dell'elemento web e dalla struttura della pagina. Si consiglia di usare ID, CSS Selector o XPath quando sono correttamente costruiti.