このページの内容

Awesome Selenium

Seleniumを扱う資料や関連プロジェクトをまとめたAwesomeリストです。

リソース

ツール

Javascript

  • selenium-webdriver - Seleniumプロジェクト公式のWebDriver JavaScriptバインディング。
  • WD - WebDriver/Selenium 2用node.jsクライアント。
  • WebdriverIO - 50以上の定義済みアクションを備えた、より優れたWebDriverバインディング実装。
  • Zombie.js - 非常に高速なヘッドレスのフルスタックテスト。
  • SlimerJS - Web開発者向けのスクリプト可能なブラウザー。
  • Nightwatch - 効率的で分かりやすいJavaScriptエンドツーエンドテスト。
  • Karma - ユニットテスト(主にAngularJS)向けに、開発者へ生産的なテスト環境を提供する。
  • Protractor - AngularJSアプリケーション向けのエンドツーエンドテストフレームワーク。
  • CodeceptJS - NodeJS向けのモダンな受け入れテストフレームワーク。

Ruby

  • Selenium with Ruby - SeleniumのRubyバインディング。
  • Watir - 苦痛を伴わない自動テスト。
  • Anemone - Anemone Webスパイダーフレームワーク。
  • Mechanize - Webサイトとの操作を自動化する。
  • Spidr - サイト、複数ドメイン、特定リンク、または無限にクロールできるWebスパイダーライブラリ。
  • cobweb - resqueを用いてクロールをクラスタリングし、非常に大規模なサイトを素早くクロールできるWebクローラー。
  • Capybara - rackベースWebアプリケーション向けの統合テストツール。ユーザーがWebサイトと対話する方法をシミュレートする。

PHP

  • Facebook WebDriver - webdriver向けPHPクライアント。
  • Selenium Setup - PHP開発者が独自のSeleniumサーバーを起動するためのツール。
  • Steward - php-webdriverとPHPUnitを統合するテストランナー。

Python

  • Selenium with Python - SeleniumのPythonバインディング。
  • Helium - Seleniumをより簡単かつ高速に使えるようにする。
  • Selene - Selenideに着想を得た簡潔で読みやすい自動テストフレームワーク。Selenideと同様にAjaxを適切にサポートする。
  • mechanize - 状態を持つプログラム的Webブラウジング。
  • Robot - 受け入れテストとATDDのための汎用テスト自動化フレームワーク。
  • behave-webdriver - SeleniumとPythonを用いた振る舞い駆動テスト。

Java

  • Selenium with Java - SeleniumのJavaバインディング。
  • Conductor - テスト作成を容易にする高速化済みSeleniumフレームワーク。
  • darcy - 構造化され保守しやすい自動化のためのページオブジェクトフレームワーク。
  • Selenide - Fluent APIを使い、読みやすく保守しやすい自動テストを書くためのフレームワーク。Ajaxやタイムアウトの大部分を解決する仕組みを持つ。
  • Galen Framework - レスポンシブWebサイトのルックアンドフィールを自動テストする。
  • Serenity - より高品質な自動受け入れテストを素早く書くためのオープンソースライブラリ(旧Thucydides)。
  • seleniumQuery - JavaでWebDriver向けに提供するjQuery風のクロスドライバーインターフェース。薄いレイヤーとして単独でも、必要な場合に検証や待機を簡単にする目的で任意のフレームワーク上でも使える。
  • WebDriverManager - Selenium WebDriverバイナリーを自動管理する。
  • Lightning - 軽量かつ非常に高速なWebDriverクライアント。

C#

  • Selenium with C# - SeleniumのC#バインディング。
  • Atata - Selenium WebDriverに基づく、機能豊富な自動Webテストフレームワーク。
  • Strontium - Selenium/WebDriver(Remote)Server向けの.NET実装(ただし旧式)。

Groovy

  • Geb - スクリプト作成、スクレイピング、一般的な自動化に使えるほか、Spock、JUnit、TestNGなどのテストフレームワークとの統合により、機能・Web・受け入れテストのソリューションとしても使える。

Dart

  • dart.webdriver - Dart向けWebDriverバインディングを提供する。WebDriver JSONインターフェースを利用するため、WebDriverリモートサーバーが必要になる。

CSS回帰テスト

  • WebdriverCSS - WebdriverIO向けの回帰テストツール(現在は非推奨。しばらくはwdio-screenshotを使用)。

  • Website-Diff - Wayback Machine対応とSeleniumによる視覚的回帰テストを備えた、インテリジェントなWebページ比較ツール。

  • Wopee.io - AI搭載テストエージェントによる自律型の視覚的回帰テストプラットフォーム。Playwright、Cypress、Robot Frameworkと統合する。

コンテナ

Docker

  • elgalu/docker-selenium - ChromeとFirefoxに加え、ビデオ記録もサポートするDocker上のSelenium。
  • Ggr - 大規模なSeleniumクラスターを作るための軽量ロードバランサー。
  • SeleniumHQ/docker-selenium - ChromeとFirefoxを備えたSelenium Standalone Server、Hub、Node構成用のDockerイメージ。
  • Selenoid - Dockerコンテナでブラウザーを起動する軽量なSelenium hub実装。
  • zalando/zalenium - 使い捨て可能で柔軟なSelenium Gridインフラストラクチャを誰でも利用できるようにする。
  • bravostudiodev/bravo-grid - Selenium Grid Extras(Selenium Grid節を参照)向けDockerイメージ/セットアップ。リモートSikuliテスト・自動化の実行とグリッドノードのファイルアップロード/ダウンロードを提供する。

Kubernetes

  • kubernetes/examples - KubernetesクラスターにSelenium HubとNodeをデプロイする例。
  • Moon - Kubernetesでブラウザーを起動する、商用クローズドソースのエンタープライズSelenium実装。
  • Callisto - Kubernetesでブラウザーを起動するオープンソースツール。Seleniumセッションごとに分離環境を作成する。
  • WebGrid - オープンソース、分散型、スケーラブルで堅牢なselenium-grid相当品。

ドライバー

デスクトップ(ブラウザー)

  • Firefox - Firefoxドライバー。FF v48未満用はダウンロード可能なselenium-server-standalone.jarに含まれる。
  • Geckodriver - Firefoxドライバー(FF v48超)。Selenium v3以上でサポートされる。
  • Chrome - ChromeDriverはChromium向けにWebDriverのwire protocolを実装するスタンドアロンサーバー。
  • Internet Explorer - InternetExplorerDriverはWebDriverのwire protocolを実装するスタンドアロンサーバー。
  • Edgedriver - Edge用Microsoft Webdriverサーバー。
  • Safari - SafariDriverはSafariブラウザー拡張として実装される。従来のクライアント/サーバー関係を反転し、WebSocketsでWebDriverクライアントと通信する(Safari v9以下のみ対応。macOS Sierra以降のSafariにはAppleによるクローズドソースのSafariDriverが統合されている)。
  • Opera - OperaDriverはOpera Softwareとボランティアが開発した、Opera向けWebDriver APIを実装するベンダーサポート付きWebDriver実装。

モバイル(ブラウザーとアプリ)

  • Appium - ネイティブおよびハイブリッドモバイルアプリ用のオープンソーステスト自動化フレームワーク。WebDriverプロトコルでiOS・Androidアプリを操作する。
  • Selendroid - Android instrumentationフレームワークに基づく。
  • ios-driver - Selenium / WebDriverを使い、任意のiOSネイティブ、ハイブリッド、またはモバイルWebアプリケーションをテストする。
  • WebDriverAgent - WebDriver API経由でデバイスをリモート操作するiOS向けWebDriverサーバー。

デスクトップGUI自動化(非ブラウザー中心)

  • WinAppDriver - Windowsアプリケーション自動化のためのMicrosoft WebDriver実装。
  • Winium - Windowsプラットフォーム向け自動化フレームワーク。無料かつオープンソースで、Seleniumベース。Windows Desktop(WPF、WinForms)、Windows StoreまたはWindows Phone向けUniversal Apps、Windows Phone Silverlight Appsをサポートする。
  • QtWebDriver - WebDriverでQtベースGUIアプリケーションを自動化するためのツール。
  • AutoItDriverServer - (Remote)WebDriver APIを介してAutoItを制御・操作するSeleniumサーバー。
  • AutoPyDriverServer - (Remote)WebDriver APIを介してAutoPyを制御・操作するSeleniumサーバー。
  • Appium for Mac - Mac OS Xデスクトップを自動化するためのAppium/WebDriver実装。
  • SilkAppDriver - (Remote)WebDriver APIを介して商用SilkTestプラットフォームを制御するSeleniumサーバー。

デスクトップツール

  • SWET - 同等の機能を提供するSWD Page Recorderの後継。
  • Looking Glass - クロスブラウザー要素インスペクターとSeleniumコードジェネレーターを提供するJavaアプリケーション。
  • Silk WebDriver - SilkTestの開発元が提供する、記録・再生・スクリプト書き出し向けSelenium IDE代替品。
  • Fire IE Selenium - Internet Explorerブラウザー向けの要素検査を提供する、Microsoft Excelベースのツール。

Selenium Grid

  • Selenium Grid Extras - ビデオ記録など、基本のSelenium Gridを超える追加機能を提供するフレームワーク。
  • SeLion - 基本のSelenium Grid機能を超え、特に安定性向上などの機能を備えてSeleniumテストを実行するための(Java)フレームワーク。
  • Selenium Grid Extensions - Sikuliテスト/自動化のリモート実行やグリッドノード上のファイルアップロード/ダウンロードなど、Selenium Gridへ追加機能を提供する拡張セット。

クラウドサービス

  • Sauce Labs - 優れたクロスブラウザーテスト。300以上のOS/ブラウザープラットフォームでSeleniumテスト、モバイルテスト、JSユニットテストを行える。無料で開始可能。
  • HeadSpin - 数千台の実デバイス上の実ブラウザーでWebサイトのクロスブラウザー互換性をテストする。クラウド上の複数のデスクトップ・モバイルブラウザーへ即座にアクセスでき、無料トライアルを提供する。
  • Browserstack - 実ブラウザーでWebサイトのクロスブラウザー互換性をテストする。複数のデスクトップ・モバイルブラウザーへ即座にアクセスでき、無料トライアルを提供する。
  • TestGrid - 1,000以上の実ブラウザーとOSでモバイルアプリ・Webサイトのエンドツーエンドテストを行う。無料トライアルを提供する。
  • LambdaTest - 2,000以上の実ブラウザーとOSでWebサイトのクロスブラウザー互換性をテストする。無料トライアルを提供する。
  • TestingBot - クラウドでSeleniumによる簡単なクロスブラウザーテストを提供する。
  • Moon Cloud - 分単位課金と無制限のブラウザー数を備えた、パブリッククラウド上の専用Seleniumクラスター。
  • Mail7 - メールワークフローテストを自動化する使い捨てメールサービス。この文書では、使い捨てメールでMail7をSeleniumと実装する方法を説明する。
  • Thundra Foresight - テスト失敗を素早く見つけることでテストスイートを可視化するツール。
  • Hyperbrowser - プロキシ、CAPTCHA解決、セッション記録などの高度な機能を備え、ヘッドレスChromeによるSelenium自動化を実行・スケールさせるブラウザーインフラストラクチャと自動化。

デバイスファーム

  • OpenSTF - 主にAndroid向けだがiOSにも対応する、独自のデバイスファームを運用するフレームワーク。

Webスクレイピング/マイニング

  • Scrapy - Python向けの主にスクレイパー/マイナー。高速で十分に文書化され、優れたマイニングデプロイメントのためにDjango Dynamic Scraperや、PaaS(サーバーレス)デプロイメントのためにScrapy Cloudと連携できる。端末またはサーバーのスタンドアロンプロセスで動作し、Celery上に構築されたものを利用できる。
  • Node-Crawler - NodeJSおよびサーバーサイドjQuery向けのNode.js Webクローラー/スパイダー。

仕様

  • The WebDriver Wire Protocol - ブラウザーまたはRemoteWebDriverサーバーと通信するすべてのWebDriver実装は、共通のwire protocolを使用する必要がある。
  • WebDriver - WebDriver APIを定義する仕様。プログラムやスクリプトがWebブラウザーの動作を検査・制御できる、プラットフォームと言語に依存しないインターフェースおよび関連wire protocolを提供する。

ブログ

ライセンス

CC0

法律の及ぶ範囲で、Christian Bromannはこの著作物に対するすべての著作権および関連する権利・隣接権を放棄しています。