我是新來specflow C#這樣的道歉,如果我做了一些基本的編程錯誤。Specflow步驟定義失敗因不能設置空隱式類型變量
我有我的specflow包含以下操作的列表:
When I enter in invalid email Test.TestEmail.plc for Email address field
And I enter in invalid email Test.TestEmail.plc for Confirm email address field
...
And I enter in correct email [email protected] for Email address field
And I enter in non matching email [email protected] for Confirm email address field
...
And I enter in matching email address [email protected] for Confirm email address field
的步驟之間唯一的變化是: - 電子郵件(無效,匹配,不匹配) 的類型 - 電子郵件地址 - 他們輸入的文本欄
所以我認爲讓參數化他們,但我無法得到它的工作,所以我想要什麼是解決這個問題的正確方法的一些幫助。
都在我試圖找到一個元素通過它的定位器,並設置一個字符串類型的電子郵件文本代碼首先:
public void GetFieldAndEnterText(By fieldElement, string fieldText) =>
_driver.FindElement(fieldElement).SendKeys(fieldText);
在步驟定義我有它設置如下:
[When(@"I enter in (.*) email (.*) for (.*) field")]
public void WhenIEnterInInvalidEmailForField(string emailType, string fieldText, By fieldElement)
{
var email = _payment.GetFieldAndEnterText(PaymentDetailsResponsiveElements.EmailAddressField);
var confirmEmail = _payment.GetFieldAndEnterText(PaymentDetailsResponsiveElements.ConfirmEmailAddressField);
if (fieldElement.Equals("Email Address"))
{
return email;
}else if (fieldElement.Equals("Confirm Email Address"))
{
return confirmEmail;
}
_payment.GetFieldAndEnterText(fieldElement, fieldText);
}
你可以看到,我試圖通過三個不同的參數。第一個在代碼方面並不重要,只是我可以一次又一次地使用這個步驟定義。
第二個參數是其在specflow提到知道鍵入哪些電子郵件的電子郵件。
最後一個參數是基於地方如果申請是電子郵件或證實電子郵件領域的定位,它會試圖找到的元素。
然而,在步驟定義我收到的電子郵件和confirmemail變量錯誤,不能設置空隙隱含類型和返回是行不通的,因爲它是一個void類型。
解決此問題的正確方法是什麼?
嘗試把單引號你周圍的參數(和調整您正則表達式)。因此,這將是「我的‘正確’電子郵件‘[email protected]’爲‘電子郵件地址’字段中輸入」和[當(@「我輸入‘(。*)’電子郵件‘(。*)’爲「(。*)」字段「) –