为什么在步骤';如果我输入密码详细信息';c#规范流
在VS 2019中使用c#的specflow新功能。已经实现了我的步骤并生成了一个步骤定义文件,如下所示。我真的不能动脑,什么时候,然后。我发现的大多数登录页面的常见示例是,您通常会得到一个需要用户名和密码的登录页面。然而,在我的例子中,它们位于两个单独的页面上,即首先使用用户名登录,然后作为第二个页面通过密码登录。出于某种原因,我认为这就是困惑所在,因为我不明白应该在代码中放置2-3条给定语句的位置,因此出现错误,只能访问sendkeys()到username,而无法单击login按钮 错误:步骤“给定我输入密码详细信息”的步骤定义不明确 无法执行此步骤,因为我的步骤不正确为什么在步骤';如果我输入密码详细信息';c#规范流,c#,specflow,C#,Specflow,在VS 2019中使用c#的specflow新功能。已经实现了我的步骤并生成了一个步骤定义文件,如下所示。我真的不能动脑,什么时候,然后。我发现的大多数登录页面的常见示例是,您通常会得到一个需要用户名和密码的登录页面。然而,在我的例子中,它们位于两个单独的页面上,即首先使用用户名登录,然后作为第二个页面通过密码登录。出于某种原因,我认为这就是困惑所在,因为我不明白应该在代码中放置2-3条给定语句的位置,因此出现错误,只能访问sendkeys()到username,而无法单击login按钮 错误:
[Binding]
public sealed class HomeSteps
{
LoginPage loginPage = null;
[Given(@"I launch the application")]
public void GivenILaunchTheApplication()
{
IWebDriver webDriver = new ChromeDriver(@"C:\Users\Peter\Desktop\chromedriver_win32");
webDriver.Navigate().GoToUrl("https://mycompany.com/app/auth/login");
loginPage = new LoginPage(webDriver);
}
[Given(@"I enter the username details")]
public void GivenIEnterTheUserNameDetails(Table table)
{
dynamic data = table.CreateDynamicInstance();
loginPage.enterUsername((string)data.username);
}
[When(@"I click the login button")]
public void AndIClickTheLogin()
{
loginPage.ClickLoginButton();
}
[Then(@"I should see the login link")]
public void ThenIShouldSeeTheLoghinLink()
{
Assert.That(loginPage.IsMicrosoftPageExist(), Is.True);
}
[Given(@"I enter the password details")]
public void AndIEnterThePaswordDetails(Table table)
{
dynamic data = table.CreateDynamicInstance();
loginPage.enterPassword((string)data.password);
}
[When(@"I click the sign in button")]
public void WhenIClickTheSignInButton()
{
loginPage.ClickSignInButton();
}
[Then(@"I should see the login link")]
public void ThenIShouldSeeTheLoghinLink1()
{
Assert.That(loginPage.IsCompanyPageExist(),Is.True);
}
}
请帮忙
情况是:
Scenario: Perform login to EA web site
Given I launch the application
And I enter the username details
| username |
| amyemail@email.com |
When I click the login button
When I shoukld see the microsoft logo
When I enter the password details
| password |
| ... |
When I click the sign in button
Then I should see the company page
错误消息说明了这一切: 为步骤“给定我输入密码详细信息”找到不明确的步骤定义 SpecFlow不支持同一步骤的多个步骤定义。无论有多少步骤定义类,步骤定义文件中只能出现一次
[给定(@“我输入密码详细信息”)]
在步骤定义类中查找此定义存在的其他位置。选择一个,删除所有其他属性。您是否忘记在类名上方复制并粘贴
[Binding]
属性?如果缺少该属性,则SpecFlow将无法识别其中的步骤。抱歉,没有复制,所以是的,我已绑定扫描您添加全部或部分场景?您是说我可以使用给定的场景,何时,何时,何时,何时,Wgen,然后?这对我来说毫无意义?这就像我在反对我们实际发生的事情,而不是Specflows规则。@MrRabbit:这与您的场景和功能文件无关。这与包含步骤定义的C#类有关。在步骤定义(C#类)中,以及在所有C#类的组合中,不能多次定义步骤。不能在每个类中多次定义同一步骤,也不能在所有C#步骤定义类中多次定义同一步骤。