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を提供する。
ブログ
- Official Selenium Blog - SeleniumHQによる公式ブログ。
- Elemental Selenium - Seleniumをプロのように使うための週1回配信の無料メール。
- SauceLabs Blog - SauceLabsがキュレーションするブログ。
ライセンス
法律の及ぶ範囲で、Christian Bromannはこの著作物に対するすべての著作権および関連する権利・隣接権を放棄しています。
