Selenium POP - 登录后移动到主页面,新的Object Pattern

问题描述 投票:-1回答:1

登录后,当涉及到POP和主页时,我遇到了一个概念性问题。我有LoginPageTest,我在其中注册了一个新用户并登录,它将我重定向到主页面。我如何“重定向”到?

例如当MainPageTest断言完成时,registerNewUser()在selenium优雅,所以我可以继续测试主页?

java maven selenium pop
1个回答
0
投票

由于我们不知道确切的页面,我会尝试抽象地描述它。

首先,您可以创建一个LoginPage页面对象,其中包含使用login注册新用户的方法,并将用户登录到应用程序。

我们假设这个Page对象看起来像这样:

public class LoginPage {
    private WebDriver driver;

    @FindBy(id = "registerBtn")
    private WebElement registerButton;

    @FindBy(id = "username")
    private WebElement usernameTextField;

    @FindBy(id = "password")
    private WebElement passwordTextField;

    @FindBy(id = "formSubmit")
    private WebElement submitButton;

    public LoginPage(WebDriver driver) {
        this.driver = driver;
        PageFactory.initElements(driver, this);
    }

}

我们创建了一个在此页面对象中注册用户的方法

public void registerUser(String login, String password) {
    registerButton.click();
    usernameTextField.sendKeys(login);
    passwordTextField.sendKeys(password);
    submitButton.click();
}

现在,让我们为Home / Main页面创建一个PageObject。

public class HomePage {

    @FindBy(id = "navigation")
    private WebElement mainMenu;

    public HomePage(WebDriver driver) {
        PageFactory.initElements(driver, this);
    }

    public void navigateTo(String linkText) {
        mainMenu.findElement(By.linkText(linkText)).click();
    }
}

现在,e有2个PageObjects,我们想在用户注册后返回HomePage页面对象。

为了做到这一点,我们只需要修改registerUser方法来返回主页。

像这样:

public HomePage registerUser(String login, String password) {
    registerButton.click();
    usernameTextField.sendKeys(login);
    passwordTextField.sendKeys(password);
    submitButton.click();
    return new HomePage(driver);
}

现在,我们可以在测试中使用它。

例:

@Test
public void test() {
    LoginPage loginPage = new LoginPage();
    HomePage homePage = loginPage.registerUser("Fenio", "ItsASecret");
    homePage.navigateTo("Contact Us");
}

或者我们可以使用链接方法:

public void test() {
    new LoginPage()
        .registerUser("Fenio", "ItsASecret")
        .navigateTo("Contact Us");
}
© www.soinside.com 2019 - 2024. All rights reserved.