Selen: Extrahieren von Text aus einem div mit cssSelector in Java
Schreibe ich einen JUnit test für eine Webseite, mit Selen, und ich bin versucht, um zu überprüfen, dass der erwartete text existiert innerhalb einer Seite. Der code von der Webseite, ich Teste sieht wie folgt aus:
<div id="recipient_div_3" class="label_spacer">
<label class="nodisplay" for="Recipient_nickname"> recipient field: reqd info </label>
<span id="Recipient_nickname_div_2" class="required-field"> *</span>
Recipient:
</div>
Will ich vergleichen, was erwartet wird mit, was auf der Seite, so dass ich verwenden möchten
Geltend zu machen.assertTrue(). Ich weiß, dass man alles aus dem div, das ich tun kann
String element = driver.findElement(By.cssSelector("div[id='recipient_div_3']")).getText().replaceAll("\n", " ");
aber das wird wieder "reqd info * Empfänger:"
Gibt es eine Möglichkeit nur den text aus dem div ("Empfänger") mit cssSelector, ohne die anderen tags?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann man das nicht mit einem CSS-Selektor, da CSS-Selektoren nicht über eine ausreichend fein-Ansatz express "text-node enthalten in der DIV aber nicht seine fremden Inhalten". Sie können tun, dass mit einem XPath-locator, aber:
XPath-Ausdruck identifiziert nur die einzelnen text-Knoten, die ein direktes Kind des DIV, anstatt den gesamten text in es-und seine Kind-Knoten.
The given selector //div[@class='StdLevel1']/text() is either invalid or does not result in a WebElement. The following error occurred: InvalidSelectorError: The result of the xpath expression "//div[@class='StdLevel1']/text()" is: [object Text]. It should be an element.
Ich bin nicht sicher, ob es möglich ist mit einem css-locator, aber Sie können text aus div, danach text aus div ' s child-Knoten und subtrahieren Sie. Etwas ähnliches (code war nicht aktiviert):
Dies ist für den Fall, wenn Sie versuchen zu vermeiden, die Verwendung von xpath. Xpath erlaubt, es zu tun:
Könnten Sie auch den text-Inhalt eines Elements, und entfernen Sie die tags mit regexp. Beachten Sie auch: sollten Sie das nur ungern quntifier
https://docs.oracle.com/javase/tutorial/essential/regex/quant.html