我是新来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]’为‘电子邮件地址’字段中输入”和[当(@“我输入‘(。*)’电子邮件‘(。*)’为“(。*)”字段“) –