Jam*_*mes 1 selenium pageobjects page-factory
通过阅读SeleniumHQ的pageobject文档,他们指定了从不导航到其他页面的方法返回“ this”的示例。我的问题是为什么?
我以为页面对象的状态可能是一个原因,但是页面本身(实际的UI页面)可能会更改状态或刷新,但页面对象本身不会。Page Factory及其@FindBy批注已经确保了每次调用WebElement时都会找到它,因此在这种情况下元素的状态似乎无关紧要。
考虑他们的例子
public LoginPage typeUsername(String username) {
driver.findElement(usernameLocator).sendKeys(username);
return this;
}
public LoginPage typePassword(String password) {
driver.findElement(passwordLocator).sendKeys(password);
return this;
}
public HomePage submitLogin() {
driver.findElement(loginButtonLocator).submit();
return new HomePage(driver);
}
Run Code Online (Sandbox Code Playgroud)
现在假设我们已经创建了页面对象create as page。如果您未返回任何内容,则您的代码会想要
page.typeUsername("tarun");
page.typePassword("lalwani");
HomePage newPage = page.submitLogin()
Run Code Online (Sandbox Code Playgroud)
但是,当您返回此值时,它允许您进行方法链接。所以我可以像下面这样使用
HomePage newPage = page.typeUsername("tarun").typePassword("lalwani").submitLogin()
Run Code Online (Sandbox Code Playgroud)
如您所见,IDE intellisense可以节省一些编码工作,并且更加优雅
| 归档时间: |
|
| 查看次数: |
981 次 |
| 最近记录: |