Jasmine - 无法获取 DOM 元素 [英] Jasmine - Unble to get DOM elements

查看:26
本文介绍了Jasmine - 无法获取 DOM 元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在测试一个操作 DOM 的 angularjs 指令.

I am testing an angularjs directive that manipulates the DOM.

我正在尝试获取 Jasmine 规范中的元素,以便我可以测试指令的功能.但是,当我使用 document.getElementsByClassNameTagNameID 时,它不会返回任何内容.有人对此有什么想法吗?

I am trying to get the element in my Jasmine spec, so that I can test the functionality of the directive. However, when I use document.getElementsByClassName or TagName or ID, it doesn't return anything. Does anyone have ideas about this?

html = document.getElementsByClassName('analog');
console.dir(html);

推荐答案

如果您在无头浏览器/chrome 等中创建测试,您可以附加一个虚拟对象,例如 JQuery 节点,然后在 afterEach 中删除该节点.

If you create a test in headless browser/chrome etc., you could append a dummy object, for example JQuery node, then remove that node in afterEach.

例如

beforeEach(() => {
    var mockHtml = $('<div class="form-group" style="position: absolute;left: -10000px;"><input class="testInput" id="some_input"></div>');
    $('body').append(mockHtml);
});

afterEach(() => {
    $('.form-group').remove();
});

这篇关于Jasmine - 无法获取 DOM 元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆