Im HTML einer Webanwendung gibt es den folgenden Code
<input type="text" name="prettyTime" id="prettyTime" class="ui-state-disabled prettyTime" readonly="readonly">
Was tatsächlich auf der Seite angezeigt wird, ist eine Zeichenfolge, die die Zeit anzeigt.
In Selenium Web Driver habe ich ein WebElement
Objekt, das sich auf die <input>
Verwendung bezieht
WebElement timeStamp = waitForElement(By.id("prettyTime"));
Ich möchte den Wert von WebElement
oder mit anderen Worten, was auf der Seite gedruckt ist, erhalten. Ich habe alle WebElement
Getter ausprobiert und nichts hat den tatsächlichen Wert abgerufen, den der Benutzer sieht. Irgendeine Hilfe? Vielen Dank.
quelle
getAttribute("value")
ist wirklich wie du das machst?! Das macht keinen Sinn. Es gibt einen großen Unterschied zwischen demvalue
Attribut einesinput
Elements und seinervalue
Eigenschaft. Tut Selen das Schreckliche, was jQuery tut, und bringt sie zusammen?await
wenn Sie verwendengetAttribute
.Sie können dies tun:
Dadurch erhalten Sie die Zeit, die auf der Webseite angezeigt wird.
quelle
Mit Selen 2,
Normalerweise schreibe ich es so:
ODER
quelle
Für Python-Bindungen gilt Folgendes:
quelle
Nach der Antwort von @ragzzy verwende ich
Es funktioniert ganz gut und verändert das DOM nicht
quelle
Wie bereits erwähnt, können Sie so etwas tun
Wie Sie jedoch sehen können, muss Ihr Element ein
id
Attribut und auch eine Abfrage auf Ihrer Seite haben.quelle
Wenn der Eingabewert von einem Skript mit einer gewissen Latenz (z. B. AJAX-Aufruf) ausgefüllt wird, müssen Sie warten, bis die Eingabe ausgefüllt wurde. Z.B
quelle
element.GetAttribute ("Wert");
Wenn Sie das Attribut "value" in HTML dom nicht sehen, wird der Feldwert auf der GUI angezeigt.
quelle
Das ist irgendwie hackig, aber es funktioniert.
Ich benutzte
JavascriptExecutor
und eine hinzugefügt ,div
um die HTML, und änderte den Text in derdiv
bis$('#prettyTime').val()
ich dann Selen verwendet abrufen dasdiv
und greifen ihren Wert. Nachdem ich die Richtigkeit des Wertes getestet hatte, entfernte ich das gerade erstellte div.quelle