我正在尝试测试.gsp文件生成的页面。为此,我需要访问特定字段的文本值。生成的HTML如下所示:
<dt>
<label class="control-label" for="isPublic">Public?</label>
</dt>
<dd> No </dd>
生成的gsp看起来像这样:
<dl>
<dt><label class="control-label" for="isPublic">Public?</label></dt>
<dd> <g:xEditableRefData owner="${license}" field="isPublic" config='YN'/>
</dd>
/dl>
在我尝试测试的场景中,g:editableRefData被禁用,因此第一个HTML代码就是我正在查看的内容。
我尝试使用以下代码访问它:
def par = $("label",for:'isPublic').parent().siblings().find("dd").value()
def par = $("label",for:'isPublic').parent().nextSibling().value()
还试图用$("label",text:'Public?').value()
抓住标签,但它返回null。
我尝试用。@ text替换.value()。我试过删除g:xEditableRefData并硬编码'否',但这并没有改变任何东西。在此之前,有许多测试按预期工作。有关如何在'dd'标签内获取文字的建议吗?
更新 我选错了文字,我不得不使用.text()。
答案 0 :(得分:1)
如果您的选择器正常工作,那么text()就是您所需要的。例如:
assert $("label", for: "isPublic").parent().next().text() == "No"
我不是css选择器专家,所以可能有更好的方法。