首页 > 解决方案 > 在js文件中加载html文件

问题描述

我的 C:\Users\project\text.html 中有这个 text.html 文件,我想将它加载到测试文件 .js 中。

我想在我的测试功能之一中加载 HTML 文件,这样我就可以测试 HTML 元素。当我像这样将 html 内容放在测试文件中时,效果很好:

const jsdom = require("jsdom");
const { JSDOM } = jsdom;
...
 Then('...', function() {
     
 const dom = new JSDOM(`<!DOCTYPE html><div id="hey" class="modal-footer">Hello world</div>`);

});
但我不想要 innerHTML,我想从 JSDOM 加载文件 text.html 而不是在我的测试文件中写入 html。有什么方法可以做类似 require text.html inide JSDOM 之类的事情吗?

标签: javascripthtmlangularjsdom

解决方案


JSDOM 提供了一个fromFile实用功能,允许从本地文件加载。这将加载./foo.html.

const { JSDOM } = require("jsdom");

JSDOM.fromFile("./foo.html").then(dom => {
  // ...
});

如果您需要从 URL 加载,还有fromURL

const { JSDOM } = require("jsdom");

JSDOM.fromURL("http://www.example.com/").then(dom => {
  // ...
});

推荐阅读