在页面 Class 中,操作方法应该将 return 类型作为 class 名称,还是使用 void return 类型是一个好习惯?

In Page Class should the action methods have return type as class name or using void return type is a good practice?

public class HomePage {

    public HomePage clickAboutUs1Link() {
        aboutUs1.click();
        return this;
    }

    public void clickAboutUs1Link() {
        aboutUs1.click();    
    }
}

我将在我的测试中调用操作方法 Class。那么,在将页面对象模型与 Selenium webdriver 结合使用时,使用其中任何一个比另一个有什么优势或劣势?

如果你有更多的方法,这个问题会更清楚。考虑那些 类

public class HomePage {

    public AboutUsPage clickAboutUsLinkAndGoToAboutUsPage() {
        aboutUs1.click();
        return new AboutUsPage();
    }   

    public HomePage typeToField() {
        aboutUs1.click();
        return this;
    }

    public HomePage clickOnChecbox() {
        aboutUs1.click();
        return this;
    }
}

class AboutUsPage {

    public boolean isAboutUsPageDisplayed() {
        return someElement.isDisplayed();
    }
}

现在您可以在测试中使用方法链接来创建流

public class TestAboutUsLink {

    boolean isDisplayed =
    new HomePage()
        .typeToField()
        .clickOnChecbox()
        .clickAboutUsLinkAndGoToAboutUsPage()
        .isAboutUsPageDisplayed();

    assertTrue(isDisplayed);
}

如果每个方法都没有 return 任何东西

public class TestAboutUsLink {

    HomePage homePage = new HomePage();
    homePage.typeToField();
    homePage.clickOnChecbox();
    homePage.clickAboutUsLinkAndGoToAboutUsPage()

    AboutUsPage aboutUsPage = new AboutUsPage(); 
    boolean isDisplayed = aboutUsPage.isAboutUsPageDisplayed();

    assertTrue(isDisplayed);
}

这是主观问题,但我发现使用隐式页面对象创建(就测试而言)进行测试流程比将其分解成多个部分更清晰。