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, poisnamenem 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.