Groovy 参数化Geb模块在特定情况下不工作

Groovy 参数化Geb模块在特定情况下不工作,groovy,geb,Groovy,Geb,我正在编写一个Geb测试,我想使用一个参数化的模块,但我似乎无法让它工作。 这是我的页面对象: class CreateNewOrganizationPage extends Page { static url = "/organization/create" static content = { organizationTypes { module MultiSelect, id: "orgTypeIds" } } } 这是我

我正在编写一个Geb测试,我想使用一个参数化的模块,但我似乎无法让它工作。 这是我的页面对象:

class CreateNewOrganizationPage extends Page {

    static url = "/organization/create"

    static content = {
        organizationTypes { module MultiSelect, id: "orgTypeIds" }           
    }
}
这是我的模块:

class MultiSelect extends Module {
    def id

    static content = {
        caret {  $("#" + id + "-caret") }
    }
}
这就是我在测试中使用它的方式:

when:
to CreateNewOrganizationPage
organizationTypes.caret.click()
这似乎与本网站的情况相同:

我做错了什么?因为我在stacktrace中得到以下异常:

groovy.lang.MissingMethodException: No signature of method: geb.content.PageContentTemplateFactoryDelegate.module() is applicable for argument types: (java.util.LinkedHashMap, java.lang.Class) values: [[id:orgTypeIds], class pages.management.MultiSelect]
Possible solutions: module(java.lang.Class), module(java.util.Map, java.lang.Class), module(geb.Module), module(java.lang.Class, java.lang.Object), module(java.util.Map, java.lang.Class, geb.navigator.Navigator), dump()

    at geb.content.PageContentTemplateFactoryDelegate.module(PageContentTemplateFactoryDelegate.groovy:49)
    at pages.management.CreateNewOrganizationPage._clinit__closure1$_closure3(CreateNewOrganizationPage.groovy:43)
    at pages.management.CreateNewOrganizationPage._clinit__closure1$_closure3(CreateNewOrganizationPage.groovy)
    at geb.content.PageContentTemplate.invokeFactory(PageContentTemplate.groovy:97)
    at geb.content.PageContentTemplate.create_closure1(PageContentTemplate.groovy:59)
    at geb.content.PageContentTemplate.create_closure1(PageContentTemplate.groovy)
    at geb.content.PageContentTemplate.create(PageContentTemplate.groovy:82)
    at geb.content.PageContentTemplate.get(PageContentTemplate.groovy:54)
    at geb.content.DefaultPageContentSupport.getContent(DefaultPageContentSupport.groovy:42)
    at geb.content.PageContentSupport.propertyMissing(PageContentSupport.groovy:39)
    at geb.Page.propertyMissing(Page.groovy:112)
    at geb.Browser.propertyMissing(Browser.groovy:216)
    at geb.spock.GebSpec.propertyMissing(GebSpec.groovy:60)
    at ManagementSpec.create new organization(ManagementSpec.groovy:21)
编辑: 解决的问题:

specialDatePicker { module(new DatePicker(id: "someId")) }

现在它工作了

上述代码适用于geb版本
0.13.1
。您使用的是哪个版本的geb?我使用的是geb core 1.1.1、groovy 2.4.9和selenium 3.0.1,尽管我认为这与实际情况无关。我设法让它工作起来了!我将编辑OP。我看不到
日期选择器是如何发挥作用的,它是什么以及它是如何解决问题的。你能详细说明一下吗?对我来说,原来的问题是缺少信息,可能会对解决方案有所帮助