2 回答

TA貢獻1831條經(jīng)驗 獲得超10個贊
在使用 PageFactory 框架的 POM 中,應該在 PageClasses 的構(gòu)造函數(shù)中初始化 PageFactory。請在下面找到可能適用于您的情況的代碼片段。
public class LoginPage extends TestBase {
public LoginPage() {
PageFactory.initElements(driver, this);//Here driver is initialised in TestBase class and inherited in LoginPage class
}
//your code
@FindBy(id="listAccounts")
WebElement accountDropdown;
public void selectAccount(){
logger.info("Selecting Account");
implicitwait(10);
Select dropdown = new Select(accountDropdown);
logger.info("Drop down is multiple::"+ dropdown.isMultiple());
}
}

TA貢獻1900條經(jīng)驗 獲得超5個贊
對克里希納答案的補充:
PageFactory.initElements(driver, this);
上面的代碼可以移到基類和 LoginPage 中,你只需像這樣在構(gòu)造函數(shù)上傳遞 webdriver。
public class LoginPage extends Base {
public LoginPage(Webdriver driver) {
super(driver);
}
...
public class Base {
public Base(Webdriver driver) {
PageFactory.initElements(driver, this);
}
...
添加回答
舉報