Sto scrivendo un test JUnit per una pagina Web, utilizzando Selenium e sto cercando di verificare che il testo previsto esista all'interno di una pagina. Il codice della pagina web sto testando si presenta così:Selenio: Estrai testo di un div con cssSelector in Java
<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>
voglio mettere a confronto ciò che è previsto con ciò che è sulla pagina, quindi voglio usare Assert.assertTrue(). So che per ottenere tutto dal div, posso fare
String element = driver.findElement(By.cssSelector("div[id='recipient_div_3']")).getText().replaceAll("\n", " ");
ma questo ritornerò "reqd info * Destinatario:"
C'è un modo per ottenere solo il testo dal div ("Destinatario ") usando cssSelector, senza gli altri tag?
Il localizzatore XPath fornito è logico e lavora a console di Chrome, ma non funzionerà in selenio. Il selenio genera il seguente errore ... 'Il selettore indicato // div [@ class = 'StdLevel1']/text() non è valido o non risulta in un WebElement. Si è verificato il seguente errore: InvalidSelectorError: il risultato dell'espressione xpath "// div [@ class = 'StdLevel1']/text()" è: [oggetto testo]. Dovrebbe essere un elemento. – BSchlinker
Quindi c'è una soluzione o vorresti semplicemente prendere il div e analizzare la stringa getText()? –
Per quanto mi consta, il selenio è fatto per consentire text(), nodo, ecc. – SIslam