Java 在页面工厂设计模式中返回对象的用例是什么?
我已经在网上浏览了相关信息,但没有运气。下面给出了示例代码:Java 在页面工厂设计模式中返回对象的用例是什么?,java,selenium,pageobjects,page-factory,Java,Selenium,Pageobjects,Page Factory,我已经在网上浏览了相关信息,但没有运气。下面给出了示例代码: public class HomePage { @FindBy(id = "fname") WebElement name; @FindBy(id = "email") WebElement email; @FindBy(id = "password") WebElement password; @FindBy(id = "passwordConf") WebEl
public class HomePage
{
@FindBy(id = "fname")
WebElement name;
@FindBy(id = "email")
WebElement email;
@FindBy(id = "password")
WebElement password;
@FindBy(id = "passwordConf")
WebElement confPassword;
public HomePage fillFormDetails(String firstname, String emailid)
{
name.sendKeys(firstname);
email.sendKeys(emailid);
return this;
}
public void fillPass(String pass)
{
password.sendKeys(pass);
}
}
我想知道为什么我们在调用fillFormDetails(stringfirstname,stringemailid)
方法时返回对象
我们可以使用哪些用例来管理我们的代码效率?当您想要使用方法链接时,将使用返回的对象
HomePage homePage = new HomePage();
homePage
.fillFormDetails(firstName, email)
.fillPass(pass);
作为旁注,更好的设计是将所有操作拆分为单独的方法,而不仅仅是其中的一部分
public HomePage fillFirstName(String firstName)
{
name.sendKeys(firstName);
return this;
}
public HomePage fillEmail(String email)
{
email.sendKeys(email);
return this;
}
public void fillPass(String pass)
{
password.sendKeys(pass);
}
在测试中
HomePage homePage = new HomePage();
homePage
.fillFirstName(firstName)
.fillEmail(email)
.fillPass(pass);
当您希望使用方法链接时,将使用返回的对象
HomePage homePage = new HomePage();
homePage
.fillFormDetails(firstName, email)
.fillPass(pass);
作为旁注,更好的设计是将所有操作拆分为单独的方法,而不仅仅是其中的一部分
public HomePage fillFirstName(String firstName)
{
name.sendKeys(firstName);
return this;
}
public HomePage fillEmail(String email)
{
email.sendKeys(email);
return this;
}
public void fillPass(String pass)
{
password.sendKeys(pass);
}
在测试中
HomePage homePage = new HomePage();
homePage
.fillFirstName(firstName)
.fillEmail(email)
.fillPass(pass);
这称为方法链接。 这里有更多。 假设在一个类中有三个方法来填写用户名、密码和最终提交表单 通常,您会创建页面的对象,并使用该对象分别调用它们。像这样的,
MethodChaining methodChaining = new MethodChaining();
methodChaining.fillUserName("username");
methodChaining.fillPassword("password");
methodChaining.submit();
但是,如果返回同一类this
的对象,则可以按照以下方式链接方法
有时很方便,而且看起来不错:)
现在,是否在自动化中使用它,完全取决于应用程序的人员和行为
如果您有一个严格的单流,那么多个流确实很难处理。这可能很好
对于多个流。假设在提交此表单时,您要么登录,要么停留在显示错误的同一页面上。现在要做到这一点,您必须在
Submit
函数中使用一些逻辑来处理这个问题。这有时会变得复杂,在您必须维护它时会产生问题。这称为方法链接。
这里有更多。
假设在一个类中有三个方法来填写用户名、密码和最终提交表单
通常,您会创建页面的对象,并使用该对象分别调用它们。像这样的,
MethodChaining methodChaining = new MethodChaining();
methodChaining.fillUserName("username");
methodChaining.fillPassword("password");
methodChaining.submit();
但是,如果返回同一类this
的对象,则可以按照以下方式链接方法
有时很方便,而且看起来不错:)
现在,是否在自动化中使用它,完全取决于应用程序的人员和行为
如果您有一个严格的单流,那么多个流确实很难处理。这可能很好
对于多个流。假设在提交此表单时,您要么登录,要么停留在显示错误的同一页面上。现在要做到这一点,您必须在Submit
函数中使用一些逻辑来处理这个问题。这有时会变得复杂,在您必须维护它时会产生问题