首页 > 解决方案 > Chai,无法测试 html 元素

问题描述

我正在测试一个 Angular 项目,我首先在 Jasmine 中编写了测试来测试 html 元素的属性是否存在,并且它们可以工作:

 expect(element(by.css("*[id='ref_button']")).getAttribute('disabled')).toEqual(null);

现在我想在 Cucumber Chai 中尝试同样的方法。

我这样做:

expect(element(by.css("*[id='ref_button']"))).to.have.attribute('disabled');
我得到的错误是 ** Invalid Chai property: attribute** 我做错了什么吗?

我的 package.json 中有这个:

 "chai": "^4.1.2",
    "chai-as-promised": "^7.1.1",
    "chai-dom": "^1.8.0",

标签: javascripthtmlangulartestingchai

解决方案


禁用是一个属性而不是一个属性,事实上你可以有角度

describe('test element', () => {
let something: DebugElement;

beforeEach(() => {
  something = fixture.debugElement.query(fn)
 });

 it('expect', () => {
  expect(something.properties.disabled).toBe(Boolean)
 });
});

这就是你在 Jasmine 中的做法,我相信 chai 将具有相同的实用程序来获取属性。


推荐阅读