我正在开发一个基于pagefactory的框架。我之前使用过pagefactory.initements方法来从页面到页面进行初始化和移动。 Init方法基本上和说主页HP = new HomePage(driver);
的工作相同所以有必要在pagefactory中使用init方法吗? 如果我们不使用它而不是使用new来创建页面,我们会丢失一些东西。
答案 0 :(得分:1)
如果您使用带有注释的Java PageFactory,那么
PageFactory.initElements(driver, My.class)
命令解析注释并设置Java代理类。如果你没有.initElements()
你的班级中没有任何WebElements会为他们分配定位器,他们都将为空。
如果您只是想要新建一个页面,可以将.initElements()
放在构造函数中,例如:
public class MyPage {
public MyPage(WebDriver driver) throws Exception {
PageFactory.initElements(driver, this);
}
}