本文介绍了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元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-24 21:08