Ubicar múltiples elementos en Selenium Python

Las estrategias de localizadores en Selenium Python son métodos que se utilizan para localizar elementos únicos o múltiples de la página y realizar operaciones en los mismos. El módulo Python de Selenium está diseñado para realizar pruebas automatizadas con Python. Los enlaces de Selenium Python proporcionan una API simple para escribir pruebas funcionales/de aceptación utilizando Selenium WebDriver. Después de haber instalado Selenium y verificado: navegar por los enlaces usando el método get , es posible que desee jugar más con Selenium Python. Después de abrir una página usando selenium como geeksforgeeks, es posible que desee hacer clic en algunos botones automáticamente o completar un formulario automáticamente o cualquier tarea automatizada. Este artículo gira en torno a la ubicación de varios elementos en Selenium Python.

Locator Estrategias para localizar múltiples elementos

Selenium Python sigue diferentes estrategias de localización de elementos. Uno puede localizar múltiples elementos de 7 maneras diferentes. Aquí hay una lista de estrategias de localización para Selenium en python:

localizadores Descripción
buscar_elementos_por_nombre Se devolverán todos los elementos con un valor de atributo de nombre que coincida con la ubicación.
encontrar_elementos_por_xpath Se devolverán todos los elementos con sintaxis xpath que coincidan con la ubicación.
find_elements_by_link_text Se devolverán todos los elementos con un valor de texto de enlace que coincida con la ubicación.
buscar_elementos_por_texto_enlace_parcial Se devolverán todos los elementos con un valor de texto de enlace parcial que coincida con la ubicación.
buscar_elementos_por_nombre_de_etiqueta Se devolverán todos los elementos con el nombre de etiqueta dado.
buscar_elementos_por_nombre_de_clase Se devolverán todos los elementos con un nombre de atributo de clase coincidente.
buscar_elementos_por_css_selector Se devolverán todos los elementos con el selector de CSS coincidente.

buscar_elementos_por_nombre

Con esta estrategia, se devolverán todos los elementos con el valor del atributo de nombre que coincida con la ubicación. Si ningún elemento tiene un atributo de nombre coincidente, se generará una NoSuchElementException.

Sintaxis –

driver.find_elements_by_name("name_of_element")

Ejemplo:
por ejemplo, considere la fuente de esta página:

<html>
 <body>
  <form id="loginForm">
   <input name="username" type="text" />
   <input name="username" type="username" />
   <input name="continue" type="submit" value="Login" />
  </form>
 </body>
<html>

Ahora, después de haber creado un controlador, puede tomar elementos usando:

elements = driver.find_elements_by_name('username')

Para verificar la implementación práctica, visite el método de controlador find_elements_by_name() – Selenium Python

encontrar_elementos_por_xpath

Con esta estrategia, se devolverán todos los elementos con un patrón de xpath que coincida con la ubicación. Si ningún elemento tiene un atributo de elemento coincidente, se generará una NoSuchElementException.

Sintaxis –

driver.find_elements_by_xpath("xpath")

Ejemplo:
por ejemplo, considere la fuente de esta página:

<html>
 <body>
  <form id="loginForm">
   <input name="username" type="text" />
   <input name="password" type="password" />
   <input name="continue" type="submit" value="Login" />
  </form>
 </body>
<html>

Ahora, después de haber creado un controlador, puede tomar elementos usando:

login_form = driver.find_elements_by_xpath("/html/body/form[1]")
login_form = driver.find_elements_by_xpath("//form[1]")

Para verificar la implementación práctica, visite – método de controlador find_elements_by_xpath() – Selenium Python

Con esta estrategia, se devolverán todos los elementos con el valor del texto del enlace que coincida con la ubicación. Si ningún elemento tiene un atributo de texto de enlace coincidente, se generará una NoSuchElementException.

Sintaxis –

driver.find_elements_by_link_text("Text of Link")

Ejemplo:
por ejemplo, considere la fuente de esta página:

<html>
 <body>
  <p>Are you sure you want to do this?</p>
  <a href="continue.html">Continue</a>
  <a href="cancel.html">Cancel</a>
</body>
<html>

Ahora, después de haber creado un controlador, puede tomar elementos usando:

login_form = driver.find_elements_by_link_text('Continue')

Para verificar la implementación práctica, visite: método de controlador find_elements_by_link_text() – Selenium Python

Con esta estrategia, se devolverán todos los elementos con el valor de texto de enlace parcial que coincida con la ubicación. Si ningún elemento tiene un atributo de texto de enlace parcial coincidente, se generará una NoSuchElementException.

Sintaxis –

driver.find_elements_by_partial_link_text("Text of Link")

Ejemplo:
por ejemplo, considere la fuente de esta página:

<html>
 <body>
  <p>Are you sure you want to do this?</p>
  <a href="continue.html">Continue</a>
  <a href="cancel.html">Cancel</a>
</body>
<html>

Ahora, después de haber creado un controlador, puede tomar todos los elementos usando:

login_form = driver.find_elements_by_partial_link_text('Conti')

Para verificar la implementación práctica, visite: método de controlador find_elements_by_partial_link_text() – Selenium Python

buscar_elementos_por_nombre_de_etiqueta

Con esta estrategia, se devolverán todos los elementos con el nombre de etiqueta dado. Si ningún elemento tiene un nombre de etiqueta coincidente, se generará una NoSuchElementException.

Sintaxis –

driver.find_elements_by_tag_name("Tag name")

Ejemplo:
por ejemplo, considere la fuente de esta página:

<html>
 <body>
  <h1>Welcome</h1>
  <p>Site content goes here.</p>
</body>
<html>

Ahora, después de haber creado un controlador, puede tomar todos los elementos usando:

login_form = driver.find_elements_by_tag_name('h1')

Para verificar la implementación práctica, visite: método de controlador find_elements_by_tag_name() – Selenium Python

buscar_elementos_por_nombre_de_clase

Con esta estrategia, se devolverán los primeros elementos con el nombre de atributo de clase coincidente. Si ningún elemento tiene un nombre de atributo de clase coincidente, se generará una NoSuchElementException.

Sintaxis –

driver.find_elements_by_class_name("class_of_element")

Ejemplo:
por ejemplo, considere la fuente de esta página:

<html>
 <body>
  <p class="content">Site content goes here.</p>
</body>
<html>

Ahora, después de haber creado un controlador, puede tomar todos los elementos usando:

content = driver.find_elements_by_class_name('content')

Para verificar la implementación práctica, visite: método de controlador find_elements_by_class_name() – Selenium Python

buscar_elementos_por_css_selector

Con esta estrategia, se devolverán todos los elementos con el selector de CSS coincidente. Si ningún elemento tiene un selector de CSS coincidente, se generará una NoSuchElementException.

Sintaxis –

driver.find_elements_by_css_selector("CSS Selectors")

Ejemplo:
por ejemplo, considere la fuente de esta página:

<html>
 <body>
  <p class="content">Site content goes here.</p>
</body>
<html>

Ahora, después de haber creado un controlador, puede tomar todos los elementos usando:

content = driver.find_elements_by_css_selector('p.content')

Para verificar la implementación práctica, visite – método de controlador find_elements_by_css_selector() – Selenium Python

Publicación traducida automáticamente

Artículo escrito por NaveenArora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *