DevTools ProtocolまたはWebDriver BiDi経由でChromeやFirefoxを操作できる、ヘッドレスがデフォルトの高レベルAPIを備えたJavaScriptライブラリ。
jsdom/jsdom
Node.jsでヘッドレスDOM環境を実現する、WHATWG DOMおよびHTML標準の純粋なJavaScript実装。
- スター
- 21,749
- フォーク
- 1,821
- 未解決の Issue
- 289
- 最終コミット
- 19 時間前
これは何?
jsdomは、実際のWebページで使われているHTMLドキュメントをNode.jsのコードから解析、検索、操作できるよう、ブラウザーのDOM、HTML、および関連するWebプラットフォームAPIを十分にエミュレートします。フロントエンドコードのテストや、ブラウザーを丸ごと起動せずにページをスクレイピングする用途でよく使われます。
HTML文字列をJSDOMコンストラクターに渡してドキュメントを作成し、返されたwindowオブジェクトとdocumentオブジェクトをブラウザーと同じように使います。オプションでは、ページのURL、コンテンツタイプ(HTMLまたはXML)、ページ内スクリプトを実行するかどうかを指定できます。信頼できないコードを実行するセキュリティ上のリスクがあるため、スクリプトの実行はデフォルトで無効です。
jsdomでは、スタイルシート、iframe、スクリプトなどのサブリソースを任意で読み込めるほか、undiciを使ったカスタムリクエストのインターセプトにも対応しています。また、Cookie jar、ページの出力を取得するための仮想コンソール、fromURLやfromFileなどのヘルパーも備えています。レイアウトとページ遷移には対応していません。
主な機能
- 01WHATWG DOMおよびHTML標準を、Node.js向けに純粋なJavaScriptで実装。
- 02暗黙のタグをブラウザー同様に扱いながら、HTMLおよびXMLドキュメントを解析。
- 03ページ内スクリプトを任意で実行でき、デフォルトでは実行を無効化。
- 04リソースの読み込みを有効にすると、スタイルシート、iframe、スクリプトを読み込み。
- 05undiciを介してカスタムプロキシ、ヘッダー、リクエストインターセプターに対応。
- 06Cookie jar、仮想コンソール、fromURL/fromFileヘルパーを提供。
ユースケース
- 実際のブラウザーを使わずに、フロントエンドのコンポーネントやライブラリをユニットテスト。
- Node.jsスクリプトでHTMLページをスクレイピング、解析。
- Node.jsのテストスイート内で、ブラウザーに依存するコードを実行。
- テスト中にページスクリプトが行うネットワークリクエストをインターセプト、またはスタブ化。
クイックスタート
- 1
npmからjsdomをインストールする
npm install jsdom - 2
HTML文字列からJSDOMインスタンスを作成し、documentを読み取る
使う前に知っておきたいこと
- レイアウトやレンダリングは行わないため、ブラウザーの視覚的な動作を再現できません。
- DOM内でのスクリプト実行はデフォルトで無効になっており、信頼できないコンテンツで実行するのは安全ではありません。
収録されている特集
トピック
よくある質問
- jsdom とは?
- Node.jsでヘッドレスDOM環境を実現する、WHATWG DOMおよびHTML標準の純粋なJavaScript実装。 jsdomは、実際のWebページで使われているHTMLドキュメントをNode.jsのコードから解析、検索、操作できるよう、ブラウザーのDOM、HTML、および関連するWebプラットフォームAPIを十分にエミュレートします。フロントエンドコードのテストや、ブラウザーを丸ごと起動せずにページをスクレイピングする用途でよく使われます。
- jsdom は無料で使えますか?ライセンスは?
- jsdom は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- jsdom は今もメンテナンスされていますか?
- 活発にメンテナンス中。jsdom の最終コミットは 2026年11月6日 です。
- jsdom は何に使えますか?
- 実際のブラウザーを使わずに、フロントエンドのコンポーネントやライブラリをユニットテスト。 Node.jsスクリプトでHTMLページをスクレイピング、解析。 Node.jsのテストスイート内で、ブラウザーに依存するコードを実行。 テスト中にページスクリプトが行うネットワークリクエストをインターセプト、またはスタブ化。
- jsdom のインストール方法は?
- npmからjsdomをインストールする: npm install jsdom HTML文字列からJSDOMインスタンスを作成し、documentを読み取る
- jsdom はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/jsdom/jsdom
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
サーバーやブラウザーでHTML・XMLを解析、操作できる高速なjQuery風ライブラリ。
ユーザーの操作に沿ってコンポーネントを検索・操作できる、軽量なReact DOMテストユーティリティ。
DOMメソッド、CSSセレクター、XPathを使って実際のHTMLを解析、スクレイピング、編集、サニタイズできるJavaライブラリ。
Node.jsとブラウザーで使える、describe/it形式のテスト構成と非同期テストに対応した、広く利用されているJavaScriptテストフレームワークです。
AVAは、簡潔なAPI、詳細なエラー出力、テストファイルごとのスレッド分離を備えたNode.js向け並行テストランナーです。