|
pagefactory 是Webdriver为了支持PageObject(页面对象)模式,实现的一个类。
比如下面我们定义一个页面类:
public class GoogleSearchPage {
@FindBy(how = How.NAME, using = "q")
private WebElement searchBox;
public void searchFor(String text) {
searchBox.sendKeys(text);
searchBox.submit();
}
}
这里使用PageFactory,会自动初始化元素
GoogleSearchPage page = PageFactory.initElements(driver, GoogleSearchPage.class);
然后page.searchFor("test") 就可以直接用了。里面的searchBox这个元素已经完成了初始化。
再来看看不用PageFactory的例子。
public class GoogleSearchPage {
private WebDriver driver;
private WebElement searchBox;
public GoogleSearchPage(Webdriver driver){
this.driver = driver;
searchBox = driver.findElement(By.name("q"))
}
public void searchFor(String text) {
searchBox.sendKeys(text);
searchBox.submit();
}
}
然后
GoogleSearchPage page = new GoogleSearchPage(driver); 元素的初始化主动在页面对象的构造方法里完成初始化。
然后page.searchFor("test") 。
或者也可以在searchFor的方法里直接driver.findElement(By.name("q")),先初始化了searchBox
以上是个人理解,希望有帮助 |
|