禁用不被视为HTML属性

时间:2018-06-26 12:07:50

标签: javascript html angular testing chai

我在html中有此按钮

 const dom = new JSDOM(`
<button id="ref_button" type="submit" [disabled]="editForm.form.invalid || isSaving" class="btn btn-primary">`)
           

我正在使用Chai进行如下测试:

 dom.window.document.getElementById("ref_button").should.have.attr('type');

它运行完美。  但是,如果我想以相同的方式测试 disabled 属性,则该测试将无效:

  dom.window.document.getElementById("ref_button").should.have.attr('[disabled]');

它总是说该属性存在。这是不正常的,因为根据条件(当我用有效数据填写表格时)它不应该存在。

我在柴做错什么吗?

1 个答案:

答案 0 :(得分:1)

我对Chai的了解不多,只是尝试了以下内容

prop() or property()

dom.window.document.getElementById("ref_button").should.have.prop('disabled');

dom.window.document.getElementById("ref_button").should.have.property('disabled');

更新的代码段

您能尝试以下吗

is()

dom.window.document.getElementById("ref_button").is('[disabled]')).toBe(true)

以上可能有效,请尝试一下。如果不是,请尝试以下一项

hasAttr() or hasAttribute()

dom.window.document.getElementById("ref_button").hasAttribute('disabled')