【问题标题】:Selenium - creating new object from constructor (baseclass)Selenium - 从构造函数(基类)创建新对象
【发布时间】:2018-05-02 16:32:19
【问题描述】:

我对在 C# 中学习 Selenium 时遇到的常量问题感到困惑。

首先,我创建的每个类都继承了一个设置新驱动程序的类(BaseClassTest):

public class BaseApplicationPage
{
    protected IWebDriver Driver { get; set; }
    public BaseApplicationPage(IWebDriver driver)
    {
        Driver = driver;
    }
}

接下来,我的“主”类(HomePage)之一从从“BaseApplicationPage”继承元素开始,然后创建(在大多数情况下)具有空主体的构造函数。但是在这种情况下,在主体内部有一行:创建一个新的“Slider”类。

 internal class HomePage : BaseApplicationPage
    {
        public HomePage(IWebDriver driver) : base(driver)
        {
            Slider = new Slider(driver);
        }

        public Slider Slider { get; internal set; }

我的问题:

  1. 是否有必要用类似的东西填充所有新类(构造函数 + 从 BaseClass 继承)?
  2. 为什么在我的情况下,在 body 里面有对滑块类的引用,而不是让它为空并添加如下内容:

    public SliderSection Slider => new SliderSection(Driver);

【问题讨论】:

    标签: c# selenium selenium-webdriver


    【解决方案1】:

    答案1:是否有必要用类似的东西填充所有新类(构造函数+从BaseClass继承)? -- 如果您需要任何特定类中的驱动程序对象,例如您定义的(HomePage),您需要一个构造函数来初始化驱动程序对象。然后只有您可以在该特定类的任何地方使用驱动程序引用。

    答案2

    两个都可以用

    public SliderSection Slider => new SliderSection(Driver);
    

    这里提供了Slider = new Slider(driver);,Slider 类型必须定义在这个类或者它的基类中。

    【讨论】:

    • 非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    • 2015-10-08
    • 2016-06-28
    • 2017-05-24
    • 1970-01-01
    相关资源
    最近更新 更多