我是 Groovy 编程的新手,我目前正在尝试在 IntelliJ IDE 上使用 Geb 和 Spock 测试 Web 应用程序。我想先尝试一个简单的脚本而不使用 Spock,这就是为什么我使用一个简单的主类来创建浏览器等并运行一些基本测试(理解:验证我是否在正确的页面上)。
一切都运行良好,但我有很多页面类与我的主类、模块等融合在同一个文件夹中。所以我决定使用包来清理。这是我的项目文件夹:
源文件
- -主要的
------时髦
- - - - - - 应用程序
- - - - - - - -模块
---------------页面
---------------模板
模块文件夹包含在我的页面中使用的模块 pages 文件夹包含浏览器将浏览的实际页面模板文件夹包含一些超级页面类,用于不通过页面实例重复内容。
我的带有 main 方法的类 Main 在 app 文件夹中。
因此,我重新运行了以前运行良好的代码(当每个源文件都在同一文件夹中时),并且在线程“main”groovy.lang.MissingPropertyException: No such property: homePage for class: app 中出现错误异常。 pages.loginPage
似乎是问题的那一行(在 loginPage.groovy 中):
loginButton(to: homePage){$("input", id: "loginButton_submit")}
这是在static content
的loginPage
类。
我不明白为什么会出现此错误,因为 loginPage 和 homePage 在同一个包中。我想我不明白这里的一些时髦的东西或编译机制。
这是我收到的错误消息:
The package is the correct one both in homePage and loginPage (they are in the same one) so the class seems to be resolved. But when running, `homePage` is considered as a static property of `loginPage`I suppose and as it is not declared in `loginPage` properties it cannot work. Here is my log :
Exception in thread "main" groovy.lang.MissingPropertyException: No such property: homePage for class: app.pages.loginPage at groovy.lang.MetaClassImpl.invokeStaticMissingProperty(MetaClassImpl.java:1004) at groovy.lang.MetaClassImpl.getProperty(MetaClassImpl.java:1859) at groovy.lang.MetaClassImpl.getProperty(MetaClassImpl.java:1835) at groovy.lang.MetaClassImpl.getProperty(MetaClassImpl.java:3735) at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:175) at groovy.lang.Closure.getPropertyTryThese(Closure.java:312) at groovy.lang.Closure.getPropertyOwnerFirst(Closure.java:306) at groovy.lang.Closure.getProperty(Closure.java:295) at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:50) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:307) at app.pages.loginPage$__clinit__closure4.doCall(loginPage.groovy:28)...
你有什么想法 ?
当您将主页从“main”移动到“pages”时,检查您的主页所属的包是否已更新:
package app.pages
class homePage extends Page {
}
如果包不正确或未在 homePage 类上声明,您的 loginPage 将无法解析它
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句