groovy – 如何使用Geb在页面事件后检查元素属性值
在这里得到一些帮助之后,我正在使用Geb编写一个功能性Web测试,并希望在事件发生之前和之后测试表单提交按钮的禁用属性值,流程应如下所示:
>加载页面,提交按钮在页面源中被声明为禁用,因此应禁用,例如< input type =“submit”class =“submit”disabled =“true”/>. 我的第一次尝试是使用断言$(‘input.submit’).@ disabled ==’true’,这似乎适用于页面加载后的初始检查,但是在执行我的JQuery代码以使按钮后续检查仍然返回相同的结果.这让我想知道这种检查是否只能在页面加载时报告值并且看不到任何后续的程序化更改? 然后我发现了Geb的jquery迭代,我希望我可以使用它来返回提交按钮的值并在此处执行我的断言. $(‘input.submit’).jquery.attr(‘disabled’)== false但是Geb文档确认所有对.jquery属性的调用都返回Geb Navigator实例,所以很遗憾我不认为我可以返回信息我想要. 我也怀疑JQuery代码是否真的切换了提交按钮禁用状态,我已经使用Firebug进行了广泛的测试并且可以确认这在浏览器中完美运行,所以我怀疑这是我对Geb的理解或者问题也许是Geb本身的局限? 让我感到震惊的是,在页面上执行某些操作后检查元素属性的值可能是一个常见的用例,因此我非常希望我错过了一些简单的方法.非常感谢能帮我解决问题的任何指针. 干杯, 埃德 解决方法
做了一些测试,现在已经取得了满意的结果.我正在做一些我现在认为不合适的事情,即尝试将禁用的属性值设置为非法的true和false值,如下所示:
$('input.submit').attr('disabled',true); $('input.submit').attr('disabled',false); 查看HTML forms specification,显示disabled属性不带值,而是单独存在表示元素被禁用.修改我的代码以遵守这一点并删除属性以指示元素的启用似乎已经完成了诀窍: $('input.submit').attr('disabled',true); //This time we remove the disabled attribute rather than setting it to false. $('input.submit').removeAttr('disabled'); 注意:我仍然将disabled的值设置为true,因为我无法在不设置值的情况下确定如何设置属性,有关详细信息,请参阅this SO post. 使用上面我现在能够使用Geb断言元素的禁用/启用状态,如下所示: //Check that something is disabled. deleteSelectedButton.@disabled == 'true' //Check that something is enabled. deleteSelectedButton.@disabled == 'false' 注意:Geb似乎需要一个表示预期状态的字符串文字而不是布尔值,而iirc导致我的断言失败. 所以就是这样 – 现在一切都很好,而且我正在编写大量的Geb测试!希望这种解释对其他人有用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |