gpt4 book ai didi

intellij-idea - Geb/Groovy : Page object class considered as a property in another when refering to with "to" option

转载 作者:行者123 更新时间:2023-12-03 05:57:42 25 4
gpt4 key购买 nike

我是 Groovy 编程的新手,目前正在尝试在 IntelliJ IDE 上使用 Geb 和 Spock 测试 Web 应用程序。我想先尝试一个简单的脚本而不使用 Spock,这就是为什么我使用一个简单的主类来创建浏览器等并运行一些基本测试(理解:验证我是否在正确的页面)。

一切都运行良好,但我有很多页面类与我的主类、模块等在同一个文件夹中融化。所以我决定用包来清理。这是我的项目文件夹:

源代码

- -主要的

------时髦的

- - - - - - 应用程序

- - - - - - - -模块

---------------页数

---------------模板

module 文件夹包含我的页面中使用的模块
pages 文件夹包含浏览器将浏览的实际页面
templates 文件夹包含一些 super 页面类,用于不通过页面实例重复内容。

我的带有 main 方法的 Main 类位于 app 文件夹中。

所以我重新运行以前运行良好的代码(当每个源文件都在同一个文件夹中时),我在线程“main”groovy.lang.MissingPropertyException 中得到一个错误异常:没有这样的属性:类的主页:应用程序。 pages.loginPage

似乎是问题所在的行是这一行(在 loginPage.groovy 中):
loginButton(to: homePage){$("input", id: "loginButton_submit")}
static content 中的 loginPage类(class)。

我不明白为什么会出现此错误,因为 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 将无法解决它

关于intellij-idea - Geb/Groovy : Page object class considered as a property in another when refering to with "to" option,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43799725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com