继承类中的泛型和构造函数

时间:2017-05-17 07:31:27

标签: java selenium generics

人。我是QA测试人员,我一直在学习Selenium和Java的自动化。我无法理解为什么我需要在类ProfilePage中添加泛型和构造函数? 所以让我们创建Page Object类:

public class BasePageObject {

protected WebDriver driver; 

protected void getPage(String url){
    driver.get(url);

}

private WebElement find(By element) {
    return driver.findElement(element);
}   

protected void type(String text, By element){
    find(element).sendKeys(text);
} 
}

现在让我们为个人资料页面创建类:

public class ProfilePage extends BasePageObject<ProfilePage> {

private By editProfileButton = By.xpath("//button[@id='editProfile']");
private By advancededitProfileButton = By.xpath("//a[@class='dice-btn-link']");
private By profileContactNameText = By.xpath("//h1[@class='profile-contact-name']");

protected ProfilePage(WebDriver driver) {
    super(driver);
}



public boolean isCorrectProfileLoaded(String correctProfileName){
    if (getText(profileContactNameText).equals(correctProfileName)){
    return true;
}else
    return false;
    } 
 }

所以问题是:我为什么要使用泛型&#34; ProfilePage&#34; &#34;扩展BasePageObject&#34;为什么我必须创建protected ProfilePage(WebDriver driver) { super(driver); }

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为你的疑虑是合理的。就selenium BasePageObject而言,它没有类型参数,也没有构造函数可以期望WebDriver参数。

BasePageObject以外的其他包中是否还有com.wikia.webdriver.pageobjectsfactory.pageobject

如果是,那就是一个原因。虽然这有点让人困惑 否则这ProfilePage只是不会编译。