2012-08-28 7 views
62

Tengo una pregunta. tengo elementos de algo como esto:selector de CSS (el ID contiene parte del texto)

<a> elemento con id = someGenerated Algunos: Igual: 0: nombrar

<a> elemento con id = someGenerated Algunos: Igual: 0: apellido

<a> elemento con id Algunos = someGenerated: Igual: 1: nombrar

<a> elemento con id = someGenerated Algunos: Igual: 1: apellido

Necesito el selector CSS para obtener nombres. El problema es que no sé cómo conseguirlo. Probé a[id*='Some:Same'] - devolvió todos los elementos <a>. Después de que pueda obtener los elementos cuya identificación termine con el nombre. Pero no me gusta esta idea. Creo que se puede hacer con algún otro selector.

+0

No puedo agregar un ejemplo real, debido a la política confidencial :( – TarasLviv

+0

Pero puedo explicarlo de otra manera. Id contiene los siguientes atributos: algunos caracteres generados + algunos caracteres estáticos +: elementIndexInTable: + nombre de columna en la tabla – TarasLviv

Respuesta

89

Prueba esto:

a[id*='Some:Same'][id$='name'] 

Esto le dará todas las a elementos con el ID que contiene

Algunos: Igual

y tienen el id que termina en

nam e

+0

Bueno, id * no funcionó para mí y dijo que no se puede evaluar a un elemento web. Lo usé para encontrar iframe que tiene id como '' name. '/ /driver.findElements(By.xpath ("// iframe [contains (@id *, 'FrameID')]")). size(); 'donde FrameID está comenzando la parte. De todos modos,' // a [contains (@ id, 'Some: Same') y contains (@ id, 'name')] 'me pasó el truco. Así que +1 a usted. – anujin

+2

Debe quitar el selector de XPath de esta respuesta, no agrega nada y es solo enlodando las aguas – Liam

5

El único selector que veo es a[id$="name"] (todos los enlaces con id terminando por "nombre") pero no es tan restrictivo como debería.

Cuestiones relacionadas