Groovy 我无法从geb.Page访问主页继承的静态内容
我无法继续,我是geb automation的新手,我试图访问geb.page中的元素,但我遇到了一个错误,我使用的是Intellij-like ide,请有人帮助我好吗?我的类结构和错误消息如下: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
页面
类
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