您好,我对编码和规范流很陌生。
在我的功能文件中,我有两个场景。 运行场景 A 后,窗口关闭,场景 B 在另一个窗口上运行。然而,当场景 B 正在执行时,它不会从场景 A 离开的地方继续。
我想知道如何让场景B从场景A离开的地方继续。
我创建了一个类来存储我的所有元素(Iwebelements。)
这是我的特征文件
@navigation
Scenario: Login
Given user is in Main Page
And user selects menu to navigate to User Schedule
And User Schedule page is displayed
@FORM
Scenario: Verify data can be entered on the form
When user click on the calendar icon
Then a calendar should appear
And user should be able to select any date and year
When user click on the field Time
Then a dropdown list id displayed
And user should select a Time
这是我的步骤定义
public class FillForm
{
private DriverHelper _driverHelper;
Userpage UPage;
LoginSteps LogSteps;
LoginPage LogPage;
public FillForm(DriverHelper driverHelper)
{
_driverHelper = driverHelper;
UPage= new UserPage(driverHelper.WebDriver);
LogPage = new LoginPage(driverHelper.WebDriver);
}
[Given(@"user is in Main Page")]
public void GivenUserIsInmainPage()
{
_driverHelper.WebDriver.Navigate().GoToUrl("www.randomsite.com");
_driverHelper.WebDriver.FindElement(By.XPath("//input[@id='username']")).SendKeys("Test123");
_driverHelper.WebDriver.FindElement(By.Id("Password")).SendKeys("P@ssword!");
LogPage.ClickSignUp();
Thread.Sleep(5000);
}
[Given(@"user selects menu to navigate to User Schedule")]
public void GivenUserSelectsMenuToNavigateToUserSchedule()
{
UPage.ClickMenu();
Thread.Sleep(5000);
UPage.ClickSolution();
Thread.Sleep(5000);
UPage.ClickPM();
Thread.Sleep(5000);
UPage.ClickonForm();
Thread.Sleep(6000);
}
[Given(@"User Schedule page is displayed")]
public void GivenUserSchedulePageIsDisplayed()
{
Assert.That(Upage.SyncNowbtnIsDisplayed(),Is.True);
}
[When(@"user click on the calendar icon")] //This is where scenario B starts
public void WhenUserClickOnTheCalendarIcon()
{
}
这是我的钩子
[Binding]
public sealed class Hooks
{
private DriverHelper _driverHelper;
public Hooks(DriverHelper driverHelper) => _driverHelper = driverHelper;
[BeforeScenario]
public void BeforeScenario()
{
ChromeOptions option = new ChromeOptions();
option.AddArguments("--start-maximized");
option.AddArguments("--disable-gpu");
_driverHelper.WebDriver = new ChromeDriver(option);
}
[AfterScenario]
public void AfterScenario()
{
_driverHelper.WebDriver.Quit();
}
那是我设置 IWebDriver 的 Driverhelper 类
public class DriverHelper
{
public IWebDriver WebDriver { get; set; }
}