Когда я использую PageFactory.initElements в родительском классе, элементы дочернего класса инициализируются. Как это работает?
public class PageBase {
public PageBase(WebDriver dr)
{
this.dr=dr;
PageFactory.initElements(dr, this);
}
}
Здесь, в PageBase (родитель), 'this' является ссылкой на PageBase (родитель), верно? тогда как его инициализирующие элементы ниже дочернего класса? это из-за наследования [то есть что-то вроде дочернего класса также будет инициализировано с родителем]?
public class LoginPage extends PageBase{
private WebDriver dr;
public LoginPage(WebDriver dr)
{
super(dr);
this.dr=dr;
//PageFactory.initElements(dr, this);
}
@FindBy(how=How.ID,using="Bugzilla_login")
WebElement weUserName;
@FindBy(id="Bugzilla_password")
WebElement wepassword;
@FindBy(how=How.XPATH,using="//input[@id='log_in']")
WebElement weLoginBtn;
}