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.