我不能继续,我是geb自动化的新手,我试图访问geb.page中的元素,但是我遇到错误,我使用idej像ide一样,请有人能帮我吗?接下来是我的类结构和错误消息:Page
类
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()
}
}
关于groovy - 我无法从geb.Page访问主页继承的静态内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27383923/