Groovy 参数化Geb模块在特定情况下不工作
我正在编写一个Geb测试,我想使用一个参数化的模块,但我似乎无法让它工作。 这是我的页面对象:Groovy 参数化Geb模块在特定情况下不工作,groovy,geb,Groovy,Geb,我正在编写一个Geb测试,我想使用一个参数化的模块,但我似乎无法让它工作。 这是我的页面对象: class CreateNewOrganizationPage extends Page { static url = "/organization/create" static content = { organizationTypes { module MultiSelect, id: "orgTypeIds" } } } 这是我
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。我看不到日期选择器是如何发挥作用的,它是什么以及它是如何解决问题的。你能详细说明一下吗?对我来说,原来的问题是缺少信息,可能会对解决方案有所帮助