2016-06-28 2 views
1

Ich versuche, Text zu überprüfen, der auf dem Bildschirm ist, aber derzeit nicht im HTML-Code der Seite sichtbar ist. Ich betreibe Selenium mit C# Programmiersprache. Unten ist die Codezeile auf der HTML-Seite, die das Element hat, gegen das ich versuche zu behaupten.C# - So verifizieren Sie Text, der nicht im HTML-Code gefunden werden kann, aber auf der Seite ist

<input id ="TransferStatus" class="TransferStatus" name="" readonly="readonly" value="" type="text"></input> 

In dem Tag 'Eingang' (die eine rectangler Box ist, die einen Wert in sich hat), sollte es Text zwischen den Tags sein. Wie Sie jedoch im obigen Code sehen können, gibt es keinen Text, der darauf überprüft werden kann. Auf der Seite wird es einen Text haben, der sagt, dass es "abgeschlossen" ist.

Gibt es einen Weg zu sehr diesem Text, auch wenn ich es nicht im HTML-Code der Seite sehen kann?

+0

'input' hat nicht schließenden Tag - es ist [Leeres Element] (http://w3c.github.io /html-reference/syntax.html#void-elements) ... Nicht wirklich klar, was meinst du "Text zwischen den Tags". –

+0

Entschuldigung, ich denke, ich wollte generell sagen, wenn ich versuche, die '.Text'-Methode zu verwenden. Danke, dass du mir das erklärt hast, ich wusste nichts davon. – Tscott

Antwort

1

Sie haben zu bekommen Attributwert anstatt Text erhalten:

string textValue = driver.FindElement(By.Id("TransferStatus")).GetAttribute("value"); 
+0

Aber das Problem, das ich gerade habe, ist, dass, wenn das Element vorhanden oder nicht vorhanden ist, die Attribute 'name' und 'value' immer noch null sind. In dieser Codezeile ist nichts enthalten, obwohl auf der aktuellen Seite ein Wert angezeigt wird. – Tscott

+0

@Tscott Haben Sie meine Antwort schon probiert? – Buaban

+0

@Tscott Wenn das Wertattribut des Eingabeelements null ist, denke ich, dass der Text nicht von diesem Element stammt; Es kann ein anderes Element auf diesem Eingabeelement geben. – Buaban

0

In Ihrem Fall denke ich value nicht aktualisiert wird. Ich werde empfehlen Ihnen die einfache Erweiterung Methode zu erstellen: -

public static string InnerHtml(this IWebElement source) { 
      return source.GetAttribute("innerHTML"); 
} 

Dank ...

+0

Wie würde ich das in mein Skript implementieren? Wäre die Quelle nur der Ort des Web-Elements? Und wäre es Absolute Xpath oder etwas anderes? – Tscott

+0

Es ist eine Erweiterungsmethode, Kopieren und Einfügen in Ihrem Code und es wird in IWebElement Objekt verfügbar sein. Für weitere Informationen http://www.dotnetperls.com/extension –

Verwandte Themen