Sobes.tech
Junior

Quais são os localizadores existentes no Selenium?

sobes.tech IA

Resposta da IA

Os localizadores no Selenium são mecanismos para procurar elementos web na página. Os principais tipos de localizadores:

  • ID: Permite encontrar um elemento pelo seu atributo id. A forma mais rápida e confiável, se o ID for único e estável.
  • Name: Permite encontrar um elemento pelo seu atributo name. Menos confiável que o ID, pois name nem sempre é único.
  • Class Name: Permite encontrar elementos pelo seu atributo class. Retorna uma lista de elementos, pois vários elementos podem ter a mesma classe.
  • Tag Name: Permite encontrar elementos pelo nome da tag HTML (por exemplo, div, a, input). Retorna uma lista de elementos.
  • Link Text: Permite encontrar um elemento <a> (link) pelo texto exato do link.
  • Partial Link Text: Permite encontrar um elemento <a> (link) por correspondência parcial do texto do link.
  • CSS Selector: Forma poderosa e flexível de procurar elementos usando a sintaxe de seletores CSS. Permite procurar por combinação de atributos, tags, classes, hierarquia e estados.
  • XPath: A forma mais poderosa e flexível de procurar elementos, baseada na navegação pela estrutura do documento XML/HTML. Permite construir caminhos complexos para os elementos, procurar por atributos, conteúdo e posição.

Exemplos de uso:

# 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']")

A escolha do localizador depende da estabilidade do elemento web e da estrutura da página. Recomenda-se usar ID, CSS Selector ou XPath quando construídos corretamente.