Spock 为输入类型文本指定表单值时的混淆

Spock 为输入类型文本指定表单值时的混淆,spock,geb,Spock,Geb,下面是我的页面和规格。我可以输入firstName的值,但我得到了lastName的以下错误。我想我们可以使用基于Geb doc的“=”操作符来赋值 页面 class NewConsumerApplicationPage extends Page {static content = { newApplicationForm { $("form", id: "newApplicationConsumerForm") } firstName

下面是我的页面和规格。我可以输入
firstName
的值,但我得到了
lastName
的以下错误。我想我们可以使用基于Geb doc的“=”操作符来赋值

页面

class NewConsumerApplicationPage extends Page
{static content =
    {
        newApplicationForm
        { $("form", id: "newApplicationConsumerForm") }

        firstName
        {newApplicationForm.find("input", id: "newApplication_primaryApplicant:consumerIdentification:firstName")}

        lastName
        {newApplicationForm.find("input", id: "newApplication_primaryApplicant:consumerIdentification:lastName")}

        submitButton
        {
            $("button", id: "newConsumerApplication_submit")
        }
    }
}
规格

def "Create workitem"()
{
    given : "I am successfully logged into the application"
    to NewConsumerApplicationPage

    when:
    firstName.value "CCERASTOSTIGMA"
    lastName = "PAULA"

    submitButton.click()

    then : 
    at ApplicationSummaryPage
}

我从Geb邮件列表中得到了答案。为了每个人的利益在这里发布

这有点令人困惑,但手册的这一部分是 “表单控件快捷方式”,即它仅适用于表单内容 元素。假设表单有一个
name=lastName
输入元素,则 将工作:

newApplicationForm.lastName = 'value'
但是,当手动选择输入元素时,它不起作用 使用
$/find
创建表单

newApplicationForm.lastName = 'value'