我目前正在使用带有 Selenium 和 FluentAutomation 的 Specflow,并且在维护 Specflow 步骤之间的状态时遇到了重大问题。
请参阅下面的示例代码:
[Binding]
public class RegistrationSteps : FluentTest
{
[Given(@"I create an account")]
public void GivenICreateAnAccount()
{
new HomePage(this)
.Go()
.StartRegistration()
.EnterDetailsAndClickSubmit(); // takes me to deposit page
}
[When(@"Deposit '(.*)' dollars in my account")]
public void GivenDepositMoneyInMyAccount(int amount)
{
new DepositPage(this)
.EnterDetailsAndClickSubmit(amount);
}
}
我的问题是:
- 在第一步中,使用加载页面
Go()
,一切正常 - 在第二步中,我的测试继续进行,在这里我希望我在另一个页面上,基于前面的提交
- 因为我不喜欢
PageObject
它会感到困惑,所以我不使用Go
,因为上一步应该把我带到这里,而在这个阶段它不会找到预期的元素
所以我的问题是,如何在多个 Specflow 测试中使用一个浏览器会话和多个 PageObjects?