为输入类型文本分配表单值时出现困惑

时间:2012-03-22 19:50:45

标签: spock geb

以下是我的页面和规格。我可以输入firstName的值,但我收到lastName的以下错误。我想我们可以使用'='运算符根据Geb doc http://www.gebish.org/manual/current/navigator.html#text_inputs_and_textareas

分配值
geb.error.UnresolvablePropertyException: Unable to resolve lastName as a property to set on NewConsumerApplicationPage's Navigator context
    at geb.content.NavigableSupport.propertyMissing(NavigableSupport.groovy:141)
    at geb.Browser.propertyMissing(Browser.groovy:182)
    at geb.spock.GebSpec.propertyMissing(GebSpec.groovy:59)
    at WorkItemSpec.Create workitem(WorkItemSpec.groovy:32)

网页

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
}

1 个答案:

答案 0 :(得分:2)

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

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

newApplicationForm.lastName = 'value'

但是,当手动选择a的输入元素时,它不起作用 使用$/find形成表单。