我在页面上有一个重复的表结构,如下所示:
<tr>
<td>some text</td>
<td>some integer</td>
<td>empty</td>
<td>some text</td>
<td>empty</td>
<td>contains an input field for the most part, but sometimes it may be blank/radio button/checkbox/etc.</td>
</tr>
我在Geb中创建了一个模块,用于对重复内容进行建模,如下所示:
class RowModule extends Module {
static content = {
cell { $("td", it) }
description { cell(0).text() }
rubrikNum { cell(1).text().toInteger() }
preDefinedValue { cell(3).text() }
inputField(required: false) { cell(5).$("input") }
}
}
我已经验证我能够使用上面的代码获取包含输入字段的所有行。但是,每当我在最后一个“td”中遇到非输入字段时,我会收到以下错误:
geb.error.RequiredPageContentNotPresent: The required page content 'cell - SimplePageContent (owner: modules.RowModule@6fec88c4, args: [5], value: null)' is not present
由于我已经将内容定义为不需要,我希望能够将所有单元格和不包含输入字段的单元格取为null或“EmptyNavigator”。我使用的是Geb 0.12.2和Spock 1.0。
我错过了什么?
答案 0 :(得分:1)
我认为你的问题是,你试图访问不存在的数组的第5个元素!类似于indexOutOfBounds异常......所需:false仅在5. cell存在但没有输入元素的情况下才有效。