2009-10-26 17 views
21

Estoy tratando de obtener una consulta xpath utilizando la función xpath minúscula o uppper-case, pero parece que no funcionan en selenio (donde pruebo mi xpath antes de aplicarlo).Problema con mayúsculas y minúsculas xpath funciones en selenio IDE

Ejemplo que no funciona: texto //*[.=upper-case('some ')]

no tengo problema para localizar los nodos que necesito en camino complejo e incluso el uso de funciones agregadas, como siempre que no use la mayúscula y la minúscula.

¿Alguien ha encontrado esto antes? ¿Tiene sentido?

Gracias.

+0

Es bueno tener en cuenta que para las personas que trabajan en documentos XSL, CSS usando las propiedades del texto' soluciona problemas de transformación como la capitalización. Para obtener más información: http://www.w3schools.com/css/pr_text_text-transform.asp – sid3k

Respuesta

48

upper-case() y lower-case() son funciones de XPath 2.0. Es probable que su plataforma solo admita XPath 1.0.

Probar:

translate('some text','abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ') 

que es la forma de XPath 1.0 para hacerlo. Desafortunadamente, esto requiere el conocimiento del alfabeto que usa el texto. Para el inglés simple, lo anterior probablemente funcione, pero si espera caracteres acentuados, asegúrese de agregarlos a la lista.

+0

De hecho, ¡gracias! Desafortunadamente, esto no es 'limpio' en absoluto ... :( (complicará aún más algunas de nuestras ya complicadas definiciones de DSL en GenericFixture para Fitnesse). Alguien tiene alguna idea de cuándo selenio RC o Firefox (no '¿cuál es el responsable?) adoptará XPath 2.0? – Aristotelis

+0

Disculpe, pero no tengo idea. Sé que no está limpio, pero es lo mejor que obtendrá con XPath 1.0. – Tomalak

+3

@Aristotelis: Sí, esto parece no está claro, pero tiene su razón de ser. XML es Unicode, no ASCII/English miró. Por lo tanto, para las mayúsculas, debe saber acerca de las intercalaciones. El conocimiento de colaciones se agregó a XPath 2.0. –

1

Si va a necesitar mayúsculas en varios lugares en su xslt, puede definir variables para mayúsculas y minúsculas y luego usarlas en su función de traducción en todas partes. Debería hacer que tu xslt sea mucho más limpio.

Ejemplo en XSL/XPATH : No upper-case function in MSXML 4.0 ?

Cuestiones relacionadas