我正在创建一个页面对象框架,同时了解它的概念,我知道页面工厂(@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");
}
}
这里的两个代码之间有什么区别,因为这两个代码基本上都在做同样的事情?