---
title: Selenium vs Puppeteer：どちらを選ぶべきか？ | TestingBot
description: SeleniumとPuppeteerを徹底比較：プロトコル、言語サポート、ブラウザ対応、速度、モバイルテスト、ユースケース。どちらもTestingBotのクラウド上の6100+の実際のブラウザで実行できます。
source_url:
  html: https://ja.testingbot.com/selenium-vs-puppeteer
  md: https://ja.testingbot.com/selenium-vs-puppeteer.md
---

フレームワーク比較 · 2026 
# Selenium vs Puppeteer

SeleniumとPuppeteerは、異なる問題を解決します。一方はクロスブラウザのW3C WebDriver標準であり、もう一方は高速なChrome特化の自動化ライブラリです。このガイドでは、プロトコル、対応言語、ブラウザカバレッジ、速度、ユースケースの各観点で両者を徹底的に比較し、コードサンプルと5分で実践できる結論を交えてお届けします。

[TestingBotで両方を実行する](https://ja.testingbot.com/users/sign_up) [比較へジャンプ](https://ja.testingbot.com#comparison)

- **ブラウザとデバイス:** 6100+
- **クラウド並列処理:** 100×
- **稼働時間SLA:** 99.9%

## 世界で最も革新的な企業のいくつかから信頼されています

 30秒で答える 
## どちらを選ぶべきでしょうか？

 ![Selenium](https://ja.testingbot.com/assets/support/selenium-266ecc0599068fc6eca0bcd9174fb46053c95cebe1c66f7a50c480f3f1a52929.svg) Seleniumを選ぶべきなのは…

Chrome、Firefox、Safari、Edge、Internet Explorerにわたる本物のクロスブラウザテスト、複数の言語、またはAppium経由での実際のモバイルデバイスを、W3C標準プロトコル上で必要とする場合。

 ![Puppeteer](https://ja.testingbot.com/assets/support/puppeteer-0a8cdd38af69dabd46638afbb3bffc8a372902949aa599663ec379f3e875263c.svg) Puppeteerを選ぶべき理由は…

高速なエンドツーエンドテスト、スクレイピング、PDF生成、パフォーマンストレースのためにNode.jsからChromeまたはChromiumを自動化し、Safari、Internet Explorer、その他の言語を必要としない場合。

両方選ぶべき場合…

高速なChrome専用チェックにはPuppeteerを、幅広いクロスブラウザカバレッジにはSeleniumを使いたい場合。TestingBotは両方を同じグリッド上で、並列に、1つのダッシュボードで実行します。

 背景 
## SeleniumとPuppeteerとは何ですか？

2つのブラウザ自動化ツール、それぞれ異なる目標。一方はクロスブラウザ制御を標準化し、もう一方はChromeを高速に操作します。

 ![Selenium](https://ja.testingbot.com/assets/support/selenium-266ecc0599068fc6eca0bcd9174fb46053c95cebe1c66f7a50c480f3f1a52929.svg)

### Selenium

2004年リリース · オープンソース · Apache 2.0

Seleniumは、元祖ブラウザ自動化フレームワークであり、W3C WebDriver標準の基盤となっています。Selenium WebDriverは、ベンダー提供のドライバ（chromedriver、geckodriver、safaridriver、edgedriver）を介して、同一のワイヤプロトコルを使用してあらゆるブラウザを外部から操作します。

20年にわたるエコシステムの成熟により、主要なすべての言語に対応したバインディング、IDEとの高度な統合、成熟したPage Objectパターン、そして同じプロトコル上に構築されたAppiumを介した実際のモバイルデバイステストが実現しました。

- Java / Python / C# / Ruby / JavaScript / Kotlin
- W3C WebDriver標準、すべてのブラウザで動作します
- Chrome、Firefox、Safari、Edge、IE 11 · Appium経由での実際のモバイル

 ![Puppeteer](https://ja.testingbot.com/assets/support/puppeteer-0a8cdd38af69dabd46638afbb3bffc8a372902949aa599663ec379f3e875263c.svg)

### Puppeteer

リリース日：2017年 · Google · Apache 2.0

Puppeteerは、Google Chromeチームが開発したNode.jsライブラリで、Chrome DevToolsプロトコルを介してChrome、Chromium、Edgeを制御します。高速なエンドツーエンドテスト、Webスクレイピング、PDF生成、パフォーマンストレースを支えています。

WebDriverではなくDevToolsプロトコルを直接やり取りするため、Puppeteerは高速であり、ネットワーク、コンソール、トレースへの一流のアクセスを備えています。同じ設計が、ChromiumベースのブラウザとJavaScriptエコシステムへの依存ももたらします。

- JavaScriptとTypeScript（Node.js）
- Chrome DevToolsプロトコル、ネットワークとトレースへのアクセス
- Chrome、Chromium、Edge · Firefoxは実験的、Safari/IEは非対応

 直接対決 
## Selenium vs Puppeteer：並べて比較

CI での選択、移行、または両方の実行において重要なあらゆる側面において。

Selenium versus Puppeteer feature comparison| 項目 | Selenium | Puppeteer |
| --- | --- | --- |
| First release | 2004 | 2017 |
| Maintained by | Open-source community + W3C | Google (Chrome team) |
| Protocol | W3C WebDriver | Chrome DevTools Protocol |
| Languages | Java, Python, C#, Ruby, JS, Kotlin | JavaScript / TypeScript |
| Browsers | Chrome, Firefox, Safari, Edge, IE 11 | Chrome, Chromium, Edge |
| Firefox / Safari | Both supported | Firefox experimental, no Safari |
| Mobile testing | Real iOS + Android via Appium | None |
| Speed | Mature, predictable | Faster on Chrome (direct CDP) |
| Network interception | BiDi (Selenium 4) or proxy | First-class (CDP) |
| Scraping / PDF / tracing | Possible | First-class |
| Test runner | Bring your own (JUnit, pytest) | Bring your own (Jest, Mocha) |
| Standard | W3C WebDriver standard | Chrome-specific protocol |
| Parallel execution | Selenium Grid | Worker-based (Jest, Mocha) |
| Ecosystem maturity | 20 years of integrations | Strong since 2017 |
| Free for open source on TestingBot | ✓ | ✓ |

機能に関する注記は、2026年時点のSelenium 4.xおよびPuppeteer 23.xを反映しています。両方ともTestingBotのクラウド上で動作し、SeleniumはWebDriverハブ経由で、PuppeteerはbrowserWSEndpoint接続経由で実行されます。

 両方で同じテストを実施 
## ログインし、結果を検証する

明示的な待機（Selenium）を使用したログインフローと、DevToolsプロトコルのセッション（Puppeteer）を使用したログインフローを比較します。どちらも同じTestingBotグリッド上で実行されます。

Selenium + Python test\_login.py

```python
# Driver points at TestingBot remote URL
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

def test_login_redirects_to_dashboard(driver):
    driver.get('https://app.example.com/login')

    driver.find_element(By.NAME, 'username').send_keys('jane@example.com')
    driver.find_element(By.NAME, 'password').send_keys('••••••••')
    driver.find_element(By.CSS_SELECTOR, 'button[type=submit]').click()

    # explicit wait
    WebDriverWait(driver, 10).until(EC.url_contains('/dashboard'))
    welcome = driver.find_element(By.TAG_NAME, 'h1')
    assert 'Welcome, Jane' in welcome.text
```

Puppeteer + Node.js login.test.js

```javascript
// connect to TestingBot over the DevTools protocol
import puppeteer from 'puppeteer-core';

const caps = { key: 'KEY', secret: 'SECRET', browserName: 'chrome', browserVersion: 'latest' };
const browser = await puppeteer.connect({
  browserWSEndpoint: `wss://cloud.testingbot.com/puppeteer?capabilities=${encodeURIComponent(JSON.stringify(caps))}`,
});
const page = await browser.newPage();
await page.goto('https://app.example.com/login');
await page.type('#username', 'jane@example.com');
await page.type('#password', '••••••••');
await page.click('button[type=submit]');
await page.waitForSelector('h1');
```

Seleniumのテストは[WebDriverハブ](https://ja.testingbot.com/support/web-automate/selenium)に接続し、Puppeteerのスクリプトは[browserWSEndpoint](https://ja.testingbot.com/support/web-automate/puppeteer)経由で接続します。どちらも同じTestingBotダッシュボードに表示されます。

 意思決定マトリックス 
## どちらを選ぶかは

### Seleniumを選択する場合

- Chromiumだけでなく、Safari、Internet Explorer 11、Edgeを含む真のクロスブラウザカバレッジが必要な場合。
- チームがJava、C#、Ruby、またはPythonで開発を行っており、完全なクライアントライブラリの互換性を求めている場合。
- 実際のiOSおよびAndroidデバイスをテストする場合。Appiumは、同じWebDriverプロトコルを再利用します。
- Chrome固有のものではなく、ベンダー中立のW3C標準プロトコルを求めている場合。
- 書き直したくない成熟したPage ObjectライブラリやBDDフレームワーク（Cucumber、SpecFlow）をお持ちの場合。

[TestingBotでSeleniumを実行する](https://ja.testingbot.com/features/automation/selenium)

### Puppeteerを選ぶとき

- Chrome、Chromium、またはEdgeのみを自動化すればよく、可能な限り高速な実行を求めている場合。
- チームがNode.js優先で、JavaScriptまたはTypeScriptのAPIを求めている場合。
- テストと並行して、Webスクレイピング、PDF生成、スクリーンショット、パフォーマンストレースを行う場合。
- ネットワーク、コンソール、CDPイベントへのDevToolsプロトコルの直接アクセスを求めている場合。
- Safari、Internet Explorer、実際のモバイルデバイス、またはJavaScript以外の言語を必要としない場合。

[TestingBotでPuppeteerを実行する](https://ja.testingbot.com/features/automation/puppeteer)

 TestingBotは両方をサポートしています 
## どちらかを選ぶのはやめて、両方を同じグリッドで実行しよう

SeleniumをWebDriverハブに指定し、PuppeteerをそのbrowserWSEndpoint経由で接続します。テストは同じ6100+ブラウザとデバイス、同じダッシュボード、同じ並列スロット、同じEUデータ所在地を共有します。

- 同じ認証、同じプロジェクト、同じ請求
- 両ツールのテスト履歴を並べて表示
- オープンソースであれば無料、両方のツール

[無料で始める](https://ja.testingbot.com/users/sign_up) [デモをリクエストする](https://testingbot.com/demo)

testingbot.com / run both

# Selenium

webdriver.Remote(  
command\_executor='https://hub.testingbot.com/wd/hub'  
)

// Puppeteer

puppeteer.connect({  
browserWSEndpoint:  
'wss://cloud.testingbot.com/puppeteer'  
})

 よくある質問 
## よくある質問

チームがこれらのツールを選択する前、あるいは組み合わせる前に自問する質問。

PuppeteerはSeleniumより速いですか？

通常はそうです、Chromeでは。PuppeteerはChrome DevToolsプロトコルを直接やり取りし、WebDriverプロトコルのHTTPラウンドトリップを回避するため、Chrome専用のスイートはしばしばより高速に実行されます。ただし、この優位性はChromiumベースのブラウザにのみ適用され、テストがネットワークに依存するようになると差は縮まります。Selenium 4のBiDiサポートもその差を縮めています。速度は確かに存在しますが、Seleniumのクロスブラウザの広さに対して決定的な要因になることはめったにありません。

PuppeteerはSeleniumを置き換えられますか？

Chrome中心の作業に限ります。Puppeteerは、Node.jsからChrome、Chromium、Edgeを自動化するのに優れていますが、SafariやInternet Explorerを操作できず、実際のモバイルサポートはなく、JavaScript専用です。クロスブラウザテスト、複数の言語、または実際のデバイスが必要な場合は、Seleniumの方が幅広いツールであり続けます。多くのチームは、高速なChromeチェックにはPuppeteerを、完全なクロスブラウザカバレッジにはSeleniumを使用します。

PuppeteerはChrome以外のブラウザをサポートしていますか？

Puppeteerは、Chrome、Chromium、ChromiumベースのEdgeを操作し、実験的にFirefoxをサポートしています。SafariやInternet Explorerは操作できません。Seleniumは、ベンダー提供のドライバを介して、SafariやInternet Explorer 11を含む主要なすべてのブラウザの実際のバイナリを操作します。Chromiumを超える何かが必要な場合は、この2つのうちSeleniumが選択肢となります。TestingBotは両方をブラウザグリッド全体で実行します。

Puppeteerはモバイルアプリのテストを行うことができますか？

いいえ。PuppeteerはChromiumでモバイルビューポートのエミュレーションを提供していますが、ネイティブのiOSアプリやAndroidアプリを操作することはできません。実際のモバイルテストには、[Appium](https://ja.testingbot.com/features/automation/appium)、[XCUITest](https://ja.testingbot.com/features/automation/xcuitest)、[Espresso](https://ja.testingbot.com/features/automation/espresso)、または[Maestro](https://ja.testingbot.com/features/automation/maestro)が必要です。Appiumは、Seleniumの基盤となっているWebDriverプロトコルを再利用します。TestingBotは、実際のiOSおよびAndroidデバイス上でこれらのすべてを実行します。

WebスクレイピングにはPuppeteerとSeleniumのどちらが適していますか？

Puppeteerは、DevToolsへの直接アクセスとNode.jsエコシステムのおかげで、スクレイピング、PDF生成、ヘッドレスChrome自動化においてより一般的な選択肢です。Seleniumもスクレイピングは可能ですが、その強みは多数の言語にわたるクロスブラウザのテスト自動化にあります。仕事に合ったツールを選びましょう。Chrome自動化のタスクにはPuppeteerを、標準ベースのクロスブラウザテストにはSeleniumを。

TestingBot上でPuppeteerを並列で実行できますか？

はい。Puppeteerのワーカーベースの並列化（Jest、Mocha、またはカスタムランナー経由）は、TestingBotグリッドに対して機能します。各ワーカーはWebSocketエンドポイント経由で独自のリモートブラウザを開きます。同時実行数はプランによって上限が定められています。SeleniumはWebDriverハブを介して同じ方法で並列化します。

TestingBot上でSeleniumとPuppeteerを実行できますか？

はい、どちらも同じTestingBotクラウド上で動作します。Seleniumは`webdriver.Remote`を介して`https://hub.testingbot.com/wd/hub`に接続します。Puppeteerは`puppeteer.connect`で、`wss://cloud.testingbot.com/puppeteer`の`browserWSEndpoint`を使用して接続します。どちらのツールのテストも同じダッシュボードに表示され、並列スロットを共有し、同じEUデータ所在地、ビデオ録画、CI/CD統合のメリットを享受できます。どちらもオープンソースプロジェクトでは無料で利用できます。

さらに詳しく知りたい方は、専用の[Selenium](https://ja.testingbot.com/features/automation/selenium)ページと[Puppeteer](https://ja.testingbot.com/features/automation/puppeteer)ページをご覧ください。

## Related comparisons
[Playwright vs Selenium](https://ja.testingbot.com/playwright-vs-selenium) [Cypress vs Playwright](https://ja.testingbot.com/cypress-vs-playwright)

### 無料トライアルにサインアップ

TestingBotのクラウド上で、Selenium、Puppeteer、またはその両方を実行できます。

[無料トライアルを開始する](https://ja.testingbot.com/users/sign_up)

あなたが好きかもしれないリソース

[![Selenium and Generative AI](https://ja.testingbot.com/assets/resources/articles/28-af707bf052844eb00f861bb6ebba57e6be4479dde1c78a5df4e70d2f597a8b18.webp)](https://testingbot.com/resources/articles/generative-ai-selenium)
### [Selenium and Generative AI](https://testingbot.com/resources/articles/generative-ai-selenium)

How to use generative AI to produce realistic test data for Selenium runs, and why varied data uncovers bugs that fixed fixtures never will.

[続きを読む: Selenium and Generative AI](https://testingbot.com/resources/articles/generative-ai-selenium)

[![Automated Testing with Puppeteer](https://ja.testingbot.com/assets/resources/articles/11-416015eb394d928299663409dccd67993b0a664f4b3ff456803fefc6bf1f325a.webp)](https://testingbot.com/resources/articles/automated-testing-with-puppeteer)
### [Automated Testing with Puppeteer](https://testingbot.com/resources/articles/automated-testing-with-puppeteer)

Puppeteer combined with a test framework provides a great way to run automated browser tests. Follow this guide for more information.

[続きを読む: Automated Testing with Puppeteer](https://testingbot.com/resources/articles/automated-testing-with-puppeteer)

[![Visual Testing with Playwright](https://ja.testingbot.com/assets/resources/articles/14-f3f2e8954c8a47cf0bb29059b44f4d2f40998442e22db6f8acdccb8e5b34d8c1.webp)](https://testingbot.com/resources/articles/playwright-visual-regression-testing)
### [Visual Testing with Playwright](https://testingbot.com/resources/articles/playwright-visual-regression-testing)

Playwright provides automated browser testing. It offers a built-in feature to perform visual regression testing for your website.

[続きを読む: Visual Testing with Playwright](https://testingbot.com/resources/articles/playwright-visual-regression-testing)
