【问题标题】:Selenium, Page Factory,Was not able to inherit a class with PageFactorySelenium,页面工厂,无法使用 PageFactory 继承类
【发布时间】:2018-03-15 13:24:26
【问题描述】:

我无法将具有此构造函数的 Menus Repository Class 继承到另一个名为 sub menus 的类,

public MenusRepository(WebDriver driver)
{
    this.driver = driver;
    PageFactory.initElements(driver,this);
}

当我继承 Eclipse 时将此消息显示为 对于默认构造函数,未定义隐式超级构造函数 SubMenusRepository()。必须定义一个显式构造函数,并添加建议

public WasteStrorageRepository(WebDriver driver) {
    super(driver);
    // TODO Auto-generated constructor stub
}

我对它的工作原理感到很困惑,我是 Selenium 和 PageFactory 的新手,需要澄清它是如何工作的以及如何处理,我在这两个类上都有 Webelement。所以 MenusRepository 类会被 SubMenus 类继承,然后是最后一个测试用例类。

【问题讨论】:

    标签: java eclipse selenium page-factory


    【解决方案1】:

    这是一个基本页面对象类的示例:

    import org.openqa.selenium.support.PageFactory;
    import org.openqa.selenium.WebDriver;
    
    public class BasePageObject {
    
        WebDriver driver;
    
        public BasePageObject(WebDriver driver) {
    
            this.driver = driver;
            PageFactory.initElements(driver, this);
    
        }
    
    }
    

    下面是扩展基本页面对象的页面对象示例:

    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.support.FindBy;
    
    public class CalculatorPage extends BasePageObject {
    
        public CalculatorPage(WebDriver driver) {
            super(driver);
        }
    
        @FindBy(id = "userid")
        WebElement userID;
    
        public void setUserID(String text) {
            userID.sendKeys(text);
        }
    
    }
    

    页面类扩展基类,构造函数调用基类进行初始化,传递驱动参数。

    【讨论】:

      猜你喜欢
      • 2022-01-05
      • 2023-04-08
      • 2016-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-13
      相关资源
      最近更新 更多