我无法从其中一个课程中看到这些方法。 我创建了一个MobileLoginPage类,我想单击“菜单”按钮。 我注意到已经定义了一个方法来从名为MobileNavigationPage的类中单击“菜单”按钮。该方法称为ClickMenuNavigation
由于此方法已存在,我应该可以从我的MobileLoginPage类中调用它。避免重复代码。 当我编写代码MobileNavigationLogin时,我无法调用它。 没有方法出现。 我甚至尝试通过定义一个方法(getMenuNavigationElement)来返回定位器来调用locator元素。我无法从LoginPage类中看到这个定位器。
该类已在BasePage类中实例化,我不知道为什么我看不到它的方法。
我的代码段是:
BasePage是我们所有的类都在这里实例化了:
public class BasePage : SpecflowBaseTest
{
internal MobileNavigationPage MobileNavigationPage => new
MobileNavigationPage(Browser);
internal MobileLoginPage MobileLoginPage => new
MobileLoginPage(Browser);
}
MobileNavigationPage是:
public void MobilenavigationPage : BasePage
{
#region Elements
[FindsBy(How = How.Id, Using = "MobileMenuNavigation")]
private IWebElement MenuButton {get; set;}
#endregion
#region Actions
private void ClickMenuNavigation()
{
Actions.Click.Element(Browser, MenuButton);
}
private IWebElement getMenuNavigationElement()
{
return MenuButton;
}
#endregion
}
MobileLoginPage是:
public class MobileLoginPage : BasePage
{
# region Actions
public void ClickBrandFromMenuNavigation{}
{
// I want to call ClickMenuNavigation() from here
}
#endregion
}
从LoginPage类中如何调用MobileNavigationPage中定义的方法?
答案 0 :(得分:1)
该方法为private
,这意味着它只能在MobilenavigationPage
内使用。
你可以将其设为public
,然后它会显示 -
public void ClickBrandFromMenuNavigation()
{
base.MobileNavigationPage.ClickMenuNavigation();
}