问题描述
在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
}
// ...
}
我们有任何插件或设置可以简化此导航吗?
解决方法
您可以将光标放在页面类名称上,只需按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
。