Dies ist mein erster Post auf StackOverflow und ich hoffe, ich konnte das gesamte Problem im Detail zur Verfügung stellen. Bitte lassen Sie mich wissen, falls ich weitere Informationen zur Verfügung stellen muss. Problembeschreibung: Ich verwende einen normalen Breadcrumb, der meine Navigationsreihenfolge von einer Seite zur anderen anzeigt. Der Breadcrumb hat eine ID = "divbreadcrumb" im HTML-Format.Selenium webdriver returns string.Empty für Breadcrumb-Text (IwebElement) bei der Bereitstellung auf TFS
Beispiel: Wenn ich aus dem Hauptmenü (Home) zu Buchungen Seite (Reservierungen) navigieren, dann ist die Navigation ist wie folgt:
Home> Buchungen
Ich möchte meine Prüfung der Brotkrume automatisieren und Überprüfen Sie den Breadcrumb-Text, der auf der Seite angezeigt wird, im Gegensatz zu dem Breadcrumb-Text, der es eigentlich sein sollte. Ich versuche, dies zu erreichen, indem ich Selen Webdriver zusammen mit den ATDD-Tools Specflow/SpecRun und Nunit benutze, die den unten angegebenen Code verwenden.
Jetzt, wenn ich versuche, den Test auf meinem lokalen auszuführen, funktioniert es gut, aber wenn ich den Code in TFS einchecken und es erstellen, schlägt der VS Test Runner den Build fehl, da es Text aus dem IwebElement-Element nicht finden kann oder es gibt den Text als String.Empty zurück. Nun, der gleiche Test läuft, wenn er auf meinem lokalen Rechner läuft, einwandfrei und gibt die erwarteten Testergebnisse und die erwarteten Werte für mein Iwebelement (für Breadcrumb). Außerdem wird die HTML-Struktur des obigen Breadcrumbs im Backend gerendert, was ich sagen kann, weil ich versucht habe, HTML zu sehen, das es zur Laufzeit mit der Eigenschaft seitenquelle von webdriver rendert und in meiner Exception-Nachricht anzeigt.
<div class="breadcrumb" >
<div class="breadcrumb-content" >
<div class="breadcrumb" id="divBreadcrumb" >
<a onclick="some code written here" href="xyz.com">Home</a>
> <a href="LMN.com">Bookings </a>
</div>
</div>
</div>
PFB der Code, den ich in meinem Automatisierungs-Script verwendet habe den Text aus dem Brotkrümel auf der Seite kommen zu überprüfen:
Auch ist mein Back-End-HTML-Code wie angezeigt
public void TestingBreadcrumb(int p0)
{
InternetExplorerOptions IEOptions = new InternetExplorerOptions();
IEOptions.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
IEOptions.IgnoreZoomLevel = true;
IEOptions.UnexpectedAlertBehavior = InternetExplorerUnexpectedAlertBehavior.Ignore;
IWebDriver iEDriver = new InternetExplorerDriver(IEOptions);
iEDriver.Manage().Window.Maximize();
iEDriver.Navigate().GoToUrl("http://example.com");
var breadcrumb = iEDriver.FindElement(By.Id("divBreadcrumb")).Text.ToString();
Assert.AreEqual("Home > Bookings ", breadcrumb);
}
der Fehler I erhalten
[ERROR] Expected string length 18 but was 0. Strings differ at index 0. Expected: "Home > Bookings "
But was: <string.Empty>
-----------^
Mögliches Duplikat von [Selenium-Webdriver gibt String.Empty für Breadcrumb-Text zurück Iwebelement bei Implementierung auf TFS] (http://StackOverflow.com/questions/36305151/selenium-webdriver-returns-string-empty-breadcrumb-text -iwebement-when-dep) – Andersson
@Andersson - ja. Ich wollte meine andere obige Frage editieren und dachte mir, sie würde meine Frage bearbeiten, aber sie kopierte sie in eine neue Frage. Ich habe die obige Frage gelöscht, da dieser Beitrag hier alle Informationen enthält, die ich bezüglich meines Problems/Fehlers teilen könnte. – Anchit