return 页面工厂设计模式中的对象的用例是什么?
What could be the use case to return a object in Page Factory design pattern?
我已经通过互联网浏览以获取相关信息,但没有成功。示例代码如下:
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(String firstname, String emailid)
方法时返回对象?
我们可以使用哪些用例来管理我们的代码效率?
当你想使用方法链接时使用返回的对象
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);
这称为方法链接。
更多在这里。
https://en.wikipedia.org/wiki/Method_chaining#Java
假设您将三种方法合而为一class 来填写用户名、填写密码并最终提交表单。
通常您会创建页面的对象并使用该对象分别调用它们。像这样,
MethodChaining methodChaining = new MethodChaining();
methodChaining.fillUserName("username");
methodChaining.fillPassword("password");
methodChaining.submit();
然而,如果您 return 相同 class this
的对象,您可以按以下方式链接这些方法。
有时候方便,好看:)
public class MethodChaining {
public MethodChaining fillUserName(String username){
return this;
}
public MethodChaining fillPassword(String password){
return this;
}
public MethodChaining submit(){
return this;
}
public static void main(String args[]){
MethodChaining methodChaining = new MethodChaining();
methodChaining.fillUserName("abc")
.fillPassword("pass")
.submit();
}
}
现在是否在自动化中使用它完全取决于应用程序的人和行为。
严格的单流的话,多流真的很难搞定。这可能很好。
对于多流。假设当您提交此表单时,您要么登录,要么停留在显示错误的同一页面上。现在要做到这一点,您必须在 Submit
函数中使用一些逻辑来处理它。这有时会变得复杂,并在您必须维护它时产生问题。
我已经通过互联网浏览以获取相关信息,但没有成功。示例代码如下:
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(String firstname, String emailid)
方法时返回对象?
我们可以使用哪些用例来管理我们的代码效率?
当你想使用方法链接时使用返回的对象
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);
这称为方法链接。 更多在这里。 https://en.wikipedia.org/wiki/Method_chaining#Java
假设您将三种方法合而为一class 来填写用户名、填写密码并最终提交表单。
通常您会创建页面的对象并使用该对象分别调用它们。像这样,
MethodChaining methodChaining = new MethodChaining();
methodChaining.fillUserName("username");
methodChaining.fillPassword("password");
methodChaining.submit();
然而,如果您 return 相同 class this
的对象,您可以按以下方式链接这些方法。
有时候方便,好看:)
public class MethodChaining {
public MethodChaining fillUserName(String username){
return this;
}
public MethodChaining fillPassword(String password){
return this;
}
public MethodChaining submit(){
return this;
}
public static void main(String args[]){
MethodChaining methodChaining = new MethodChaining();
methodChaining.fillUserName("abc")
.fillPassword("pass")
.submit();
}
}
现在是否在自动化中使用它完全取决于应用程序的人和行为。
严格的单流的话,多流真的很难搞定。这可能很好。
对于多流。假设当您提交此表单时,您要么登录,要么停留在显示错误的同一页面上。现在要做到这一点,您必须在 Submit
函数中使用一些逻辑来处理它。这有时会变得复杂,并在您必须维护它时产生问题。