awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
jsdom avatar

jsdom/jsdom

0
View on GitHub↗
21,587 stars·1,782 forks·JavaScript·MIT·22 views

Jsdom

jsdom is a Node.js DOM implementation that functions as a headless browser emulator and virtual browser environment. It provides a pure JavaScript implementation of web standards, acting as a web standards polyfill that simulates the window and document objects within a non-browser runtime.

The project implements W3C and WHATWG specifications to provide a programmatic environment for parsing HTML and manipulating content. It serves as an HTML parser and serializer, allowing for the transformation of HTML strings into document structures and the export of those structures back into text.

The system covers a broad range of browser emulation capabilities, including the execution of in-page and external scripts, the management of HTTP cookies, and the loading of external resources via network request interception. It also includes support for CSSOM mapping, canvas API integration, and virtual console log capture.

Documents can be initialized using local files or remote URLs.

Features

  • DOM Implementations - Provides a pure JavaScript implementation of web standards to simulate the DOM without a native browser engine.
  • Headless Browsers - Functions as a headless browser emulator that executes page scripts and manages a document object model without a graphical interface.
  • HTML Parsing - Implements the official WHATWG specification to transform HTML strings into structured document nodes.
  • Virtual Browser Environments - Creates a programmatic environment for testing and manipulating web pages by simulating window and document objects.
  • Browser Environment Emulation - Binds browser global objects to the Node.js runtime to enable script execution outside of a browser.
  • Node.js DOM Implementations - Implements web standards to simulate a browser environment specifically for use within the Node.js runtime.
  • Web-Standard Runtimes - Implements W3C and WHATWG specifications to provide a browser-compatible API environment outside of a traditional browser.
  • Frontend Unit Testing - Provides a virtual browser environment to run JavaScript tests for frontend components within Node.js.
  • Server Side DOM Manipulation - Allows parsing and modifying HTML or XML content on the server using standard web APIs to generate documents.
  • Virtual Browser Globals - Creates a simulated global environment that mimics browser globals like window and document.
  • Web Standard Implementations - JSDOM simulates a browser environment by providing JavaScript implementations of various W3C and WHATWG specifications.
  • Web Standards - Implements web standards and document APIs to parse HTML and manipulate content like a browser.
  • HTML Serialization - Provides tools for converting HTML strings into a manipulatable document structure and exporting that structure back to text.
  • External Script Execution - Executes external JavaScript to modify the document structure and interact with web platform APIs.
  • In-Page Script Execution - Runs embedded or external JavaScript to modify content and access web APIs within the simulated environment.
  • Programmable Fetch Interceptors - Provides a programmable fetch mechanism to intercept and resolve external requests for scripts and styles.
  • Runtime Shims - Modifies the window or document objects before parsing to ensure necessary global variables exist.
  • JavaScript and Web-Standard - Provides a collection of JavaScript implementations for W3C and WHATWG specifications, including DOM and network APIs.
  • DOM Serialization - Converts the current state of the document back into an HTML string including the doctype.
  • CSSOM Simulations - Maintains a simulated CSS object model to track styles applied to DOM elements.
  • Web Automation and Scraping - Enables extraction of data from HTML pages by simulating a browser environment to handle scripts.
  • DOM Manipulation - Web standards-compliant DOM implementation for Node.js.
  • General Utilities - JavaScript implementation of HTML and DOM.

Star history

Star history chart for jsdom/jsdomStar history chart for jsdom/jsdom

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Jsdom

These projects share indexed features with Jsdom. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • tmpvar/jsdomtmpvar avatar

    tmpvar/jsdom

    21,591View on GitHub↗

    jsdom is a Node.js implementation of web standards that functions as a headless browser emulator. It provides a JavaScript execution environment and an HTML and XML parser to simulate a browser environment on the server side, implementing various web APIs and W3C standards. The project distinguishes itself by providing a sandboxed runtime for executing scripts embedded in HTML or external files. It includes specialized polyfills for the Canvas API and manages session state through HTTP cookie management. Its broader capabilities cover network interaction via request interception and resource

    JavaScript
    View on GitHub↗21,591
  • whatwg/htmlwhatwg avatar

    whatwg/html

    9,163View on GitHub↗

    This repository contains the HTML specification, which defines the core standards for web page structuring, content organization, and document rendering. It establishes the fundamental algorithms for state-machine-based tokenization, tree construction for the document object model, and origin-based security isolation. The specification provides a framework for defining custom elements with independent lifecycles and registries. It also details the requirements for cross-document communication, session history management, and the synchronization of interface properties with content attributes.

    HTMLcanvaseventsourcehtml
    View on GitHub↗9,163
  • psf/requests-htmlpsf avatar

    psf/requests-html

    13,826View on GitHub↗

    requests-html is a Python HTML parsing library and web scraping framework. It functions as an asynchronous HTTP client and a JavaScript rendering engine designed to fetch and parse web pages for structured data extraction. The project integrates a headless browser to execute JavaScript, allowing it to retrieve dynamically generated content that standard HTML parsers cannot see. It provides tools for automated data extraction using CSS selectors and XPath expressions to isolate specific text or attributes from HTML structures. The framework covers network operations including asynchronous pag

    Pythonbeautifulsoupcss-selectorshtml
    View on GitHub↗13,826
  • cheeriojs/cheeriocheeriojs avatar

    cheeriojs/cheerio

    30,386View on GitHub↗

    Cheerio is an HTML and XML parsing library and server-side DOM implementation. It functions as a markup manipulation tool and CSS selector engine, allowing users to parse, query, and modify HTML or XML documents in non-browser environments. The project provides a DOM-like tree representation of markup strings, enabling programmatic addition, removal, and modification of elements and attributes. It features a prototype-based plugin system that allows the extension of core functionality by adding custom methods to the document prototype. The library covers a broad range of capabilities includi

    TypeScriptcheeriodomhacktoberfest
    View on GitHub↗30,386
Compare all 30 related projects→

Frequently asked questions

What does jsdom/jsdom do?

jsdom is a Node.js DOM implementation that functions as a headless browser emulator and virtual browser environment. It provides a pure JavaScript implementation of web standards, acting as a web standards polyfill that simulates the window and document objects within a non-browser runtime.

What are the main features of jsdom/jsdom?

The main features of jsdom/jsdom are: DOM Implementations, Headless Browsers, HTML Parsing, Virtual Browser Environments, Browser Environment Emulation, Node.js DOM Implementations, Web-Standard Runtimes, Frontend Unit Testing.

Which projects share features with jsdom/jsdom?

Projects with overlapping indexed features include: tmpvar/jsdom — jsdom is a Node.js implementation of web standards that functions as a headless browser emulator. It provides a… whatwg/html — This repository contains the HTML specification, which defines the core standards for web page structuring, content… psf/requests-html — requests-html is a Python HTML parsing library and web scraping framework. It functions as an asynchronous HTTP client… cheeriojs/cheerio — Cheerio is an HTML and XML parsing library and server-side DOM implementation. It functions as a markup manipulation… hickford/mechanicalsoup — MechanicalSoup is a Python web automation library designed to simulate browser behavior. It functions as a toolkit for… paquettg/php-html-parser — PHP HTML Parser is a server-side programming library and DOM parser designed to ingest markup documents and structure…