Selenium: Extrahiere Text eines div mit cssSelector in Java

8

Ich schreibe einen JUnit-Test für eine Webseite mit Selenium und versuche zu überprüfen, ob der erwartete Text auf einer Seite existiert. Der Code der Webseite, die ich teste, sieht so aus:

%Vor%

Ich möchte vergleichen, was erwartet wird mit dem, was auf der Seite ist, also möchte ich verwenden Assert.asserTrue (). Ich weiß, dass, um alles vom div zu bekommen, ich

tun kann %Vor%

aber das wird "reqd info * Recipient:"

zurückgeben

Gibt es eine Möglichkeit, den Text vom div ("Recipient") mit cssSelector ohne die anderen Tags zu erhalten?

    
Adam Pengal 27.04.2012, 15:55
quelle

3 Antworten

4

Sie können dies nicht mit einem CSS-Selektor tun, da CSS-Selektoren nicht über einen feinkörnigen Ansatz verfügen, um "den im DIV enthaltenen Textknoten, aber nicht seine anderen Inhalte" auszudrücken. Das können Sie jedoch mit einem XPath-Locator tun:

%Vor%

Dieser XPath-Ausdruck identifiziert nur den einzelnen Textknoten, der ein direktes Kind des DIV ist, und nicht den gesamten darin enthaltenen Text und seine Kindknoten.

    
Ross Patterson 27.04.2012, 16:58
quelle
4

Ich bin mir nicht sicher, ob das mit einem css-Locator möglich ist, aber Sie können Text von div bekommen, dann Text von divs Child-Knoten holen und sie subtrahieren. So ähnlich (Code wurde nicht überprüft):

%Vor%

Dies ist der Fall, wenn Sie versuchen, die Verwendung von xpath zu vermeiden. Xpath erlaubt es zu tun:

%Vor%     
Aleh Douhi 27.04.2012 16:34
quelle
0

Sie könnten auch den Textinhalt eines Elements abrufen und die Tags mit regexp entfernen. Beachten Sie auch: Sie sollten den widerwilligen Quntifier verwenden Ссылка

%Vor%     
dbow 12.05.2016 12:47
quelle

Tags und Links