Junior
¿Qué localizadores existen en Selenium?
sobes.tech AI
Respuesta de la IA
Los localizadores en Selenium son mecanismos para buscar elementos web en la página. Los tipos principales de localizadores:
- ID: Permite encontrar un elemento por su atributo
id. La forma más rápida y confiable, si el ID es único y estable. - Name: Permite encontrar un elemento por su atributo
name. Menos confiable que ID, ya quenameno siempre es único. - Class Name: Permite encontrar elementos por su atributo
class. Devuelve una lista de elementos, ya que varios elementos pueden tener la misma clase. - Tag Name: Permite encontrar elementos por el nombre de la etiqueta HTML (por ejemplo,
div,a,input). Devuelve una lista de elementos. - Link Text: Permite encontrar un elemento
<a>(enlace) por el texto exacto del enlace. - Partial Link Text: Permite encontrar un elemento
<a>(enlace) por coincidencia parcial del texto del enlace. - CSS Selector: Forma potente y flexible de buscar elementos usando la sintaxis de selectores CSS. Permite buscar por combinación de atributos, etiquetas, clases, jerarquía y estados.
- XPath: La forma más potente y flexible de buscar elementos, basada en la navegación por la estructura del documento XML/HTML. Permite construir rutas complejas a los elementos, buscar por atributos, contenido y posición.
Ejemplos 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']")
La elección del localizador depende de la estabilidad del elemento web y la estructura de la página. Se recomienda usar ID, CSS Selector o XPath cuando sea posible.