簡體   English   中英

使用節點 js 操作 DOM

[英]DOM manipulation using node js

我想獲取網站的DOM元素,所以我使用了jsdom package。 問題是網站有一種加載來獲取數據,然后會顯示完整的 HTML 頁面。

我的問題是我的代碼在加載之前執行,因此我認為沒有所有的 DOM 元素。

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

JSDOM.fromURL('https://www.flytoday.ir/flight/search?departure=THR,1&arrival=MUC,1&departureDate=2022-09-25&adt=1&chd=0&inf=0&cabin=1').then((dom) => {
  console.log(dom.window.document.getElementById('fareLookUpTitle'));
});

我認為您應該在執行腳本之前使用 load 事件來了解它何時被加載。 我發現這可能會有所幫助。 https://github.com/cordulack/jsdom-event-listener-test-example/blob/a9c789e847e4767204b12754e712554490512df1/js/src/headings.test.js#L7-L17

 let dom;
    beforeEach(async function() {
      dom = await JSDOM.fromFile('./js/test-data/jsdom-test-page.html', {
        resources: 'usable',
        runScripts: 'dangerously'
      });

      await new Promise((resolve) =>
        dom.window.addEventListener('load', resolve)
      );
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM