在这里得到一些帮助后,我正在使用 Geb 编写一个功能性 Web 测试,并想在事件发生之前和之后测试表单提交按钮的disabled属性值,流程应如下所示:
- 加载页面,提交按钮在页面源中声明为禁用,因此应禁用,例如
<input type="submit" class="submit" disabled="true"/>
。 - 选中页面上的复选框,这将导致一段 JQuery 代码执行,这将使用以下方式以编程方式启用禁用的提交按钮:
$('input.submit').attr('disabled', false);
我的第一次尝试是使用 assertion $('input.submit').@disabled == 'true'
,这似乎适用于页面加载后的初始检查,但是在执行我的 JQuery 代码以启用按钮后,后续检查仍然返回相同的结果。这让我想知道这种检查是否只能在页面加载时报告值并且看不到任何后续的程序更改?
然后我发现了 Geb 的 jquery 迭代,我希望我可以使用它来返回提交按钮的值并对此进行断言,$('input.submit').jquery.attr('disabled') == false
但是 Geb 文档确认所有对.jquery
属性的调用都返回了 Geb Navigator 实例,很遗憾我没有' t 认为我可以返回我想要的信息。
我还怀疑 JQuery 代码是否实际上切换了提交按钮禁用状态,我已经使用 Firebug 对此进行了广泛测试,并且可以确认这在浏览器中运行良好,所以我怀疑这要么是我对 Geb 的理解的问题,要么也许是 Geb 本身的限制?
让我感到震惊的是,在页面上执行某些操作后检查元素属性的值可能是一个常见的用例,因此我宁愿希望我错过了一些非常简单的方法。非常感谢任何能帮助我解决这个问题的指针。
干杯,
埃德