在 geb 模块中查找直接子代
Finding direct children in a geb module
我正在尝试编写 geb
模块来处理 div 标签的行和列,如下所示:
<div class="container">
<div class="row">
<div class="col-xs-12">...</div>
<div class="col-xs-12">...</div>
</div>
<div class="row">
...
<div class="row">...</div>
...
</div>
</div>
并拥有 geb
个模块:
class GridRowModule extends Module {
static content = {
columns { $("div", 'class': startsWith('col-')) }
}
}
class GridLayoutModule extends Module {
static content = {
rows { index -> moduleList GridRowModule, $(".row"), index }
}
}
class ContainerModule extends Module {
static content = {
container { module GridLayoutModule, $(".container") }
}
}
但是行 $(".row")
的 nagivator 递归地查找所有行。如何将搜索限制在一级?
使用 css 选择器,我想写 $(".container > .row")
但后来我打破了一般的模块方法。我能以某种方式从模块内做到这一点吗?一种访问父 css 选择器的方法?
或者 geb
中还有其他方法可以轻松做到这一点吗?
children(".row")
而不是 $(".row")
解决了我的问题!所以解决方案是:
class GridRowModule extends Module {
static content = {
columns { children("div", 'class': startsWith('col-')) }
}
}
class GridLayoutModule extends Module {
static content = {
rows { index -> moduleList GridRowModule, children(".row"), index }
}
}
class ContainerModule extends Module {
static content = {
container { module GridLayoutModule, $(".container") }
}
}
我正在尝试编写 geb
模块来处理 div 标签的行和列,如下所示:
<div class="container">
<div class="row">
<div class="col-xs-12">...</div>
<div class="col-xs-12">...</div>
</div>
<div class="row">
...
<div class="row">...</div>
...
</div>
</div>
并拥有 geb
个模块:
class GridRowModule extends Module {
static content = {
columns { $("div", 'class': startsWith('col-')) }
}
}
class GridLayoutModule extends Module {
static content = {
rows { index -> moduleList GridRowModule, $(".row"), index }
}
}
class ContainerModule extends Module {
static content = {
container { module GridLayoutModule, $(".container") }
}
}
但是行 $(".row")
的 nagivator 递归地查找所有行。如何将搜索限制在一级?
使用 css 选择器,我想写 $(".container > .row")
但后来我打破了一般的模块方法。我能以某种方式从模块内做到这一点吗?一种访问父 css 选择器的方法?
或者 geb
中还有其他方法可以轻松做到这一点吗?
children(".row")
而不是 $(".row")
解决了我的问题!所以解决方案是:
class GridRowModule extends Module {
static content = {
columns { children("div", 'class': startsWith('col-')) }
}
}
class GridLayoutModule extends Module {
static content = {
rows { index -> moduleList GridRowModule, children(".row"), index }
}
}
class ContainerModule extends Module {
static content = {
container { module GridLayoutModule, $(".container") }
}
}