2012-05-22 11 views
6

Tengo una página html con contenido siguiente:selenio WebDriver - cómo verificar las líneas múltiples de texto

<center> 
      This is Login page. 
      <br> 
      Please click below link to Login. 
      <br> 
      <a href="xxx">Login</a> 
    </center> 

¿Cómo puedo comprobar todo el texto estático anterior utilizando un comando WebDriver?

he probado todas estas pero nada de esto funciona :(

driver.findElement(By.xpath("//*[contains(.,'This is Login page.<br>Please click below link to Login')]")) 
driver.findElement(By.xpath("//*[contains(.,'This is Login page.\nPlease click below link to Login')]")) 

Alguien sabe cómo hacerlo

Respuesta

6

que puede hacer:?

webDriver.findElement(By.id("<ID of center tag>")).getText().contains("This is Login page.Please click below link to Login.Login"); 

no dude en utilizar un localizador de su elección en lugar de By.id.

Básicamente getText() de cualquier WebElement devuelve el contenido textual del nodo, despojado de todas las etiquetas HTML y comentarios.

+0

Gracias Ashwin. Solo tengo que saber que getText() es muy útil :) –

1

Esto es más una limitación de XPath que de Selenio.

no veo por qué está utilizando el selector XPath mundial allí, un selector XPath mejor sería:

By.XPath("//center"); 

Si se trata de la única etiqueta "central" en la página, o incluso:

By.XPath ("// center [contains (text(), 'This is a Login page'")

Los caracteres/r y/n se conservarán si lo hace a través del código en lugar de buscar ciegamente en XPath.

+0

Utilizo el selector global de XPath ya que en realidad son códigos en mi biblioteca común para verificar el texto presente. Tal vez debería tener otro método en mi biblioteca común para verificar el texto en función de una etiqueta específica. Pero volviendo a la pregunta, lo que significa que debería hacer algo así: –

+0

Sí, me gustaría intentar encontrarlo sin los caracteres/r y/n (nueva línea y retorno de carro) incluidos, vaya por algo más simple (como lo que hice arriba) y verifique el texto después de que tenga el elemento. Será mucho más fácil verificar su estructura en código después. En este caso, puede agregar una ID a la etiqueta central y usar la respuesta de Ashwin. – Arran

+0

ok observado. Voy a probarlo y muchas gracias :) –

-1

Cómo encontrar los textos si los textos tienen espacio entre ellos.

 <br> 
     <br/> 
     Please click below link to Login. 
     <br> 
     <a href="xxx">Login</a> 
</center> 
+0

Encontré la solución en otra página. Si alguien tiene el mismo problema que yo. utilice este enlace: https://groups.google.com/forum/#!topic/selenium-users/brPeac2QTvs y la solución es: Assert.assertEquals ("El correo electrónico está en blanco. \ nIntroduzca un correo electrónico!", controlador. findElement (By.xpath (XXXXXXXX)). gettext()); – Bibek

Cuestiones relacionadas