Saltar al contenido

¿Es posible ubicar el elemento por coincidencia de identificación parcial en Selenium?

Nuestros mejores programadores agotaron sus reservas de café, en su búsqueda día y noche por la respuesta, hasta que Vivian encontró el resultado en GitHub por lo tanto hoy la compartimos contigo.

Solución:

Puedes aplicar un termina con Selector de CSS:

By.cssSelector("[id$=default-create-firstname]")

Actualizar

Pasó algún tiempo desde que se publicó la respuesta. Aquí algunas actualizaciones de la página del desarrollador de mozilla vinculada y los comentarios a continuación:

Nuevo uso By.css en lugar de By.cssSelector

By.css("[id$=default-create-firstname]")

Vea también las cuatro posibilidades de

  • empezando con
  • en cualquier lugar dentro
  • en cualquier lugar dentro sin importar las mayúsculas
  • terminar con

/* Internal links, beginning with "#" */
a[href^="#"] 
  background-color: gold;


/* Links with "example" anywhere in the URL */
a[href*="example"] 
  background-color: silver;


/* Links with "insensitive" anywhere in the URL,
   regardless of capitalization */
a[href*="insensitive" i] 
  color: cyan;


/* Links that end in ".org" */
a[href$=".org"] 
  color: red;

Si desea ir por la ruta xpath, entonces podría usar contains()Me gusta esto:

//*[contains(@id,'_default-create-firstname')]

Esto buscará en toda la página una identificación que contenga el texto “_default-create-firstname”. Se puede hacer fácilmente más específico.

Puede probar esto en Java-Selenium: puede usar cualquiera ends-with() o contains(). Creo que ambos deberían funcionar.

driver.findElement(By.xpath("//*[ends-with(@id,'_default-create-firstname')]"));
driver.findElement(By.xpath("//*[contains(@id, '_default-create-firstname')]"));

Calificaciones y comentarios

Nos encantaría que puedieras comunicar este escrito si si solucionó tu problema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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