【问题标题】:Disabled is not considered an HTML attribute禁用不被视为 HTML 属性
【发布时间】:2018-06-26 12:07:50
【问题描述】:

我在 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]');

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

我在 Chai 做错了吗?

【问题讨论】:

  • But if I want to test the same way 一样吗?
  • 我编辑了这个问题

标签: javascript html angular testing chai


【解决方案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');

更新的 sn-p

你能像下面这样试试吗

is()

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

以上方法可行,请尝试。如果没有,也试试下面的一个

hasAttr() or hasAttribute()

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

【讨论】:

  • 同样的结果
  • Mybe 你需要参考 chai doc chaijs.com/guide/styles ,因为我认为你正在使用 Jasmine。 chai中不存在这些方法
  • 哦,还有一些东西,因为它适用于 anotehr 属性,这意味着这是正确的方法!但也许它没有识别这个属性值中的变化,当它为空时,当关于表单中的数据输入时为真。
  • @Tester :-) 是的,我只指 Chai 文档。我一直在让你知道我从那里所理解的。您是说 它适用于另一个属性...!!! 我的答案中的任何一行对您有帮助吗?一年前,我使用 Protractor 编写了测试用例,现在我完全投入到开发中 :-)
  • 否 如果您阅读我的问题,我会说我所做的工作适用于 anotehr 属性。但是你的代码更像 Jasmine
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多