Html 如何确定是否<;a>;残疾
量角器具有用于元素的漂亮的isEnabled()函数。尽管它对Html 如何确定是否<;a>;残疾,html,angularjs,testing,protractor,end-to-end,Html,Angularjs,Testing,Protractor,End To End,量角器具有用于元素的漂亮的isEnabled()函数。尽管它对非常有效,但对元素却没有起到作用 我可以很容易地检查disabled或ng disabled属性,但是有更干净的方法吗?您需要像这样直接获取属性: if (dcoument.getElementById("a").disabled) { //disabled } else { //active } expect(myelement.getAttribute('disabled')).toBeTruthy(); 我每
非常有效,但对
元素却没有起到作用
我可以很容易地检查
disabled
或ng disabled
属性,但是有更干净的方法吗?您需要像这样直接获取属性:
if (dcoument.getElementById("a").disabled) {
//disabled
} else {
//active
}
expect(myelement.getAttribute('disabled')).toBeTruthy();
我每天都在量角器测试中使用它,没有任何问题。尽管MBielski的答案会起作用,但比使用
getAttribute()
更简洁的是使用:
您可以简单地使用jQuery来确定在链接上何时启用或禁用属性 $(函数(){ $('input[type=“button”]”)。在('click',function()上{
我正试图通过api来实现这一点。我需要将您的解决方案包装在
浏览器中。executeScript(…)
调用中,这不是最理想的,我从来没有听说过ProActor
,抱歉:(虽然getAttibute(…),但这是可行的)
如果属性不存在,将返回null
?是的,如果属性不存在,它将返回null。这就是为什么您使用.toBeTruthy()进行检查。null的计算结果始终为false。锚元素(技术上)没有“disabled”属性,因此您不能指望以这种方式禁用它()。某些浏览器会应用该属性,但这不是您应该依赖的。这个问题有一些不错的解决方法:但是isEnabled()
不适用于
元素,除非您知道神秘的trick@MitchellHentges是的,但是根据a
标记上没有disabled
属性。另请参见:。在这个github问题中,您可以看到有几次提到使用getAttribute()
直接作为解决方法。因此,您可能应该接受MBielski的答案。谢谢。
expect(myelement.isEnabled()).toBe(false);
if($('a').prop('disabled')){ // checks whenever the element has the given atribute
alert('it is enabled');
} else {
alert('it is not enabled');
}
});