【发布时间】:2017-12-14 11:35:24
【问题描述】:
我目前有一个从LoginPage.cs 开始的框架,并执行将用户登录到系统的操作,然后将他们带到DashboardPage.cs。在DashboardPage.cs 的页面顶部有一个实用导航栏,它将出现在所有页面上。所以我所做的是将常用操作与PolicyBasePage.cs 分开,除了LoginPage.cs 之外,所有其他页面都应该可以访问这些操作。
当到达dashboardPage.PolicyBasePage.SearchButton(); 时,我的测试方法中断,我收到以下错误消息:
消息:测试方法 TestAutomationFrameworkPOMS.TestScript.Tests.Test 抛出异常:System.NullReferenceException:对象引用不 设置为对象的实例。
TestMethod.cs:
[TestMethod]
public void Test()
{
NavigationHelper.NavigateToUrl(ObjectRepository.Config.GetWebsite());
var loginPage = new LoginPage();
loginPage.UsernameTextBox(ObjectRepository.Config.GetUsername());
loginPage.PasswordTextBox(ObjectRepository.Config.GetPassword());
loginPage.RememberMeCheckBox();
loginPage.LoginButton();
var dashboardPage = new DashboardPage();
dashboardPage.PolicyBasePage.SearchButton();
var searchPage = new SearchPage();
searchPage.QuotePolicyNumberTextBox("0005");
searchPage.SearchButton();
var transACTPage = new TransACTPage();
transACTPage.PostCodeTextBox("MTA");
transACTPage.GoButton();
GenericHelper.TakeScreenshot();
}
DashboardPage.cs:
public class DashboardPage
{
private IWebElement driver;
public PolicyBasePage PolicyBasePage { get; set; }
#region WebElements
#endregion
public DashboardPage()
{
PageFactory.InitElements(ObjectRepository.Driver, this);
}
#region Actions
#endregion
}
PolicyBasePage.cs:
public class PolicyBasePage
{
#region WebElement
[FindsBy(How = How.Id, Using = "id_Search")]
private IWebElement Search;
#endregion
public PolicyBasePage()
{
PageFactory.InitElements(ObjectRepository.Driver, this);
}
#region
public void SearchButton()
{
Search.Click();
}
#endregion
}
【问题讨论】:
标签: c# selenium page-factory