2012-05-22 12 views
6

Ho una pagina html con i seguenti contenuti:Selenio WebDriver - come verificare le linee multiple di testo

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

Come posso verificare tutte il testo statico sopra utilizzando un comando WebDriver?

ho provato questi ma nessuno di esso funziona :(

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')]")) 

Qualcuno sa come farlo

risposta

6

si può fare:?

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

Sei libero di usare un indicatore di posizione di a scelta invece di By.id.

Fondamentalmente getText() di qualsiasi WebElement restituisce il contenuto testuale del nodo, spogliato di tutti i tag HTML e commenti.

+0

Grazie Ashwin. Ho appena saputo che getText() è molto utile :) –

1

Questa è più una limitazione di XPath rispetto al selenio.

non vedo il motivo per cui si utilizza il selettore XPath globale lì, una migliore selettore XPath sarebbe:

By.XPath("//center"); 

Se è l'unico tag "centro" sulla pagina, o anche:

By.XPath ("// centro [contiene (testo(), 'Questa è una pagina di accesso'")

I caratteri/r e/n verranno mantenuti se lo si fa tramite codice invece di cercare ciecamente in XPath

+0

Io uso il selettore XPath globale in quanto è in realtà codice nella mia libreria comune per verificare il testo presente. Forse dovrei avere un altro metodo nella mia libreria comune per controllare il testo in base a tag specifici. Ma torniamo alla domanda, nel senso che dovrei fare smth di questo tipo: –

+0

Sì, vorrei andare con il tentativo di trovarlo senza i caratteri/r e/n (nuova riga e ritorni a capo) inclusi, andare per qualcosa di più semplice (come quello che ho fatto sopra) e controllare il testo dopo aver ottenuto l'elemento. In seguito sarà molto più facile controllarne la struttura nel codice. In caso contrario, puoi aggiungere un ID al tag centrale e utilizzare la risposta di Ashwin. – Arran

+0

ok notato. Lo proverò e grazie mille :) –

-1

Come trovare i testi se il testo ha spazio tra di loro.

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

Trovato la soluzione su un'altra pagina. Se qualcuno sta avendo lo stesso problema come me. utilizza questo link: https://groups.google.com/forum/#!topic/selenium-users/brPeac2QTvs e la soluzione è: Assert.assertEquals ("L'email è vuota. \ nInserisci un indirizzo email!", driver. . findElement (By.xpath (XXXXXXXX)) gettext()); – Bibek

Problemi correlati