Jasmine - 无法获取 DOM 元素 [英] Jasmine - Unble to get DOM elements
本文介绍了Jasmine - 无法获取 DOM 元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在测试一个操作 DOM 的 angularjs 指令.
I am testing an angularjs directive that manipulates the DOM.
我正在尝试获取 Jasmine 规范中的元素,以便我可以测试指令的功能.但是,当我使用 document.getElementsByClassName
或 TagName
或 ID
时,它不会返回任何内容.有人对此有什么想法吗?
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屋!
查看全文