本文介绍了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);
推荐答案
如果您在无头浏览器/镀铬等创建测试。,你可以附加一个虚拟对象,例如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元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!