【问题标题】:finding visible elements with jqlite使用 jqlite 查找可见元素
【发布时间】:2014-07-28 22:46:54
【问题描述】:

我正在尝试在 Jasmine 中编写一个单元测试,以查找在单击按钮后变为可见的元素。我遇到的问题是find 找到隐藏的元素。

        var visibleUndoButtons = 0;
        var undoButtons = element.find(".btn-undo");
        undoButtons.each((index, value) => {
           if ($(this).css("display", "none")) {
               console.log("none");
           } else {
               visibleUndoButtons++;
           }
        });
        expect(visibleUndoButtons).toEqual(1);

jqlite 可以按我的要求做吗?或者有没有更好的方法来查找具有特定类的可见元素或不可见元素?

【问题讨论】:

  • “标准”jQuery :visible 选择器怎么样:element.find( '.btn-undo:visible' );
  • @feeela 我试图不导入 jquery 而只使用 jqlite。

标签: jquery jqlite


【解决方案1】:

这就是我刚刚做的:

it("should not hide any of the checkboxes", inject(function ($document) {
  $document.find('body').append(element);
  angular.forEach(element.find('.check-box'), function (checkBox) {
    expect(angular.element(checkBox).css('display')).toBe('inline');
  });
}));

我的 css 可见性规则来自外部样式表(而不是内联),如果我省略

,这可能是 .css() 方法返回空字符串的原因
$document.find('body').append(element);

希望对您有所帮助。

【讨论】:

  • 实际上,我的外部 css 不包含在 karma 中,所以这不是原因。无论如何,只有当我将元素附加到文档时,它才能按预期工作。也许有人可以解释为什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-29
  • 1970-01-01
  • 2023-03-07
  • 2021-02-19
相关资源
最近更新 更多