Awesome Selenium Overview
A curated list of delightful Selenium resources.
🏠 Home · 🔥 Feed · 📮 Subscribe · ❤️ Sponsor · 😺 christian-bromann/awesome-selenium · ⭐ 921 · 🏷️ Testing
Awesome Selenium
Inspired by the awesome (⭐262k) list thing.
Resources
- Tools
- CSS Regression Testing
- Containers
- Driver
- Desktop Tools
- Selenium Grid
- Cloud Services
- Device Farms
- Web Scraping / Mining
- Specifications
- Blogs
Tools
Javascript
- selenium-webdriver (⭐27k) - The official WebDriver JavaScript bindings from the Selenium project.
- WD (⭐1.5k) - WebDriver/Selenium 2 node.js client.
- WebdriverIO - better implementation of WebDriver bindings with predefined 50+ actions.
- Zombie.js - Insanely fast, headless full-stack testing.
- SlimerJS - A scriptable browser for Web developers.
- Nightwatch - efficient and straightforward Javascript End-to-End tests.
- Karma - Brings a productive testing environment to developers for unit testing (mostly AngularJS).
- Protractor - Protractor is an end-to-end test framework for AngularJS applications.
- CodeceptJS - Modern Era Acceptance Testing Framework for NodeJS.
Ruby
- Selenium with Ruby - Selenium Ruby bindings
- Watir - Automated testing that doesn’t hurt
- Anemone (⭐1.6k) - Anemone web-spider framework.
- Mechanize - automating interaction with websites.
- Spidr (⭐760) - web spidering library that can spider a site, multiple domains, certain links or infinitely.
- cobweb - web crawler that can use resque to cluster crawls to quickly crawl extremely large sites.
- Capybara - an integration testing tool for rack based web applications. It simulates how a user would interact with a website.
PHP
- Facebook WebDriver (⭐4.9k) - A PHP client for webdriver.
- Selenium Setup (⭐27) - A tool for PHP developers to start their own Selenium server.
- Steward (⭐220) - A test runner integrating php-webdriver with PHPUnit.
Python
- Selenium with Python - Selenium Python bindings
- Helium (⭐3.5k) - Helium makes Selenium easier and faster to use
- Selene (⭐617) - Selenide-inspired concise and readable automated test framework, supports Ajax well like Selenide.
- mechanize - Stateful programmatic web browsing.
- Robot - Robot Framework is a generic test automation framework for acceptance testing and ATDD.
- behave-webdriver (⭐52) behavior driven testing with Selenium and Python.
Java
- Selenium with Java - Selenium Java bindings
- Conductor - Turbo-boosted Selenium framework that makes test writing a breeze.
- darcy (⭐22) - Page object framework for structured, maintainable automation.
- Selenide (⭐1.7k) - A framework for writing easy-to-read and easy-to-maintain automated tests using a Fluent API. Selenide has a magic trick that resolves most problems with Ajax and timeouts.
- Galen Framework - Automated testing of look and feel for your responsive websites.
- Serenity - It is an open source library for writing better quality automated acceptance tests faster. (Formerly Thucydides).
- seleniumQuery (⭐69) - jQuery-like cross-driver interface in Java for WebDriver. Designed as a thin layer, it can be used alone or on top of your favorite framework just to make some cases (e.g. asserting/waiting) simpler when needed.
- WebDriverManager (⭐2.3k) - Automatic management of Selenium WebDriver binaries.
- Lightning (⭐29) - Lightweight and lightning fast WebDriver client.
C#
- Selenium with C# - Selenium C# bindings
- Atata (⭐469) - Automated web testing full featured framework based on Selenium WebDriver.
- Strontium (⭐9) - A .NET implementation (but outdated) for Selenium/WebDriver (Remote) Server
Groovy
- Geb - It can be used for scripting, scraping and general automation — or equally as a functional/web/acceptance testing solution via integration with testing frameworks such as Spock, JUnit & TestNG.
Dart
- dart.webdriver (⭐127) - Provides WebDriver bindings for Dart. These use the WebDriver JSON interface, and as such, require the use of the WebDriver remote server.
CSS Regression Testing
- WebdriverCSS (⭐622) - Regression testing tool for WebdriverIO (currently deprecated, please use wdio-screenshot for the time being).
Containers
Docker
- elgalu/docker-selenium (⭐1.4k) - Selenium in Docker with Chrome & Firefox plus video recording support.
- Ggr (⭐302) - A lightweight load balancer used to create big Selenium clusters.
- SeleniumHQ/docker-selenium (⭐6.9k) - Docker images for Selenium Standalone Server, Hub, and Node configurations with Chrome and Firefox.
- Selenoid (⭐2.4k) - A lightweight Selenium hub implementation launching browsers in Docker containers.
- zalando/zalenium (⭐2.4k) - Allows anyone to have a disposable and flexible Selenium Grid infrastructure
- bravostudiodev/bravo-grid (⭐6) - Docker image/setup for Selenium Grid Extras (see under Selenium Grid section), for providing remote Sikuli test/automation execution and grid node file upload/download support.
Kubernetes
- kubernetes/examples (⭐5.7k) - Example deployment of Selenium Hub and Nodes on a Kubernetes cluster
- Moon (⭐187) - A commercial closed-source enterprise Selenium implementation using Kubernetes to launch browsers
- Callisto (⭐97) - An open-source tool to launch browsers in Kubernetes. Separate is created for each selenium session.
- WebGrid (⭐32) - An open-source, decentralized, scalable and robust selenium-grid equivalent.
Driver
Desktop (browsers)
- Firefox (⭐27k) - Firefox driver (for FF < v48) is included in the selenium-server-standalone.jar available in the downloads.
- Geckodriver (⭐6.7k) - Firefox driver (for FF > v48), supported with Selenium >= v3
- Chrome - ChromeDriver is a standalone server which implements WebDriver's wire protocol for Chromium.
- Internet Explorer (⭐27k) - The InternetExplorerDriver is a standalone server which implements WebDriver's wire protocol.
- Edgedriver - Microsoft Webdriver server for Edge
- Safari (⭐27k) - The SafariDriver is implemented as a Safari browser extension. The driver inverts the traditional client/server relationship and communicates with the WebDriver client using WebSockets (only supported for Safari <= v9, all new Safari version comming with macOS Sierra come with an integrated SafariDriver that is closed source by Apple).
- Opera (⭐240) - OperaDriver is a vendor-supported WebDriver implementation developed by Opera Software and volunteers that implements WebDriver API for Opera.
Mobile (browsers and apps)
- Appium - Appium is an open source test automation framework for use with native and hybrid mobile apps. It drives iOS, Android Apps using the WebDriver protocol.
- Selendroid - Selendroid is based on the Android instrumentation framework.
- ios-driver - Test any IOS native, hybrid, or mobile web application using Selenium / WebDriver.
- WebDriverAgent (⭐53) - a WebDriver server for iOS to remote control devices via WebDriver API.
Desktop GUI Automation (non-browser-centric)
- WinAppDriver (⭐3.2k) - Microsoft's WebDriver implementation for Windows application automation.
- Winium (⭐366) - Automation framework for Windows platforms. It is free. It is opensource. It is Selenium-based. Supports: Windows Desktop (WPF, WinForms); Windows Store or Universal Apps for Windows Phone; Windows Phone Silverlight Apps.
- QtWebDriver (⭐185) - For using WebDriver to automate Qt-based GUI applications.
- AutoItDriverServer (⭐32) - Selenium server to control/drive AutoIt via (Remote)WebDriver API.
- AutoPyDriverServer (⭐14) - Selenium server to control/drive AutoPy via (Remote)WebDriver API.
- Appium for Mac - Appium/WebDriver implementation for automating Mac OS X desktop.
- SilkAppDriver (⭐8) - Selenium server to control/drive the commercial SilkTest platform via (Remote)WebDriver API.
Desktop Tools
- SWET (⭐34) - A successor to SWD Page Recorder, for the same functionality.
- Looking Glass (⭐52) - Java application that offers a cross-browser element inspector and Selenium code generator.
- Silk WebDriver - A Selenium IDE alternative for record, playback, and script export, from the creators of SilkTest.
- Fire IE Selenium - Microsoft Excel-based tool providing element inspection for Internet Explorer browser.
Selenium Grid
- Selenium Grid Extras (⭐537) - A framework that provides additional features beyond the basic Selenium Grid like video recording.
- SeLion (⭐271) - A (Java) framework for running Selenium tests with additional features beyond the basic Selenium Grid functionality, particularly like stability improvements, etc.
- Selenium Grid Extensions (⭐46) - A set of extensions for Selenium Grid that provide additional features like running Sikuli tests/automation remotely, upload/download files on a grid node.
Cloud Services
- Sauce Labs - Cross browser testing made awesome. Selenium testing, mobile testing, JS unit testing on 300+ OS/browser platforms. Get started for free.
- HeadSpin - Test your website for cross browser compatibility on thousands of real device running real browsers. Get instant access to multiple desktop and mobile browsers on the cloud. Get Free Trial.
- Browserstack - Test your website for cross browser compatibility on real browsers. Instant access to multiple desktop and mobile browsers. Get Free Trial.
- TestGrid - End to End testing of mobile apps & websites on 1000+ real browsers & OS. Request Free Trial.
- LambdaTest - Test your website for cross browser compatibility on 2000+ real browsers & OS. Get Free Trial.
- TestingBot - TestingBot provides easy cross browser testing with Selenium in the cloud.
- Moon Cloud - Your dedicated Selenium cluster in public cloud platform with per-minute billing and unlimited number of browsers.
- Mail7 - Disposable email service to automate the email workflow testing, This document explains how to implement Mail7 with Selenium
- Thundra Foresight - A visibility tool into your test suites by spotting test failures in no time.
Device Farms
- OpenSTF (⭐2.1k) - A framework for running your own device farm, geared toward Android, but also iOS.
Web Scraping / Mining
- Scrapy - Python, mainly a scraper/miner - fast, well documented and, can be linked with Django Dynamic Scraper for nice mining deployments, or Scrapy Cloud for PaaS (server-less) deployment, works in terminal or an server stand-alone process, can be used with Celery, built on top of Twisted.
- Node-Crawler (⭐6.5k) - Node.js Web Crawler/Spider for NodeJS + server-side jQuery.
Specifications
- The WebDriver Wire Protocol - All implementations of WebDriver that communicate with the browser, or a RemoteWebDriver server shall use a common wire protocol.
- WebDriver - This specification defines the WebDriver API, a platform and language-neutral interface and associated wire protocol that allows programs or scripts to introspect into, and control the behavior of, a web browser.
Blogs
- Official Selenium Blog - The official blog by SeleniumHQ.
- Elemental Selenium - A free, once-weekly e-mail on how to use Selenium like a Pro.
- SauceLabs Blog - Blog curated by SauceLabs.
License
To the extent possible under law, Christian Bromann has waived all copyright and related or neighboring rights to this work.