Фото Mohammad Rahmani на Unsplash
Я натрапив на jsdom, коли шукав способи емулювати веб-браузер без використання драйвера браузера. Jsdom — це чиста JavaScript-реалізація багатьох веб-стандартів, таких як WHATWG DOM та HTML Standards, яка призначена для використання з 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 — це потужний інструмент для розробників, які мають справу з веб-контентом поза традиційним браузером. Він особливо корисний для автоматизованого тестування та рендерингу веб-додатків на сервері.
Перекладено з: How to Install Jenkins on an AWS EC2 Instance