Geb 测试:遗漏表单元素

Geb test: misses form element

我在我的 Grails 应用程序中进行了 Geb 测试,但它完全错过了表单元素。我观看了测试 运行 并且元素本身没有填充或 运行 根本没有。我可能做错了什么?

表单元素 GSP:

<div class="form-group">
    <label id="business" class="col-sm-2 control-label topsidelabel" for="business">Business</label>
    <div class="col-sm-4">
        <label id="business-label" class="toplabel" for="business">Name</label>
        <g:textField id="business" name="business" maxlength="50" class="form-control" value="${....business}" aria-labelledby="business-label"/>
    </div>
</div>

Geb 测试选择器(2 次不同的尝试):

$('#business').value('5150 Studios')
$("form").business == "5150 Studios"

表格HTML:

<div class="form-group">
    <label id="business" class="col-sm-2 control-label" for="">Business</label>
    <div class="col-sm-4">
        <label id="Name-label" class="toplabel" for="Name">Name</label>
        <input type="text" name="business" maxlength="50" class="form-control" value="" id="business" />
    </div>
</div>

您有两个 ID 为 business 的元素。当您调用 $('#business') 时,geb 将 return 匹配给定选择器的 Navigator 对象列表。在这种情况下,您将收到两个导航器,因为您有两个与选择器匹配的元素。要解决您的问题,请重命名两个 business 元素之一或调用:

$('#business')[1].value('5150 Studios')