我有一个函数,它返回一个WelcomeScreen
页面对象,如下所示:
public WelcomeScreen UpdateAndSubmitProfile()
{
LastNameField.Clear();
LastNameField.SendKeys("Malik");
Reporter.LogPassingTestStepToBugLogger("Update Last Name profile field, Last Name => Malik");
ProfileSubmitButton.Click();
Reporter.LogPassingTestStepToBugLogger("Click Submit button.");
return new WelcomeScreen(Driver);
}
现在,我想访问相同的方法,但希望它返回另一个页面对象LessonPage
(return new LessonPage(Driver)
)。有什么方法可以使用相同的方法来完成此任务吗?
答案 0 :(得分:4)
如果两个类都实现一个接口,则可以将方法的返回类型更改为接口。
public Screen UpdateAndSubmitProfile()
{
LastNameField.Clear();
LastNameField.SendKeys("Malik");
Reporter.LogPassingTestStepToBugLogger("Update Last Name profile field, Last Name => Malik");
ProfileSubmitButton.Click();
Reporter.LogPassingTestStepToBugLogger("Click Submit button.");
if(...)
return new WelcomeScreen(Driver);
else
return new LessonPage(Driver);
}
答案 1 :(得分:0)
您可以使用逻辑创建私有方法,并使用两种方法扭曲它,每个方法都返回一个页面对象
private void UpdateAndSubmitProfile()
{
LastNameField.Clear();
LastNameField.SendKeys("Malik");
Reporter.LogPassingTestStepToBugLogger("Update Last Name profile field, Last Name => Malik");
ProfileSubmitButton.Click();
Reporter.LogPassingTestStepToBugLogger("Click Submit button.");
}
public WelcomeScreen UpdateAndSubmitProfileAndGoToWelcomeScreen()
{
UpdateAndSubmitProfile();
return new WelcomeScreen(Driver);
}
public LessonPage UpdateAndSubmitProfileAndGoToLessonPage()
{
UpdateAndSubmitProfile();
return new LessonPage(Driver);
}