51Testing软件测试论坛
标题:
selenium的pagefactoy.initElements(driver, this)是干嘛用的?
[打印本页]
作者:
小丫头amy
时间:
2016-4-26 11:53
标题:
selenium的pagefactoy.initElements(driver, this)是干嘛用的?
不明白pagefactory是干吗用的?请高手们指导
作者:
kexinqw11
时间:
2016-4-26 14:47
一个封装好的类,里面放的都是页面元素
作者:
wwwqjpcom
时间:
2016-4-30 17:15
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
以上是个人理解,希望有帮助
作者:
灰灰渣渣
时间:
2016-5-1 21:50
楼主可以直接看方法initElements 里面实现了什么 就知道怎么回事了
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2