我目前有一个从LoginPage.cs
开始的框架,并执行将用户登录到系统的操作,然后将用户带到DashboardPage.cs
。在DashboardPage.cs
上,页面顶部有实用程序导航栏,它将显示在所有页面上。所以我所做的是将常见操作分为PolicyBasePage.cs
,除了LoginPage.cs
之外,所有其他页面都可以访问这些操作。
我的testmethod在到达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
}
答案 0 :(得分:0)
之前打电话给:
dashboardPage.PolicyBasePage.SearchButton();
你只创建一个新的dashboardPage对象我看不到这在任何地方继承你的PolicyBasePage。您还没有创建我可以看到的PolicyBasePage对象。您可以在dashboardPage Initialiser方法中创建它。