Intellij:Geb 页面对象模式导航
Intellij : Geb page object pattern navigation
在 IntelliJ 中开发 Geb 脚本时,很难导航到页面对象方法,因此每次都需要打开该页面并搜索方法。
例如:
Class LoginPage extends Page {
static at = { waitFor("slow") { title == "Login Page" }}
static content = {
txtUsername {$("#txtUserName")}
txtPassword {$("#pwd")}
btnLogin (required:false) {$("#Login")}
}
def login(String userName, String pwd){
// ...
}
}
class LoginSpec extends GebSpec {
def "verify logic scenario" {
given: 'Username and Password'
def username = "abc"
def password = "jdaafafjadfgajffaghfg"
when: 'Fire Login URL'
to LoginPage
and: 'Enter Valid username,password and click on Login button'
login(username, password)
then: 'It should successfully and redirect to homepage'
at HomePage
}
// ...
}
这里不容易一键导航到登录方式
我们是否有任何插件或设置来简化此导航?
您可以将光标放在页面 class 名称上,然后只需按 Ctrl-B
或使用 Ctrl-LeftMouse
即可到达那里。至于更容易的导航和代码完成,我建议将 to MyPage
的结果分配给一个变量,然后使用该变量调用页面方法,例如
class LoginSpec extends GebSpec {
def "verify logic scenario" {
given: "user name and password"
def username = "abc"
def password = "jdaafafjadfgajffaghfg"
when: "opening login page"
def loginPage = to LoginPage
and: "logging it with valid credentials"
loginPage.login(username, password)
then: "after successful login the user gets redirected to the homepage"
at HomePage
}
}
现在 Ctrl-B
和 Ctrl-LeftMouse
也应该适用于您的方法调用和页面元素引用,例如 loginPage.txtUsername
.
在 IntelliJ 中开发 Geb 脚本时,很难导航到页面对象方法,因此每次都需要打开该页面并搜索方法。
例如:
Class LoginPage extends Page {
static at = { waitFor("slow") { title == "Login Page" }}
static content = {
txtUsername {$("#txtUserName")}
txtPassword {$("#pwd")}
btnLogin (required:false) {$("#Login")}
}
def login(String userName, String pwd){
// ...
}
}
class LoginSpec extends GebSpec {
def "verify logic scenario" {
given: 'Username and Password'
def username = "abc"
def password = "jdaafafjadfgajffaghfg"
when: 'Fire Login URL'
to LoginPage
and: 'Enter Valid username,password and click on Login button'
login(username, password)
then: 'It should successfully and redirect to homepage'
at HomePage
}
// ...
}
这里不容易一键导航到登录方式
我们是否有任何插件或设置来简化此导航?
您可以将光标放在页面 class 名称上,然后只需按 Ctrl-B
或使用 Ctrl-LeftMouse
即可到达那里。至于更容易的导航和代码完成,我建议将 to MyPage
的结果分配给一个变量,然后使用该变量调用页面方法,例如
class LoginSpec extends GebSpec {
def "verify logic scenario" {
given: "user name and password"
def username = "abc"
def password = "jdaafafjadfgajffaghfg"
when: "opening login page"
def loginPage = to LoginPage
and: "logging it with valid credentials"
loginPage.login(username, password)
then: "after successful login the user gets redirected to the homepage"
at HomePage
}
}
现在 Ctrl-B
和 Ctrl-LeftMouse
也应该适用于您的方法调用和页面元素引用,例如 loginPage.txtUsername
.