使用WebDriver和PageFactory,使用Java我们正在实现一个新的自动化项目,我们一直在试验各种创建PageObjects的方法。我们对一些不同的想法感到厌烦,并希望确保我们不会陷入困境。
如WebDriver文档中所述,最好是为PageFactory提供初始化的WebDriver,以及用于创建新PageObject的类模板吗?
driver.get(URL);
PageObject page = PageFactory.initElements(driver, PageObject.class);
// elsewhere
class PageObject {
private WebDriver driver;
public PageObject(WebDriver driver) {
this.driver = driver;
this.validateUrl();
}
public void validateUrl() throws Exception {
if (!driver.getUrl().equals(url)) {
throw new Exception("URL not valid");
}
}
}
但是,由于PageObject对自身了解很多,例如它的URL,我们是否可以让Page Object完成工作呢?
PageObject page = new PageObject(driver);
page.goToUrl();
// elsewhere
class PageObject {
private WebDriver driver;
private String url;
public PageObject(WebDriver driver) {
PageFactory.initElements(driver, this);
}
public void goToUrl() {
driver.get(url);
}
}
我想我没有看到使用PageFactory进行实例化而不仅仅是初始化的优势,但是我不想偏离架构师的标准设置,如果有原因的话。
由于