在 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") }
    }

}