2012-05-22 13 views
6

Ich habe eine HTML-Seite mit folgendem Inhalt überprüfen:Selen WebDriver - wie mehrere Zeilen Text

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

Wie kann ich oben mit einem WebDriver Befehl alle statischen Text überprüfen?

habe ich versucht, diese aber nichts davon funktioniert :(

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

Wer weiß, wie es zu tun

Antwort

6

Sie tun können:

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

Fühlen Sie sich frei einen Lokator von verwenden Ihre Wahl anstelle von By.id.

Grundsätzlich getText() eines beliebigen WebElements gibt den textuellen Inhalt des Knoten, von allen HTML-Tags und Kommentaren entfernt.

+0

Danke Ashwin. Ich habe gerade getText() ist sehr nützlich :) –

1

Dies ist mehr eine Einschränkung von XPath als Selen.

By.XPath("//center"); 

Wenn es der einzige „center“ Tag auf der Seite ist, oder auch:

Ich sehe nicht, warum Sie die globalen XPath Wähler dort verwenden, ein besser wären XPath Wähler seine

By.XPath ("// center [enthält (text(), 'Dies ist eine Anmeldeseite'")

Die Zeichen/r und/n werden beibehalten, wenn Sie dies über Code tun, statt blind zu suchen es in XPath.

+0

Ich benutze den globalen XPath-Selektor, wie es tatsächlich Codes in meiner allgemeinen Bibliothek ist, um vorhandenen Text zu überprüfen. Vielleicht sollte ich eine andere Methode in meiner allgemeinen Bibliothek haben, um den Text basierend auf einem bestimmten Tag zu überprüfen. Aber zurück zu der Frage, das heißt, ich sollte stattdessen so etwas tun: –

+0

Ja, ich würde mit dem Versuch gehen, es ohne die Zeichen/r und/n (neue Zeile und Wagenrücklauf) zu finden, gehen Sie für etwas einfacher (wie das, was ich oben getan habe) und überprüfe den Text, nachdem du das Element bekommen hast. Es wird viel einfacher sein, die Struktur danach im Code zu überprüfen. Andernfalls können Sie dem Center-Tag eine ID hinzufügen und Ashwins Antwort verwenden. – Arran

+0

ok notiert. Ich werde es ausprobieren und vielen Dank :) –

-1

Wie finde ich die Texte, wenn die Texte dazwischen Platz haben?

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

Die Lösung auf einer anderen Seite gefunden. Wenn jemand das gleiche Problem hat wie ich. Verwenden Sie diesen Link: https://groups.google.com/forum/#!topic/selenium-users/brPeac2QTvs und die Lösung lautet: Assert.assertEquals ("Die E-Mail-Adresse ist leer. \ nBitte geben Sie eine E-Mail-Adresse ein!", Treiber). findElement (By.xpath (XXXXXXXX)). gettext()); – Bibek