Groovy 我无法从geb.Page访问主页继承的静态内容

Groovy 我无法从geb.Page访问主页继承的静态内容,groovy,gradle,automation,testng,geb,Groovy,Gradle,Automation,Testng,Geb,我无法继续,我是geb automation的新手,我试图访问geb.page中的元素,但我遇到了一个错误,我使用的是Intellij-like ide,请有人帮助我好吗?我的类结构和错误消息如下: 页面类 import geb.Page class HomePage extends Page{ static url = "http://www.websitetest.com" static at={ assert $("h1").text() == "Tes

我无法继续,我是geb automation的新手,我试图访问geb.page中的元素,但我遇到了一个错误,我使用的是Intellij-like ide,请有人帮助我好吗?我的类结构和错误消息如下:

页面

import geb.Page

class HomePage extends Page{
    static url = "http://www.websitetest.com"

    static at={
        assert $("h1").text() == "Test website speed and performance"
    }

    static content ={
        loginLink { $("a", text: "login")}
    }   
}
测试

void test(){
    Browser.drive(){
        to HomePage
        loginLink.click()
    }
}
日志/跟踪

 [TestNG] Running:
   C:\Users\name.lastname\.IdeaIC14\system\temp-testng-customsuite.xml

 groovy.lang.MissingPropertyException: No such property: loginLink for class: FirstTest
    at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:50)
    at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:49)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:231)
    at FirstTest$_test_closure1.doCall(FirstTest.groovy:14)
    at FirstTest$_test_closure1.doCall(FirstTest.groovy)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324)
    at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:278)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016)
    at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:39)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
    at geb.Browser.drive(Browser.groovy:701)
    at geb.Browser$drive$2.callStatic(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallStatic(CallSiteArray.java:53)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:157)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:169)
    at geb.Browser.drive(Browser.groovy:671)
    at geb.Browser$drive.call(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
    at FirstTest.test(FirstTest.groovy:12)

 ===============================================
 Custom suite
 Total tests run: 1, Failures: 1, Skips: 0
 ===============================================


 Process finished with exit code 0

您必须使用关键字“at”从内容块获取声明,并使用其中的元素。试试这个:

void test(){
Browser.drive(){
    to HomePage
    at HomePage
    loginLink.click()
    }
}

有趣的是,这应该像您编写的那样工作,但是您可以尝试显式地编写
page.loginLink.click()
而不是您现在所做的吗?我尝试了,但不起作用,我尝试了不同的方法,但没有,包括我做了一个导航模块,但当我这样做时:静态内容={navBcontent={navb{module NavigationModule}}“module”无法解决,而且我无法在脚本中使用navBar,实际上我做了很多事情,但我不知道发生了什么,可能我需要添加另一个库,或者可能项目的设置错误。lol我发现了问题,文本的值是“Login”而不是“Login”,谢谢@cfrick