2016-04-21 11 views
0

Das Beispielprogramm auf der WebseiteWas ist innerText in Bezug auf Webelemente?

http://www.qaautomation.net/?p=263

hat die folgende Codezeile:

return driver.findElement(By.tagName("body")).getText().contains("qaautomation.net"); 

Die getText() Dokumentation (http://seleniumhq.github.io/selenium/docs/api/java/) verwendet den Begriff 'innertext'. Was ist innerer Text?

Wenn ich das Programm ausführen und die Quell-HTML der resultierenden Google-Seite abrufen, kann ich "qaautomation.net" im Code nicht finden. Wie erhält Selenium den Text aus dem Quellcode?

EDIT

ich habe nun eine neue Frage auf diese Frage beziehen.

Antwort

2

Da wir gerade über den Selen-Webdriver sprechen, ist es nicht so einfach wie @Davide beschreibt.

Die Beschreibung der Logik hinter dem getText() in der getElementText paragraph of the webdriver specification finden Sie. Eine der wichtigsten Erkenntnisse aus der Erklärung in der Dokumentation ist, dass nur das sichtbare Element Text von getText() zurückgegeben wird.

Wenn ich das Programm und nutzen Sie die Quelle html der resultierenden Google-Seite laufen, kann ich nicht finden ‚qaautomation.net‘ im Code

Das könnte, dass mehrere Gründe. Eine ziemlich häufige ist das "Timing-Problem" - Sie erhalten den Text des body, wenn die Seite nicht vollständig geladen ist. Eine empfohlene Lösung hierfür ist die Verwendung eines expliziten Wartens (WebDriverWait in Java).

+0

Wenn ich ‚die Quelle bekommen geschrieben html der resultierenden Google-Seite 'meinte ich, dass ich in den geöffneten Firefox-Browser gehe und auf Extras/Web Developer/Page Source klicke. Dies ist, nachdem die Seite vollständig in den Browser geladen wurde. Außerdem gibt die Codezeile in meiner Abfrage "true" zurück, sodass das Programm "qaautomation.net" im inneren Text finden muss. Ich bin verwirrt, wo Selenium 'qaautomation.net' findet, wenn ich es im HTML-Quellcode nicht finden kann. – Martin

2

InnerHTML ist der Inhalt eines bestimmten Tags.

InnerText ist der Textinhalt eines bestimmten Tags.

Wenn ein Tag p hat den folgenden Inhalt:

<p>Test <b>Bold</b></p> 

Die innerHTML- des Tags p Test <b>Bold</b>

Die Innertext des Tags p Test Bold