JSDom не обрабатывает запросы XHR ⇐ Javascript
JSDom не обрабатывает запросы XHR
Я пытаюсь заставить JSDOM вести себя как браузер и возвращать обработанный HTML. У меня проблема с веб-сайтом, использующим XHR. Есть ли несовместимость? JSDOM не работает с XHR?? Я попробовал несколько вещей, но ничего не помогло.
Я начал с этого базового кода, который не работал:
const jsdom = require("jsdom"); const {JSDOM} = jsdom; let options ='{ resources: "usable", runScripts: "dangerous" }'; JSDOM.fromURL("https://yog9.github.io/SnapShot/#/SnapScout/mountain", options).then(dom => { console.log(dom.serialize()); }); Затем я попробовал этот код, который отображал больше вещей, но все равно не получал элементов, требуемых XHR
const jsdom = require("jsdom"); const {JSDOM} = jsdom; var dom = JSDOM.fromURL("https://yog9.github.io/SnapShot/#/SnapScout/mountain", { runScripts: "опасно", ресурсы: "пригодно для использования"}).then( dom => { const {окно} = дом const {документ} = окно window.addEventListener('load', () => { title = document.querySelector('title').textContent //console.log(document.documentElement.innerHTML) console.log(dom.serialize()); //окно.закрыть() }); }) PS: Хотя это наиболее рекомендуемое решение, безголовый браузер (кукловод) не подходит, поскольку он слишком медленный для того, что мне нужно.
Я пытаюсь заставить JSDOM вести себя как браузер и возвращать обработанный HTML. У меня проблема с веб-сайтом, использующим XHR. Есть ли несовместимость? JSDOM не работает с XHR?? Я попробовал несколько вещей, но ничего не помогло.
Я начал с этого базового кода, который не работал:
const jsdom = require("jsdom"); const {JSDOM} = jsdom; let options ='{ resources: "usable", runScripts: "dangerous" }'; JSDOM.fromURL("https://yog9.github.io/SnapShot/#/SnapScout/mountain", options).then(dom => { console.log(dom.serialize()); }); Затем я попробовал этот код, который отображал больше вещей, но все равно не получал элементов, требуемых XHR
const jsdom = require("jsdom"); const {JSDOM} = jsdom; var dom = JSDOM.fromURL("https://yog9.github.io/SnapShot/#/SnapScout/mountain", { runScripts: "опасно", ресурсы: "пригодно для использования"}).then( dom => { const {окно} = дом const {документ} = окно window.addEventListener('load', () => { title = document.querySelector('title').textContent //console.log(document.documentElement.innerHTML) console.log(dom.serialize()); //окно.закрыть() }); }) PS: Хотя это наиболее рекомендуемое решение, безголовый браузер (кукловод) не подходит, поскольку он слишком медленный для того, что мне нужно.