2017-01-13 4 views
0

Ich war nur neugierig, was würde eine FindElement-Methode nichts (nicht null) zurückbringen, obwohl das Element dort auf der Seite und im HTML ist. Hin und wieder, wenn ich eine Assert.AreEqual-Methode in meinem Code habe, wird dieses Problem auftreten.Selen: Was bewirkt, dass ein FindElement nichts bringt?

Mein Aussehen behauptet in der Regel wie folgt aus:

Assert.AreEqual(stringValue, FindElement(By.XPath("<XPath path>")).Text); 

Und die Fehlermeldung, kommt zurück, dass die FindElement kam zurück als „<>“, wie es kein Wert war. Ist es möglich, dass mein Skript zu schnell geht und es überspringt oder gibt es ein anderes Unterstreichungs-Problem?

Antwort

1

Dies kann passieren, wenn dieser Text auf Ihrer Webseite nicht wirklich als innerHTML gespeichert wird, könnte in value Eigenschaft Ihres Elements sein und wenn Sie Text-Methode verwenden, erhalten Sie nur innerHTML, so dass es aussieht, als wäre es leer. Versuchen Sie mit GetAttribute, überprüfen Sie Ihr Element, um zu finden, wie es diesen Text speichert.

Ich hoffe, ich habe Ihr Problem richtig verstanden. : D

+0

Ja, du hast es richtig gemacht. Ich werde das nächste Mal ausprobieren, wenn dieses Problem während meiner Tests auftaucht. Danke für das Erklären. – Tscott

+0

Gut zu helfen. Sie können die Antwort akzeptieren, sodass die Community sie leichter sehen und davon profitieren kann. – acikojevic

+0

Tscott als eine Art von Debug können Sie es als var zuerst ziehen und sehen, was Sie bekommen. var value = FindElement (By.XPath ("")). Text); – Dazed

Verwandte Themen