茉莉花的假值并不等同

时间:2016-03-22 07:18:00

标签: javascript angularjs jasmine protractor

我使用以下代码来比较aria-checked="false"中的元素。

expect((accessPolicyPage.listSelectAll).getAttribute("aria-checked")).toEqual("false");

输出为Expected [ 'false' ] to equal 'false'

我也试过了toBeFalsy()

2 个答案:

答案 0 :(得分:3)

以下是上述问题的答案。

expect((accessPolicyPage.listSelectAll).get(0).getAttribute("aria-checked")).toEqual("false");

这将从数组中获取精确值。

感谢Arseni提供找到答案的线索。

答案 1 :(得分:1)

accessPolicyPage.listSelectAll会返回一个元素列表。因为你只有一个元素,所以它返回一个元素的数组。所以这就是为什么说Expected [ 'false' ] to equal 'false'

要检查这一点,你必须循环返回这样的返回元素并检查每个元素的属性aria-checked,如下所示:

var elements = accessPolicyPage.listSelectAll;
elements.forEach(function(singleElement) {
    expect(singleElement.getAttribute("aria-checked")).toEqual("false");
});

或者只是这样做:

expect((accessPolicyPage.listSelectAll).getAttribute("aria-checked")[0]).toEqual("false");

请尝试,如果没有帮助,请写评论。我会尝试提供更多帮助