Selector de CSS (la identificación contiene parte del texto)
Frecuentes
Visto 146,574 veces
117
Tengo una pregunta. Tengo elementos algo como esto:
<a>
elemento con id = someGenerated Some:Mismo:0:nombre
<a>
elemento con id = someGenerated Some:Mismo:0:apellido
<a>
elemento con id = someGenerated Some:Mismo:1:nombre
<a>
elemento con id = someGenerated Some:Mismo:1:apellido
Necesito selector de CSS para obtener nombres. El problema es que no se como conseguirlo. Lo intenté a[id*='Some:Same']
- devolvió todo <a>
elementos. Después puedo obtener elementos cuya identificación termina con el nombre. Pero no me gusta esta idea. Creo que se puede hacer con algún otro selector.
3 Respuestas
170
Prueba esto:
a[id*='Some:Same'][id$='name']
Esto te traerá a todos a
elementos con id que contiene
Algunos iguales
y tener la identificación que termina en
nombre
Respondido 25 Feb 15, 14:02
Bueno, id* no funcionó para mí y decía que no se puede evaluar como un elemento web. Lo usé para encontrar iframe que tiene una identificación como <constant><variable><constant>
nombre. //driver.findElements(By.xpath("//iframe[contains(@id*,'FrameID')]")).size();
donde FrameID está comenzando la parte. De todos modos, //a[contains(@id,'Some:Same') and contains(@id,'name')]
hizo el truco para mí. Así que +1 para ti compañero. - anujin
Debe eliminar el selector XPath de esta respuesta, no está agregando nada y solo está enturbiando las aguas: Liam
@CosminO ¿Necesitas el *
al lado de id
? - coqueteando
@cokedude el operador *= significa que debe contener al menos el valor después del operador. Funciona en conjunto con la segunda condición de que debe terminar con otra cosa usando el operador $= Ver esto para una explicación detallada w3schools.com/css/css_attribute_selectors.asp Respuesta corta. El * no está al lado de id, está al lado de = y forma un operador con un significado especial: CosminO
46
<div id='element_123_wrapper_text'>My sample DIV</div>
El Operador ^ - Hacer coincidir elementos que comienzan con un valor dado
div[id^="element_123"] {
}
El Operador $ - Coincide con elementos que terminan con el valor dado
div[id$="wrapper_text"] {
}
El Operador * - Coincide con elementos que tienen un atributo que contiene un valor dado
div[id*="123_wrapper"] {
}
Respondido el 04 de diciembre de 21 a las 14:12
7
El único selector que veo es a[id$="name"]
(todos los enlaces con id que terminan en "nombre") pero no es tan restrictivo como debería.
Respondido 28 ago 12, 10:08
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas css css-selectors webdriver or haz tu propia pregunta.
¿Podría agregar algunos ejemplos reales de
<a>
etiquetas que desea seleccionar y las que no desea. Será más fácil ayudar a ver el código real. - andybNo puedo agregar un ejemplo real, debido a la política de confidencialidad :( - TarasLviv
Pero puedo explicarlo de otra manera. Los atributos de identificación contienen lo siguiente: algunos caracteres generados + algunos caracteres estáticos + :elementIndexInTable: + nombre de columna en la tabla - TarasLviv
¿Y cuáles son los criterios para los que quieres? - Tarken