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-BCtrl-LeftMouse 也应该适用于您的方法调用和页面元素引用,例如 loginPage.txtUsername.