Geb 表单控制快捷方式 - howto
Geb form-control shortcuts - howto
在这里遵循 Geb 指南:book of geb 似乎应该可以轻松访问表单元素,例如文本输入字段等 - 只需使用名称即可。
但是这些例子没有提到一个完整的例子,我似乎无法让它工作。这个结构应该是什么样的?
想象一个具有特定基础的模块 - 它自身的形式 - 以及内容部分中要与之交互的表单元素列表(通过名称指定):
class MyFormModule extends Module {
static base = { $('form#myForm') }
static content = {
mytextfield { textfield.mytextfield }
}
}
这是受书中"geb"例子的启发。它显然不起作用,因为 "textfield" 不是有效的 属性.
像上面那样做有没有捷径? - 我需要能够在名称中包含点。 (我知道我可以写一个选择器 - 但这是一个关于 "form-control shortcuts" 的问题)...
假设您希望您的内容定义为 return textarea
元素而不是它的值,那么您需要使用方法而不是 属性 并且假设您的元素具有名称中的点您必须引用方法名称,因为方法名称调用包含一个点:
class MyFormModule extends Module {
static base = { $('form#myForm') }
static content = {
mytextfield { "textfield.mytextfield"() }
}
}
考虑到 Geb 也有用于设置和访问定义为页面和模块内容的元素值的快捷方式(在您链接到的部分末尾描述)和以下页面 class:
class MyPage extends Page {
static content = {
myform { module(MyFormModule) }
}
}
然后您可以执行以下操作:
go MyPage
form.mytextfield = "foo"
assert form.mytextfield == "foo"
其次,您可以使用表单控件快捷方式直接在模块上访问和设置名为 textfield.mytextfield
的元素的值(不使用模块的内容定义):
go MyPage
form."textarea.mytextfield" = "foo"
assert form."textarea.mytextfield" == "foo"
在这里遵循 Geb 指南:book of geb 似乎应该可以轻松访问表单元素,例如文本输入字段等 - 只需使用名称即可。
但是这些例子没有提到一个完整的例子,我似乎无法让它工作。这个结构应该是什么样的?
想象一个具有特定基础的模块 - 它自身的形式 - 以及内容部分中要与之交互的表单元素列表(通过名称指定):
class MyFormModule extends Module {
static base = { $('form#myForm') }
static content = {
mytextfield { textfield.mytextfield }
}
}
这是受书中"geb"例子的启发。它显然不起作用,因为 "textfield" 不是有效的 属性.
像上面那样做有没有捷径? - 我需要能够在名称中包含点。 (我知道我可以写一个选择器 - 但这是一个关于 "form-control shortcuts" 的问题)...
假设您希望您的内容定义为 return textarea
元素而不是它的值,那么您需要使用方法而不是 属性 并且假设您的元素具有名称中的点您必须引用方法名称,因为方法名称调用包含一个点:
class MyFormModule extends Module {
static base = { $('form#myForm') }
static content = {
mytextfield { "textfield.mytextfield"() }
}
}
考虑到 Geb 也有用于设置和访问定义为页面和模块内容的元素值的快捷方式(在您链接到的部分末尾描述)和以下页面 class:
class MyPage extends Page {
static content = {
myform { module(MyFormModule) }
}
}
然后您可以执行以下操作:
go MyPage
form.mytextfield = "foo"
assert form.mytextfield == "foo"
其次,您可以使用表单控件快捷方式直接在模块上访问和设置名为 textfield.mytextfield
的元素的值(不使用模块的内容定义):
go MyPage
form."textarea.mytextfield" = "foo"
assert form."textarea.mytextfield" == "foo"