首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用selenium和c#向页面对象模型添加可重复的部分?

如何使用selenium和c#向页面对象模型添加可重复的部分?
EN

Stack Overflow用户
提问于 2017-04-12 07:18:41
回答 3查看 880关注 0票数 3

我正在尝试使用Selenium和C#实现网络测试的自动化。

我有一个web应用程序的某些部分,如页眉和页脚重复在多个页面。

假设我有SecA,SecB,SecC节。在我的页面中,它将显示为Page1将有{SecA,SecB,SecC},Page2将有{SecA,SecB},Page3将有{SecB,SecC}。

我不想在每个页面对象中创建副本。如何定义这些部分并将其包含到我的页面类中?

如果你能提供一些示例代码,那就太好了。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-04-12 08:35:11

代码语言:javascript
复制
//SecA:
public class SecA
    {
    [FindsBy(How = How.Id, Using = "Id")]
    private IWebElement SecAField;
    //Add Getters, setters, methods, constructors, etc..

}

//SecB:
public class SecB
{
    [FindsBy(How = How.Id, Using = "Id")]
    private IWebElement SecBField;
    //Add Getters, setters, methods, constructors, etc..
}

//SecC:
public class SecC
{
    [FindsBy(How = How.Id, Using = "Id")]
    private IWebElement SecCField;
    //Add Getters, setters, methods, constructors, etc..
}

//Page 1:

public class Page1
{
    public SecA secA { get; set; }
    public SecB secB { get; set; }
    public SecC secC { get; set; }

    //Add Getters, setters, methods, constructors, etc..
    public Page1()
    {
        secA = new SecA();
        secB = new SecB();
        secC = new SecC();
    }
}
票数 10
EN

Stack Overflow用户

发布于 2017-04-12 08:15:34

您必须为每个部分创建Page对象,并将它们定义为所需页面中的属性/Getters方法。

票数 2
EN

Stack Overflow用户

发布于 2017-04-12 07:26:53

您可以使用继承,就像在正常代码中一样。创建一个包含页眉和页脚组件的基类,并让其他页面对象扩展这些类。

代码语言:javascript
复制
public class BasePageObject
{
    [FindsBy(How = How.Name, Using = "username")]
    private IWebElement UsernameField;
    [FindsBy(How = How.Name, Using = "password")]
    private IWebElement PasswordField;
    [FindsBy(How = How.Name, Using = "email")]
    private IWebElement MailingListFormEmail;

    public void Login() 
    {
        // Login to the application
    }

    public void SubscribeToMailingList() 
    {
        // Subscribe to the mailinglist
    }
}

public class IndexPage : BasePageObject
{
    // Your Concrete page here
}

我希望这有帮助,如果我没有正确理解你的问题,请告诉我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43362865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档