如何检查元素是否存在并将其内容放在Geb / Groovy中的单个表达式中?

时间:2016-01-07 23:36:37

标签: groovy geb

我有一个表,如果处于编辑模式,元素可以是正常模式的文本,也可以是输入字段。

目前,我正在使用以下代码查找数据(请参阅firstName):

class UserRow extends Module {

    static content = {

        cell { i -> $("td", i) }

        id {
            cell(0)
        }

...
        firstName {

            if( cell(2).find("input").length ) {
                cell(2).find("input")
            }
            else {
                cell(2)
            }

        }

是不是可以在Groovy中的单个表达式中执行此操作?

1 个答案:

答案 0 :(得分:2)

蒂姆似乎在他的评论中提出了一个非常好的解决方案:

cell(2).$('input') ?: cell(2)

这将起作用,因为AbstractNavigator implements asBoolean()因此空的导航器(与任何元素不匹配的导航器)在布尔表达式中评估为false。