2016-02-05 51 views
1

我有一个页面上重复表格结构,它看起来像这样的模块中:盖布/斯波克:设置(必需:false)页面内容无法正常工作

<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> 

我在盖布创造了一个模块对于重复的内容,它看起来像这样造型:

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: [email protected], args: [5], value: null)' is not present 

既然我已定义的内容不是必须的,我希望能够获取所有的细胞和那些不包含输入字段的字段为空或“EmptyNavigator”。我正在使用Geb 0.12.2和Spock 1.0。

我错过了什么?

+0

我认为你的问题是,你试图访问不存在的数组的第五个元素!就像一个indexOutOfBounds异常...所需:false只会在5.单元格在那里但没有输入元素时才起作用。 –

+1

你是对的。由于某种奇怪的原因,表中有一排与其他结构不同,即第5个单元格不存在,正如你猜测的那样。 thnx指向我在正确的方向! 请提供您的评论作为回答,我会将其标记为正确。还有一个问题:我能否更改“inputField”的内容定义来处理该异常,例如例如: 'inputField(required:false){cell(5)。$(“input”)?:“N/A”}' – nils1k

回答

1

我认为你的问题是,你试图访问不存在的数组的第五个元素!就像一个indexOutOfBounds异常...所需:false只会在5.单元格在那里但没有输入元素时才起作用。