在java中返回两个类的方法

Mic*_*hal 1 java testing methods selenium

我有两节课:

public class UnoLoginPageUi {
    public final Input username = new Input("id=username");
    public final Input password = new Input("id=password");
    public final Button loginButton = new Button("name=login");
}
Run Code Online (Sandbox Code Playgroud)

public class DuoLoginPageUi {
    public final Input username = new Input("id=usernameField");
    public final Input password = new Input("id=passwordField");
    public final Button loginButton = new Button("id=submitButton");
}
Run Code Online (Sandbox Code Playgroud)

在一个共同的课堂上,我想做出类似的东西:

public void loginUsingUsernameAndPassword(String username, String password, String pageType) {
    getUi(pageType).username.waitForToBeDisplayed();
    getUi(pageType).username.setValue(username);
    getUi(pageType).password.setValue(password);
    getUi(pageType).loginButton.click();
}
Run Code Online (Sandbox Code Playgroud)

其中getUi()是一个gas参数pageType(即UNO或DUO)的方法.

private Class getUi(String pageType) {
    if (pageType.equals("UNO")) {
        return new DuoLoginPageUi();
    }
    else if (pageType.equals("DUO")) {
        return new UnoLoginPageUi;
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)

然而它不起作用,因为这个方法需要在这两个页面的类型选择器 - 如何处理?

Raz*_*van 5

您可以创建一个名为LoginPageUi的接口.让你的UnoLoginPageUi和DuoLoginPageUi实现该接口.

然后你的getUi方法将是private LoginPageUi getUi(String pageType).

偏离主题:我建议实现枚举而不是String pageType.