Ich erhalte einen Fehler in meinem SpecFlow Unit-Test:Abrufen von Text in <td> Elemente mit SpecFlow und Selen
System.Collections.Generic.KeyNotFoundException: Der angegebene Schlüssel nicht im Wörterbuch vorhanden war. bei TechTalk.SpecFlow.SpecFlowContext.Get [T] (String-Schlüssel) bei F *****. Live.PS. *******. Schritte. *******. EnterStagingDateAndSaveSteps.ThenUserSeesInNEXTRE_ENROLMENTWINDOWTextFieldInPENSIONASSESSMENTDATESPageInPENSIONModule (String p0) in c: \ Git \ LivePersonalsystemTests \ Fourth.Live.PS.AutomationTests \ F *****. Live.PS. *******. Schritte ******* \ EnterStagingDateAndSaveSteps. cs: Linie 175
Hier ist die referenzierte Methode in EnterStagingDateAndSaveSteps.cs
[Then(@"user sees ""(.*)"" in NEXT RE-ENROLMENT WINDOW Text Field in PENSION ASSESSMENT DATES page in PENSION module")]
public void ThenUserSeesInNEXTRE_ENROLMENTWINDOWTextFieldInPENSIONASSESSMENTDATESPageInPENSIONModule(string p0)
{
// GetNextReEnrollmentWindow
string validator =
ScenarioContext.Current.Get<PensionAssessmentDates>("_nextReEnrollmentWindow")
.GetNextReEnrollmentWindow();
Assert.IsTrue(validator == p0);
}
(ich habe auch versucht return Driver.WaitAndGetText(_nextReEnrollmentWindow);
dort)
so sieht es aus wie der Schlüssel _nextReEnrollmentWindow
existiert nicht, aber hier ist es in PensionAssessmentDates.cs definiert:
private readonly By _nextReEnrollmentWindow = By.Id("NextReEnrollmentWindow");
Die PensionAssessmentSteps
wird in die ScenarioContext.Current wie folgt:
[Then(@"user sees ""(.*)"" in NEXT RE-ENROLMENT WINDOW Text Field in PENSION ASSESSMENT DATES page in PENSION module")]
public void ThenUserSeesInNEXTRE_ENROLMENTWINDOWTextFieldInPENSIONASSESSMENTDATESPageInPENSIONModule(string p0)
{
// GetNextReEnrollmentWindow
string validator =
ScenarioContext.Current.Get<PensionAssessmentDates>("_nextReEnrollmentWindow")
.GetNextReEnrollmentWindow();
Assert.IsTrue(validator == p0);
}
und hier ist die eigentliche Web-Seite, die ich zeige, das Element zu testen versuchen existiert:
Ich wäre dankbar für alle Hinweise oder Ratschläge, was, die ich verpasst mein Unit-Test verursacht, wie unten zu stoppen :
EnterStagingDateAndSaveSteps.WhenUserClicksSAVEButtonUnderAUTOMATICENROLMENTATSTAGINGDATEFrameInPENSIONASSESSMENTDATESPageInPENSIONModule() (0.7s)
Then user sees "02 Oct 2019 to 02 Apr 2020" in NEXT RE-ENROLMENT WINDOW Text Field in PENSION ASSESSMENT DATES page in PENSION module
-> error: The given key was not present in the dictionary.
wo setzen Sie die 'PensionAssessmentDates' in' ScenarioContext.Current'? Ich habe das Gefühl, Sie haben ein grundlegendes Missverständnis darüber, wie das funktioniert ... –
@SamHolder: Hallo Sam, es ist in der Datei 'EnterStagingDateAndSaveSteps.cs' - Ich werde diesen Code mit einer Bearbeitung hinzufügen ... –
@SamHolder: Ja, es ist auf jeden Fall möglich, dass ich etwas Grundlegendes verpasst habe! –