2 回答
TA贡献1831条经验 获得超10个赞
在使用 PageFactory 框架的 POM 中,应该在 PageClasses 的构造函数中初始化 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条经验 获得超5个赞
对克里希纳答案的补充:
PageFactory.initElements(driver, this);
上面的代码可以移到基类和 LoginPage 中,你只需像这样在构造函数上传递 webdriver。
public class LoginPage extends Base {
public LoginPage(Webdriver driver) {
super(driver);
}
...
public class Base {
public Base(Webdriver driver) {
PageFactory.initElements(driver, this);
}
...
添加回答
举报