0

ページオブジェクトのフレームワークを作っているうちに、その概念を調べていると、ページファクトリ(@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");
}

}

両方のコードが本質的に同じことをしているので、ここにある両方のコードの違いは何ですか?

4

1 に答える 1