我有一个页面,它使用模块来定义表单内容。它通常可以使用,但在触发表单操作(按钮点击等)后需要不同的结果页面。
class CreateOrganisationPage extends Page {
static url = "#contact/organisation/create"
static at = {
form.displayed
}
static content = {
form(wait: true) {
module BusinessEntityFormModule, businessEntityName: 'organisation'
}
}
}
实现表单内容的模块包含一个UI控件saveCommand,它要求在提交后导航到页面ViewBusinessEntityPage
。为了使该模块在不同的测试中更加可重复使用,我希望将该页面作为参数提供。
这样做的最佳方法是什么?
class BusinessEntityFormModule extends Module {
String businessEntityName = "entity"
String idPrefix = "edit"
static content = {
self {
def id = "$idPrefix-" + StringUtils.capitalize(businessEntityName)
$("form", id: id)
}
saveCommand(to: ViewBusinessEntityPage) {
$('[data-command="save"]')
}
}
}
答案 0 :(得分:0)
只需在模块中定义目标页面的属性,并在内容定义中使用它:
class BusinessEntityFormModule extends Module {
Class postSavePage
static content = {
saveCommand(to: postSavePage) {
$('[data-command="save"]')
}
}
}
然后在将模块定义为页面的一部分时设置它:
class CreateOrganisationPage extends Page {
static content = {
form(wait: true) {
module BusinessEntityFormModule, businessEntityName: 'organisation', postSavePage: ViewBusinessEntityPage
}
}
}