Failure Sharing

Bootup your energy with sharing failure.

@FindByを使って、簡単にWebElementをセットする。

FindByアノテーションを使うことで、こんな長いコードが

 public void setUserName(String username) {
        driver.findElement(By.id("MainContent_txtUserName")).sendKeys(username);
    }
    
    public void setPassword(String password) {
        driver.findElement(By.id("MainContent_txtPassword")).sendKeys(password);
    }
    
    public void clickSubmit() {
        driver.findElement(By.id("MainContent_btnLogin")).click();
    }

こういう風にスッキリになります。

 // Define web elements at class level
    @FindBy(id="MainContent_txtUserName")
    private WebElement usernameField;
    
    @FindBy(id="MainContent_txtPassword")
    private WebElement passwordField;
    
    @FindBy(id="MainContent_btnLogin")
    private WebElement submitButton;

これを使う時忘れちゃダメなのは、 コンストラクターとかの中で、必ずinitElementをやらせる必要があります。

 public LoginPageFactory(WebDriver driver) {
        this.driver = driver;
        // Quick start to set values
        PageFactory.initElements(driver, this);
    }

Commit

github.com