Selenium - 从构造函数(baseclass)创建新对象

时间:2018-05-02 08:15:48

标签: c# selenium selenium-webdriver

我对在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. 为什么在我的身体里面有滑块类的引用,而不是把它留空并添加这样的东西:

    public SliderSection Slider =>新的SliderSection(驱动程序);

1 个答案:

答案 0 :(得分:3)

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

答案2

您可以同时使用

public SliderSection Slider => new SliderSection(Driver);
此处提供了

Slider = new Slider(driver);,Slider类型必须在此类或它的基类中定义。