├── .editorconfig ├── .github ├── dependabot.yml └── workflows │ ├── assets │ └── awesome_webdriverio_branding.png │ ├── expense.yml │ └── test.yaml ├── .gitignore ├── .nvmrc ├── LICENSE ├── README.md ├── contributing.md ├── package-lock.json └── package.json /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | end_of_line = lf 10 | insert_final_newline = true 11 | trim_trailing_whitespace = true 12 | 13 | [*.md] 14 | insert_final_newline = false 15 | trim_trailing_whitespace = false 16 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | --- 2 | version: 2 3 | 4 | updates: 5 | - package-ecosystem: npm 6 | directory: "/" 7 | schedule: 8 | interval: weekly 9 | time: "11:00" 10 | open-pull-requests-limit: 10 11 | versioning-strategy: increase-if-necessary 12 | 13 | - package-ecosystem: "github-actions" 14 | directory: "/" 15 | schedule: 16 | interval: "weekly" 17 | time: "11:00" 18 | -------------------------------------------------------------------------------- /.github/workflows/assets/awesome_webdriverio_branding.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webdriverio/awesome-webdriverio/bea53230cb68595d00d96ab7451048b81c62acff/.github/workflows/assets/awesome_webdriverio_branding.png -------------------------------------------------------------------------------- /.github/workflows/expense.yml: -------------------------------------------------------------------------------- 1 | name: Expense Contribution 2 | 3 | on: 4 | workflow_dispatch: 5 | inputs: 6 | prNumber: 7 | description: "Number of the PR (without #)" 8 | required: true 9 | amount: 10 | description: "The expense amount you like to grant for the contribution in $" 11 | required: true 12 | type: choice 13 | options: 14 | - 15 15 | - 25 16 | - 35 17 | - 50 18 | - 100 19 | - 150 20 | - 200 21 | - 250 22 | - 300 23 | - 350 24 | - 400 25 | - 450 26 | - 500 27 | - 550 28 | - 600 29 | - 650 30 | - 700 31 | - 750 32 | - 800 33 | - 850 34 | - 900 35 | - 950 36 | - 1000 37 | 38 | jobs: 39 | authorize: 40 | runs-on: ubuntu-latest 41 | steps: 42 | - uses: octokit/request-action@v2.4.0 43 | with: 44 | route: GET /orgs/:organisation/teams/:team/memberships/${{ github.actor }} 45 | team: technical-steering-committee 46 | organisation: webdriverio 47 | env: 48 | GITHUB_TOKEN: ${{ secrets.WDIO_BOT_GITHUB_TOKEN }} 49 | expense: 50 | permissions: 51 | contents: write 52 | id-token: write 53 | needs: [authorize] 54 | runs-on: ubuntu-latest 55 | steps: 56 | - name: Run Expense Flow 57 | uses: webdriverio/expense-action@v1 58 | with: 59 | prNumber: ${{ github.event.inputs.prNumber }} 60 | amount: ${{ github.event.inputs.amount }} 61 | env: 62 | RESEND_API_KEY: ${{ secrets.RESEND_API_KEY }} 63 | GH_TOKEN: ${{ secrets.WDIO_BOT_GITHUB_TOKEN }} 64 | -------------------------------------------------------------------------------- /.github/workflows/test.yaml: -------------------------------------------------------------------------------- 1 | name: Test 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | pull_request: 8 | 9 | jobs: 10 | test: 11 | runs-on: ubuntu-latest 12 | 13 | steps: 14 | - uses: actions/checkout@v4 15 | with: 16 | fetch-depth: 0 17 | - uses: actions/setup-node@v4 18 | with: 19 | node-version: '20.x' 20 | - name: Install 21 | run: npm install 22 | - name: Test 23 | run: npm test 24 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | # Runtime data 7 | pids 8 | *.pid 9 | *.seed 10 | 11 | # Directory for instrumented libs generated by jscoverage/JSCover 12 | lib-cov 13 | 14 | # Coverage directory used by tools like istanbul 15 | coverage 16 | 17 | # nyc test coverage 18 | .nyc_output 19 | 20 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 21 | .grunt 22 | 23 | # node-waf configuration 24 | .lock-wscript 25 | 26 | # Compiled binary addons (http://nodejs.org/api/addons.html) 27 | build/Release 28 | 29 | # Dependency directories 30 | node_modules 31 | jspm_packages 32 | 33 | # Optional npm cache directory 34 | .npm 35 | 36 | # Optional REPL history 37 | .node_repl_history 38 | 39 | .DS_Store 40 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | v16.11.1 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Christian Bromann 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | awesome-webdriverio 3 |
4 |

5 | 6 | **[WebdriverIO](https://github.com/webdriverio/webdriverio)** Next-gen browser and mobile automation test framework for Node.js 7 | 8 | # Awesome WebdriverIO [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![Test](https://github.com/webdriverio/awesome-webdriverio/actions/workflows/test.yaml/badge.svg)](https://github.com/webdriverio/awesome-webdriverio/actions/workflows/test.yaml) 9 | 10 | **A curated list of awesome WebdriverIO resources, libraries, tools and applications** 11 | 12 | Inspired by the [awesome](https://awesome.re) list. Feel free to improve this list by [contributing](https://github.com/webdriverio/awesome-webdriverio/blob/master/contributing.md)! 13 | 14 | 15 | 16 | ## Contents 17 | 18 | - [WebdriverIO Ecosystem](#webdriverio-ecosystem) 19 | - [Support WebdriverIO](#support-webdriverio) 20 | - [Documentation](#documentation) 21 | - [Community](#community) 22 | - [Twitter](#twitter) 23 | - [Plugins](#plugins) 24 | - [Services](#services) 25 | - [Reporters](#reporters) 26 | - [Miscellaneous](#miscellaneous) 27 | - [Research & Training](#research--training) 28 | - [Articles](#articles) 29 | - [Videos](#videos) 30 | - [Conference/Meetup Talks/Webinars](#conferencemeetup-talkswebinars) 31 | - [Courses](#courses) 32 | - [Books](#books) 33 | - [WebdriverIO Examples](#webdriverio-examples) 34 | 35 | 36 | 37 | ## WebdriverIO Ecosystem 38 | 39 | ### Support WebdriverIO 40 | 41 | *The following references give you more information on how to financially support the project.* 42 | 43 | - [WebdriverIO Open Collective](https://opencollective.com/webdriverio) - Help support the teams ongoing development efforts. 44 | - [Sponsor Documentation](https://webdriver.io/docs/sponsor) 45 | - [GitHub Sponsor Page](https://github.com/sponsors/webdriverio) 46 | - [Tidelift Sponsor Page](https://tidelift.com/subscription/pkg/npm-webdriverio?utm_source=npm-webdriverio&utm_medium=github_sponsor_button) 47 | 48 | ### Documentation 49 | 50 | - [WebdriverIO 4.x](http://v4.webdriver.io) - WebdriverIO 4.x Documentation. 51 | - [WebdriverIO 5.x](http://v5.webdriver.io) - WebdriverIO 5.x Documentation. 52 | - [WebdriverIO 6.x](http://v6.webdriver.io) - WebdriverIO 6.x Documentation. 53 | - [WebdriverIO 7.x](http://v7.webdriver.io) - WebdriverIO 7.x Documentation. 54 | - [WebdriverIO 8.x](http://v8.webdriver.io) - WebdriverIO 8.x Documentation. 55 | 56 | ### Community 57 | 58 | - [Discord Server](https://discord.webdriver.io) 59 | - [#webdriverio in Selenium Slack](https://seleniumhq.slack.com/join/shared_invite/zt-f7jwg1n7-RVw4v4sMA7Zjufira_~EVw) 60 | - [Stack Overflow](http://stackoverflow.com/tags/webdriver-io) 61 | 62 | ### Twitter 63 | 64 | *People passionate about WebdriverIO (In no particular order)* 65 | 66 | - [Christian Bromann](https://twitter.com/bromann) - Staff Software Engineer at the Open Source Program Office at Sauce Labs. 67 | - [Kevin Lamping](https://twitter.com/klamping) - Senior Front End Engineer. 68 | - [Wim Selles](https://twitter.com/wswebcreation) - Senior Solutions Architect at Sauce Labs. 69 | 70 | ## Plugins 71 | 72 | ### Services 73 | 74 | - [WebdriverIO Community Services](https://github.com/webdriverio-community?q=service) - A set of community maintained services. 75 | - [Wdi5](https://github.com/js-soft/wdi5) - Cross-platform test framework for hybrid UI5 apps. wdi5 = Webdriver.IO + UI5 Test API + appium. 76 | - [ChromeDriver](https://github.com/webdriverio-community/wdio-chromedriver-service) - Run Chrome browser seamlessly when running tests. 77 | - [SafariDriver](https://github.com/webdriverio-community/wdio-safaridriver-service) - Run Safari browser seamlessly when running tests. 78 | - [GeckoDriver](https://github.com/webdriverio-community/wdio-geckodriver-service) - Run Gecko browser seamlessly when running tests. 79 | - [EdgeDriver](https://github.com/webdriverio-community/wdio-edgedriver-service) - Run Microsoft Edge browser seamlessly when running tests. 80 | - [Gmail](https://github.com/webdriverio-community/wdio-gmail-service) - Fetch e-mails from Google Mail. 81 | - [Intercept](https://github.com/webdriverio-community/wdio-intercept-service) - Capture and assert HTTP ajax calls. 82 | - [Zafira Listener](https://github.com/shashidharus/wdio-zafira-listener-service) - Report tests to Zafira Dashboard. 83 | - [Report Portal](https://github.com/borisosipov/wdio-reportportal-service) - Service used by Report Portal Reporter. 84 | - [Docker](https://github.com/stsvilik/wdio-docker-service) - Helps run functional/integration tests against/using containerized applications. 85 | - [WireMock](https://github.com/erwinheitzman/wdio-wiremock-service) - Run WireMock seamlessly when running tests. 86 | - [Slack](https://github.com/carmenmitru/wdio-slack-service) - Send test results as a slack notification/message to channels. 87 | - [LambdaTest](https://github.com/LambdaTest/wdio-lambdatest-service) - Manage tunnel and job metadata for LambdaTest users. 88 | - [Image Comparison (Visual Regression Testing)](https://github.com/wswebcreation/wdio-image-comparison-service) - Image comparison and visual regression testing. 89 | - [Ng-apimock](https://github.com/ng-apimock/webdriverio-plugin) - Service used by @ng-apimock/core. 90 | - [Novus Visual Regression](https://github.com/Jnegrier/wdio-novus-visual-regression-service) - Visual regression testing. 91 | - [Re-run](https://github.com/jwplayer/wdio-rerun-service) - Tracks failing tests and scenarios, allowing failing or unstable tests or scenarios to be re-run. 92 | - [winappdriver](https://github.com/licanhua/wdio-winappdriver-service) - Run WinAppDriver server seamlessly when running tests. 93 | - [ywinappdriver](https://github.com/licanhua/wdio-ywinappdriver-service) - Run ywinappdriver server seamlessly when running tests. 94 | - [PerformanceTotal](https://github.com/tzurp/performance-total) - Analyze performance of test automated flows. 95 | - [CleanupTotal](https://github.com/tzurp/cleanup-total) - Proper cleanup after each test made easy. 96 | - [AWS Device Farm](https://github.com/awslabs/wdio-aws-device-farm-service) - AWS Device Farm service. 97 | - [OCR service for Appium Native Apps](https://github.com/wswebcreation/wdio-ocr-service) - Run Tesseract OCR for Appium Native App tests. 98 | - [Auto-detect missing imports w/eslint](https://github.com/jamesmortensen/wdio-eslinter-service) - Automatically run eslint checks prior to executing tests. 99 | 100 | ### Reporters 101 | 102 | - [WebdriverIO Community Reporters](https://github.com/webdriverio-community?q=reporter) - A set of community maintained reporters. 103 | - [Report Portal](https://github.com/borisosipov/wdio-reportportal-reporter) - Report results to Report Portal. 104 | - [Video](https://github.com/presidenten/wdio-video-reporter) - Makes videos of failed tests and has optional allure integration. 105 | - [HTML](https://github.com/rpii/wdio-html-reporter) - Generates a nice HTML report. 106 | - [JSON](https://github.com/fijijavis/wdio-json-reporter) - Report results in JSON format. 107 | - [Mochawesome](https://github.com/fijijavis/wdio-mochawesome-reporter) - Report results in Mochawesome format. 108 | - [Timeline](https://github.com/QualityOps/wdio-timeline-reporter) - Report results in an aggregated visualisation interface. 109 | - [CucumberJS](https://github.com/wswebcreation/wdio-cucumberjs-json-reporter) - Report results in CucumberJS JSON format. 110 | - [Markdown](https://github.com/carmenmitru/wdio-markdown-reporter) - Report results in Markdown format. 111 | - [Delta Reporter](https://github.com/delta-reporter/delta-reporter-wdio) - Report results in Delta Reporter format. 112 | - [Teamcity](https://github.com/webdriverio-community/wdio-teamcity-reporter) - Report results to the build results page of Teamcity Portal. 113 | 114 | ### Miscellaneous 115 | 116 | - [wdio-wait-for](https://github.com/webdriverio-community/wdio-wait-for) - A lightweight library of useful expected conditions for the WebdriverIO framework. 117 | - [@wdio/schematics](https://github.com/webdriverio/webdriverio-schematics) - A schematic to add WebdriverIO to an Angular project. 118 | - [@badisi/wdio-harness](https://github.com/Badisi/wdio-harness) - WebdriverIO support for Angular component test harnesses. 119 | - [@rbnx/webdriverio](https://github.com/Roozenboom/rbnx/tree/main/packages/webdriverio) - Nx plugin that adds WebdriverIO support to a Nx workspace. 120 | - [@rahularanger/WTicks](https://github.com/RahulARanger/WTicks) - A tool for exporting Selenium `.side` files into a WebdriverIO script. 121 | 122 | ## Research & Training 123 | 124 | ### Articles 125 | 126 | - Ross Addinall | 20-Apr-21 - [Cypress vs WebDriverIO](https://vitaq.io/2021/04/20/cypress-vs-webdriverio). 127 | 128 | ### Videos 129 | 130 | - [UI Automation with WebdriverIO](https://testautomationu.applitools.com/webdriverio-tutorial) - By Julia Pottinger. 131 | - [Automated Software Testing with WebdriverIO](https://www.udemy.com/course/automated-software-testing-with-webdriverio/) - By Kaniel Outis. 132 | - [WebdriverIO - Tutorial for beginners](https://www.youtube.com/watch?v=e8goAKb6CC0&list=PL6AdzyjjD5HBbt9amjf3wIVMaobb28ZYN) - By Automation Bro. 133 | - [Learn WebdriverIO Course](https://www.youtube.com/watch?v=I5hRcPH5dx8&list=PL0y7qCn3hjLY6JvohBcmUHKHf_iOi8WuF&ab_channel=Front-endTestingwithKevin) - By Kevin Lamping. 134 | - [WebDriverIO - JavaScript Tool](https://www.youtube.com/watch?v=7J3FnyEGXd4&list=PLFGoYjJG_fqqswF8qDdWNG3b-BtZfiqQn&ab_channel=NaveenAutomationLabs) - By Naveen AutomationLabs. 135 | - [WebdriverIO : NETWORK LOGS](https://www.youtube.com/watch?v=Be9IPyxHmLs) - By Seventeenth Sep. 136 | - [WebdriverIO with TypeScript and BDD Framework](https://www.youtube.com/watch?v=FnC--5WB8ow&list=PLGk7ftfMz7jbZcArQU894rAfo6B1PbXbG&ab_channel=TestAutomationHub) - By TestAutomationHub. 137 | 138 | ### Conference/Meetup Talks/Webinars 139 | 140 | - [Electron Testing with WebdriverIO](https://www.youtube.com/watch?v=mAqxh3L_sP4) - By Christian Bromann. 141 | - [My favourite features of WebdriverIO](https://www.youtube.com/watch?v=CHcjEI3YZ7Y) - By Julia Pottinger. 142 | - [The Nuts and Bolts of WebdriverIO](https://www.youtube.com/watch?v=jOmvPpzLMf8) - By Christian Bromann. 143 | - [Using WebdriverIO with Data Provider](https://www.youtube.com/watch?v=0YQCVJk8K_Q) - By Kumar Vikram. 144 | - [Scale Your Automated Testing with BrowserStack and WebdriverIO](https://www.youtube.com/watch?v=bW3SM46xslE) - By Kevin Lamping. 145 | - [WebdriverIO - Bootstrap your test suite in mins](https://www.youtube.com/watch?v=a7tdIkTeM0o) - By Shweta Varma. 146 | 147 | ### Courses 148 | 149 | - [Web App Testing with WebdriverIO](https://learn.webdriver.io) - By Kevin Lamping. 150 | 151 | ### Books 152 | 153 | - [Enhanced Test Automation with WebdriverIO: Unlock the superpowers of hybrid testing frameworks](https://www.amazon.co.uk/dp/1837630186?ref_=cm_sw_r_cp_ud_dp_7PPKW4XNVXHFQ9XA2A0D) - Elevate your testing game to the next level using advanced techniques and proven strategies with this book for WebdriverIO beginners and automation pros alike. 154 | - [The Web App Testing Guidebook](https://leanpub.com/webapp-testing-guidebook) - Covers everything you need to know to get off the ground with UI testing. Examples are built using real-world scenarios, showing how you would actually write your tests. It's a step-by-step guide on how to effectively write UI test automation for the real world. 155 | - [Practical WebDriverIO](https://www.springer.com/de/book/9781484266601) - Teaches you intermediate and advanced methods for using WebDriverIO APIs. 156 | 157 | ### WebdriverIO Examples 158 | 159 | - [Boilerplate Projects](https://webdriver.io/docs/boilerplates) - Over time, our community has developed several projects that you can use as inspiration to set up your own test suite. 160 | 161 | [Back to top](#contents) 162 | -------------------------------------------------------------------------------- /contributing.md: -------------------------------------------------------------------------------- 1 | # Contribution Guidelines 2 | 3 | Please note that this project is released with a [Contributor Code of Conduct](code-of-conduct.md). By participating in this project you agree to abide by its terms. 4 | 5 | Ensure your pull request adheres to the following guidelines: 6 | 7 | - Search previous suggestions before making a new one, as yours may be a duplicate. 8 | - Suggested packages should be tested and documented. 9 | - The pull request should have a meaningful title and include a link to the package / resource and why it's awesome. 10 | - Make an individual pull request for each suggestion. 11 | - Use the following format: `[resource](link) - Description.` 12 | - Additions should be added to the bottom of the relevant category. 13 | - New categories, or improvements to the existing categorization are welcome. 14 | - Link to the GitHub repo, not npmjs.com. 15 | - Keep descriptions short and simple, but descriptive. 16 | - Don't mention `WebdriverIO` in the description as it's implied. 17 | - Start the description with a capital and end with a full stop/period. 18 | - Check your spelling and grammar. 19 | - Make sure your text editor is set to remove trailing whitespace. 20 | 21 | Thank you for your suggestions! 22 | 23 | ### Updating your PR 24 | 25 | A lot of times, making a PR adhere to the standards above can be difficult. If the maintainers notice anything that we'd like changed, we'll ask you to edit your PR before we merge it. If you're not sure how to do that, [here is a guide](https://github.com/RichardLitt/knowledge/blob/master/github/amending-a-commit-guide.md) on the different ways you can update your PR so that we can merge it. 26 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "awesome-webdriverio", 3 | "version": "1.0.0", 4 | "description": "A curated list of awesome WebdriverIO resources, libraries and tools", 5 | "scripts": { 6 | "test": "awesome-lint" 7 | }, 8 | "repository": { 9 | "type": "git", 10 | "url": "git+https://github.com/webdriverio/awesome-webdriverio.git" 11 | }, 12 | "keywords": [ 13 | "awesome", 14 | "webdriverio" 15 | ], 16 | "author": "Christian Bromann ", 17 | "contributors": [], 18 | "license": "MIT", 19 | "bugs": { 20 | "url": "https://github.com/webdriverio/awesome-webdriverio/issues" 21 | }, 22 | "homepage": "https://github.com/webdriverio/awesome-webdriverio#readme", 23 | "devDependencies": { 24 | "awesome-lint": "^1.1.0" 25 | } 26 | } 27 | --------------------------------------------------------------------------------