我试图编写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
还有其他办法可以轻松完成吗?
答案 0 :(得分:2)
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") }
}
}