Що таке JSDOM?

pic

Фото: Mohammad Rahmani на Unsplash

Я натрапив на jsdom, коли шукав способи емуляції веб-браузера без використання драйвера браузера. Jsdom — це чиста JavaScript-реалізація багатьох веб-стандартів, таких як DOM стандарт WHATWG та HTML стандарти, призначена для використання з Node.js. Вона дозволяє емулювати частини функціональності браузера, що робить її корисною для завдань, таких як тестування та веб-скрапінг 😈.

Jsdom аналізує HTML і надає віртуальний DOM, з яким можна взаємодіяти програмно, як і з реальним браузерним DOM. Ось простий приклад:

const jsdom = require("jsdom");  
const { JSDOM } = jsdom;  
const dom = new JSDOM(`
Hello world
`);   console.log(dom.window.document.querySelector("p").textContent); // "Hello world"  

Цей код створює віртуальний DOM з простою HTML-структурою та виводить текстовий вміст елемента <p>.

Ця бібліотека надає різні параметри для налаштування, такі як встановлення URL, реферера та типу контенту. Вона також підтримує виконання скриптів у межах віртуального DOM. Однак виконання скриптів за замовчуванням вимкнене з міркувань безпеки. Ви можете увімкнути його, використовуючи параметр runScripts, але будьте обережні з неперевіреним контентом.

Інша корисна функція — можливість "вдаватися" у вигляд візуального браузера. Хоча jsdom не рендерить нічого візуально, встановлення параметра pretendToBeVisual: true дозволяє використовувати API, такі як window.requestAnimationFrame(), і змінює властивості, такі як document.hidden, для кращого імітування реального середовища браузера.

Загалом, jsdom — потужний інструмент для розробників, які працюють з веб-контентом поза межами традиційного браузера. Він особливо корисний для автоматизованого тестування та серверного рендерингу веб-застосунків.

Перекладено з: What is JSDOM?

Leave a Reply

Your email address will not be published. Required fields are marked *