【发布时间】:2019-02-04 01:20:51
【问题描述】:
我正在创建一个页面对象框架,同时通过它的概念,我知道页面工厂(@FindBy)与页面对象一起使用。 但是,当我可以在 Page Object 类中将 driver.findElement 与我的定位器一起使用时,我无法理解为什么需要使用 @FindBy。例如:
//带有@FindBy 的代码
public class LoginPage{
public LoginPage(WebDriver driver)){
PageFactory.initElements(driver,this);
}
public WebElement q;
}
public class TestCase{
WebDriver driver=new FirefoxDriver();
LoginPage logPage=new LoginPage(driver);
public void enterUserName(){
logPage.q.sendKeys("username");
}
}
//带有 driver.findElement 的代码
public class LoginPage{
public WebElement q=driver.findElement(By.id('q'));
}
public class TestCase{
WebDriver driver=new FirefoxDriver();
LoginPage logPage=new LoginPage();
public void enterUsername(){
logPage.q.sendKeys("username");
}
}
这两个代码之间有什么区别,因为这两个代码本质上都在做同样的事情?
【问题讨论】:
标签: selenium-webdriver pageobjects page-factory