人。我是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);
}
谢谢!
答案 0 :(得分:0)
我认为你的疑虑是合理的。就selenium BasePageObject
而言,它没有类型参数,也没有构造函数可以期望WebDriver
参数。
除BasePageObject
以外的其他包中是否还有com.wikia.webdriver.pageobjectsfactory.pageobject
?
如果是,那就是一个原因。虽然这有点让人困惑
否则这ProfilePage
只是不会编译。