Ich möchte überprüfen, ob meine IWebElement
angezeigt wird oder nicht. Wenn ich versuche, die IWebElement
in der Klasse zu erreichen und zu überprüfen, ist alles in Ordnung, aber wenn ich es an meine KontrolElement()
Funktion sende, bekomme ich eine NullReferenceException
. KontrolElemet()
ist erforderlich, da dieser Prozess mehrmals stattfindet.IWebElement wird null, nachdem es an eine Funktion gesendet wurde
KontrolElement()
:
//This is inside a class called 'Helpers'
public void KontrolElement(IWebDriver WebDriver, IWebElement WebElement, string msg)
{
try
{
//"WebElement" is null
Assert.IsTrue(WebElement.Displayed);
}
catch (AssertionException)
{
Console.WriteLine("Kontrol: " + msg);
//Sends an E-mail with the screenshot of the page attached to it
new ScreenShot().Crush(WebDriver, msg, "");
}
}
Wie verwende ich es ('el' ist in der Regel ein Objekt innerhalb einer IReadOnlyCollection, die mit einer foreach-Schleife iterared ist):
//This takes place in the PageObject class which extends 'Helpers'
IWebElement el = WebDriver.FindElement(By.ClassName("listTop"));
//Console.WriteLine(el.Displayed) outputs True
KontrolElement(WebDriver, el, "el is not displayed");
Hat jemand ein Problem wie konfrontiert Dies? Was können die alternativen Lösungen sein?
Ich denke, es ist unmöglich, null zu sein. Was passiert, wenn Sie die 'Console.WriteLine (el.Displayed)' auskommentieren? Siehst du sowohl "wahr" als auch "el wird nicht angezeigt" in der Konsole? – Buaban
Es scheint, dass es mehr zu dieser Geschichte geben muss, hast du den ganzen Prozess sorgfältig durchlaufen, um sicherzustellen, dass die Dinge so genannt werden, wie du es erwartest? Der obige Code in seiner minimalistischen Form funktioniert, ich habe ihn getestet, um sicherzustellen, dass ich nichts Offensichtliches verpasse. Sie haben mehr zu tun als oben gezeigt, was dazu führt, dass 'KontrolElement' mit einem'IWebElement' aufgerufen wird. – mrfreester
10 @mrfreester Ich habe herausgefunden, dass die 'NullReferenceException' etwas anderes damit zu tun hat. Außerdem habe ich 'KontrolElement() 'in der Frage abgeschlossen und ich bin mir sicher, dass' NullReferenceException' in diese Funktion geworfen wird. –