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

标签 groovy gradle automation testng geb

我不能继续,我是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/

相关文章:

groovy - 在 ArrayList 上与 groovy 对象相交

java - Spring Boot HTTP GET 自定义验证

java - Intellij gradle 5.0 刷新/同步警告和根任务丢失

selenium - 如何通过命令行停止appium服务器?

Windows命令行将字符串传递给groovy

Groovy:使用 GroovyInterceptable 的 println 与 System.out.println

gradle - Gradle TestNG Task未创建测试输出文件夹

android - Gradle 警告 : variant. getOutputFile() 和 variant.setOutputFile() 已弃用

java - @Test方法不等待selenium代码完成其执行

linux - #include 在 Expect 脚本中