{"id":13406409,"url":"https://github.com/webdriverio/webdriverio","last_synced_at":"2026-03-15T19:44:04.251Z","repository":{"id":1620785,"uuid":"2296970","full_name":"webdriverio/webdriverio","owner":"webdriverio","description":"Next-gen browser and mobile automation test framework for Node.js","archived":false,"fork":false,"pushed_at":"2026-02-01T07:14:06.000Z","size":368572,"stargazers_count":9716,"open_issues_count":255,"forks_count":2648,"subscribers_count":211,"default_branch":"main","last_synced_at":"2026-02-01T15:27:36.405Z","etag":null,"topics":["automation","cucumber","devtools","jasmine","javascript","mocha","node","performance","performance-test","test","webdriver","webdriverio"],"latest_commit_sha":null,"homepage":"http://webdriver.io","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"NetSPI/PESecurity","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/webdriverio.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":".github/SECURITY.md","support":".github/SUPPORT.md","governance":"GOVERNANCE.md","roadmap":"ROADMAP.md","authors":"AUTHORS.md","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"tidelift":"npm/webdriverio","open_collective":"webdriverio"}},"created_at":"2011-08-30T19:02:35.000Z","updated_at":"2026-02-01T12:56:57.000Z","dependencies_parsed_at":"2026-01-04T01:08:17.398Z","dependency_job_id":null,"html_url":"https://github.com/webdriverio/webdriverio","commit_stats":{"total_commits":7717,"total_committers":634,"mean_commits":12.17192429022082,"dds":0.5565634313852533,"last_synced_commit":"a273d38d5724c27656fa6e8d7b8b79a716a9f00a"},"previous_names":["camme/webdriverjs"],"tags_count":934,"template":false,"template_full_name":null,"purl":"pkg:github/webdriverio/webdriverio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdriverio%2Fwebdriverio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdriverio%2Fwebdriverio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdriverio%2Fwebdriverio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdriverio%2Fwebdriverio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/webdriverio","download_url":"https://codeload.github.com/webdriverio/webdriverio/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdriverio%2Fwebdriverio/sbom","scorecard":{"id":26971,"data":{"date":"2025-07-07","repo":{"name":"github.com/webdriverio/webdriverio","commit":"e0e57ab24871f0d14db1e77b64a88fb6ccc13ada"},"scorecard":{"version":"v5.2.1-18-gbb9c347d","commit":"bb9c347dff6349d986baab6578a46d68a5524c62"},"score":5.1,"checks":[{"name":"Code-Review","score":5,"reason":"Found 14/27 approved changesets -- score normalized to 5","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#packaging"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: .github/SECURITY.md:1","Info: Found linked content: .github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: .github/SECURITY.md:1","Info: Found text in security policy: .github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#security-policy"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 25 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: found token with 'none' permissions: .github/workflows/authorize.yml:1","Info: jobLevel 'contents' permission set to 'read': .github/workflows/build.yml:11","Info: jobLevel 'packages' permission set to 'read': .github/workflows/build.yml:12","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/cr.yml:12","Info: jobLevel 'packages' permission set to 'read': .github/workflows/cr.yml:14","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/expense.yml:45","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/publish.yml:36","Info: jobLevel 'packages' permission set to 'read': .github/workflows/publish.yml:38","Info: jobLevel 'contents' permission set to 'read': .github/workflows/test-cloud.yml:12","Info: jobLevel 'contents' permission set to 'read': .github/workflows/test-component.yml:12","Warn: jobLevel 'actions' permission set to 'write': .github/workflows/test-component.yml:13","Info: jobLevel 'contents' permission set to 'read': .github/workflows/test-interop.yml:12","Info: jobLevel 'contents' permission set to 'read': .github/workflows/test-launch.yml:12","Info: jobLevel 'contents' permission set to 'read': .github/workflows/test-multiremote.yml:12","Warn: jobLevel 'actions' permission set to 'write': .github/workflows/test-smoke.yml:13","Info: jobLevel 'contents' permission set to 'read': .github/workflows/test-smoke.yml:12","Info: jobLevel 'contents' permission set to 'read': .github/workflows/test-standalone.yml:12","Info: jobLevel 'contents' permission set to 'read': .github/workflows/test-static.yml:13","Info: jobLevel 'contents' permission set to 'read': .github/workflows/test-testrunner.yml:12","Info: jobLevel 'contents' permission set to 'read': .github/workflows/test-typings.yml:12","Info: jobLevel 'contents' permission set to 'read': .github/workflows/test-unit.yml:12","Warn: jobLevel 'actions' permission set to 'write': .github/workflows/test-unit.yml:13","Warn: no topLevel permission defined: .github/workflows/authorize.yml:1","Warn: no topLevel permission defined: .github/workflows/build.yml:1","Warn: no topLevel permission defined: .github/workflows/cr.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/deploy.yml:8","Info: topLevel 'packages' permission set to 'read': .github/workflows/deploy.yml:9","Warn: no topLevel permission defined: .github/workflows/expense.yml:1","Warn: no topLevel permission defined: .github/workflows/labeler.yml:1","Warn: no topLevel permission defined: .github/workflows/publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test-cloud.yml:1","Warn: no topLevel permission defined: .github/workflows/test-component.yml:1","Warn: no topLevel permission defined: .github/workflows/test-interop.yml:1","Warn: no topLevel permission defined: .github/workflows/test-launch.yml:1","Warn: no topLevel permission defined: .github/workflows/test-multiremote.yml:1","Warn: no topLevel permission defined: .github/workflows/test-smoke.yml:1","Warn: no topLevel permission defined: .github/workflows/test-standalone.yml:1","Warn: no topLevel permission defined: .github/workflows/test-static.yml:1","Warn: no topLevel permission defined: .github/workflows/test-testrunner.yml:1","Warn: no topLevel permission defined: .github/workflows/test-typings.yml:1","Warn: no topLevel permission defined: .github/workflows/test-unit.yml:1","Warn: no topLevel permission defined: .github/workflows/test.yml:1","Warn: topLevel 'contents' permission set to 'write': .github/workflows/update.yaml:11"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#token-permissions"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#license"}},{"name":"CII-Best-Practices","score":5,"reason":"badge detected: Passing","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":9,"reason":"binaries present in source code","details":["Warn: binary detected: e2e/browser-runner/wasm/add.wasm:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#binary-artifacts"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#signed-releases"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":6,"reason":"dependency not pinned by hash detected -- score normalized to 6","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/expense.yml:51: update your workflow using https://app.stepsecurity.io/secureworkflow/webdriverio/webdriverio/expense.yml/main?enable=pin","Warn: containerImage not pinned by hash: .devcontainer/Dockerfile:1: pin your Docker image by updating mcr.microsoft.com/devcontainers/javascript-node:0-18 to mcr.microsoft.com/devcontainers/javascript-node:0-18@sha256:ed57dd8755b4e75a0426bd10ab1d3a60a22bb21fc2e093801375990978c42fb5","Warn: containerImage not pinned by hash: .gitpod/dev.dockerfile:1: pin your Docker image by updating gitpod/workspace-node to gitpod/workspace-node@sha256:791a84ddbef71cc23234869f01ea90686eb5186a5c0236a9cfb06446a4233f30","Warn: npmCommand not pinned by hash: .devcontainer/Dockerfile:22-26","Warn: npmCommand not pinned by hash: .gitpod/dev.dockerfile:14-15","Info:  24 out of  24 GitHub-owned GitHubAction dependencies pinned","Info:   4 out of   5 third-party GitHubAction dependencies pinned","Info:   0 out of   2 containerImage dependencies pinned","Info:   0 out of   2 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":2,"reason":"SAST tool is not run on all commits -- score normalized to 2","details":["Warn: 5 commits out of 19 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"25 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-pxg6-pf52-xh8x","Warn: Project is vulnerable to: GHSA-67mh-4wv8-2f99","Warn: Project is vulnerable to: GHSA-pfrx-2q88-qq97","Warn: Project is vulnerable to: GHSA-p6mc-m468-83gw","Warn: Project is vulnerable to: GHSA-4v9v-hfq4-rm2v","Warn: Project is vulnerable to: GHSA-9jgg-88mc-972h","Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-qwcr-r2fm-qrc7","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-f7f6-9jq7-3rqj","Warn: Project is vulnerable to: GHSA-qw6h-vgh9-j6wx","Warn: Project is vulnerable to: GHSA-m5qc-5hw7-8vg7","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-mwcw-c2x4-8c55","Warn: Project is vulnerable to: GHSA-9wv6-86v2-598j","Warn: Project is vulnerable to: GHSA-rhx6-c78j-4q9w","Warn: Project is vulnerable to: GHSA-x7hr-w5r2-h6wg","Warn: Project is vulnerable to: GHSA-gcx4-mw62-g8wm","Warn: Project is vulnerable to: GHSA-m6fv-jmcg-4jfg","Warn: Project is vulnerable to: GHSA-cm22-4g7w-348p","Warn: Project is vulnerable to: GHSA-pq67-2wwv-3xjx","Warn: Project is vulnerable to: GHSA-8cj5-5rvv-wf4v","Warn: Project is vulnerable to: GHSA-4vvj-4cpr-p986","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/bb9c347dff6349d986baab6578a46d68a5524c62/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-14T18:08:43.515Z","repository_id":1620785,"created_at":"2025-08-14T18:08:43.515Z","updated_at":"2025-08-14T18:08:43.515Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28984831,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T17:52:09.146Z","status":"ssl_error","status_checked_at":"2026-02-01T17:49:53.529Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","cucumber","devtools","jasmine","javascript","mocha","node","performance","performance-test","test","webdriver","webdriverio"],"created_at":"2024-07-30T19:02:29.516Z","updated_at":"2026-02-01T18:03:08.029Z","avatar_url":"https://github.com/webdriverio.png","language":"TypeScript","readme":"[![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine)\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://webdriver.io/\"\u003e\n        \u003cimg alt=\"WebdriverIO\" src=\"https://webdriver.io/assets/images/robot-3677788dd63849c56aa5cb3f332b12d5.svg\" width=\"146\"\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    Next-gen browser and mobile automation test framework for Node.js.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/webdriverio/webdriverio/actions/workflows/test.yml\"\u003e\n        \u003cimg alt=\"Build Status\" src=\"https://github.com/webdriverio/webdriverio/actions/workflows/test.yml/badge.svg\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://snyk.io/advisor/npm-package/webdriverio\"\u003e\n        \u003cimg alt=\"Package Health\" src=\"https://snyk.io/advisor/npm-package/webdriverio/badge.svg\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://bestpractices.coreinfrastructure.org/en/projects/5589\"\u003e\n        \u003cimg alt=\"OpenSSF Best Practices\" src=\"https://bestpractices.coreinfrastructure.org/projects/5589/badge\"\u003e\n    \u003c/a\u003e\n    \u003ca title=\"Crowdin\" target=\"_blank\" href=\"https://translate.webdriver.io/project/webdriver-io\"\u003e\n        \u003cimg src=\"https://badges.crowdin.net/webdriver-io/localized.svg\"\u003e\n    \u003c/a\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://discord.webdriver.io\"\u003e\n        \u003cimg alt=\"Support Channel\" src=\"https://img.shields.io/discord/1097401827202445382?color=%234FB898\u0026label=Join%20us%20on%20Discord\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/webdriverio/webdriverio/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc\"\u003e\n        \u003cimg alt=\"Issue Resolution time\" src=\"https://isitmaintained.com/badge/resolution/webdriverio/webdriverio.svg\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/webdriverio/webdriverio/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc\"\u003e\n        \u003cimg alt=\"Open issues\" src=\"https://isitmaintained.com/badge/open/webdriverio/webdriverio.svg\"\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n***\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://webdriver.io\"\u003eHomepage\u003c/a\u003e |\n    \u003ca href=\"https://webdriver.io/docs/gettingstarted.html\"\u003eDeveloper Guide\u003c/a\u003e |\n    \u003ca href=\"https://webdriver.io/docs/api.html\"\u003eAPI Reference\u003c/a\u003e |\n    \u003ca href=\"https://github.com/webdriverio/webdriverio/blob/main/CONTRIBUTING.md\"\u003eContribute\u003c/a\u003e |\n    \u003ca href=\"https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md\"\u003eChangelog\u003c/a\u003e |\n    \u003ca href=\"https://github.com/webdriverio/webdriverio/blob/main/ROADMAP.md\"\u003eRoadmap\u003c/a\u003e\n\u003c/p\u003e\n\n***\n\nWebdriverIO is a test automation framework, for e2e as well as unit and component testing in the browser, that allows you to run tests based on the [WebDriver](https://w3c.github.io/webdriver/webdriver-spec.html) and [WebDriver BiDi](https://github.com/w3c/webdriver-bidi) as well as [Appium](https://appium.io/) automation technology. It provides support for your favorite BDD/TDD test framework and will run your tests locally or in the cloud using Sauce Labs, BrowserStack, TestingBot or TestMu AI (Formerly LambdaTest).\n\n## :woman_technologist: :man_technologist: Contributing\nDo you like WebdriverIO and want to help make it better? Awesome! Have a look into our [Contributor Documentation](CONTRIBUTING.md) to get started and find out what contributions can be and how to make them.\n\n### Getting started with GitHub Codespaces\n\nTo get started, create a codespace for this repository by clicking this 👇\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true\u0026ref=main\u0026repo=2296970)\n\nA codespace will open in a web-based version of Visual Studio Code. The [dev container](.devcontainer/devcontainer.json) is fully configured with the software needed for this project.\n\n**Note**: Dev containers are an open spec that is supported by [GitHub Codespaces](https://github.com/codespaces) and [other tools](https://containers.dev/supporting).\n\n### Getting started with Gitpod\n\nYou can also just click on:\n\n[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/webdriverio/webdriverio)\n\nto get a ready-to-use development environment for you to start working on this code base.\n\nIf you're looking for issues to help out with, check out [the issues labeled \"good first pick\"](https://github.com/webdriverio/webdriverio/issues?q=is%3Aopen+is%3Aissue+label%3A\"good+first+pick\"). You can also reach out to our [Matrix Channel](https://discord.webdriver.io) if you have questions on where to start contributing.\n\n## :office: WebdriverIO for Enterprise\n\nAvailable as part of the Tidelift Subscription.\n\nThe maintainers of WebdriverIO and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open-source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-webdriverio?utm_source=npm-webdriverio\u0026utm_medium=referral\u0026utm_campaign=enterprise\u0026utm_term=repo)\n\n## :package: Packages\n\nThis repository contains some of the core packages of the WebdriverIO project. There are many wonderful [curated resources](https://github.com/webdriverio-community/awesome-webdriverio) the WebdriverIO community has put together.\n\n__Did you build a WebdriverIO service or reporter?__ That's awesome! Please add it to our configuration wizard and docs (e.g. like in [this example commit](https://github.com/webdriverio/webdriverio/commit/3cb5937b968dfe93cf78871589019736a6c98d9e)) as well as to our [awesome-webdriverio](https://github.com/webdriverio-community/awesome-webdriverio) list. Thank you! 🙏 ❤️\n\n### Core\n\n- [webdriver](https://github.com/webdriverio/webdriverio/tree/main/packages/webdriver) - A Node.js bindings implementation for the W3C WebDriver and Mobile JSONWire Protocol\n- [webdriverio](https://github.com/webdriverio/webdriverio/blob/main/packages/webdriverio) - Next-gen browser and mobile automation test framework for Node.js\n- [@wdio/cli](https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-cli) - A WebdriverIO testrunner command line interface\n\n### Helper\n\n- [@wdio/config](https://github.com/webdriverio/webdriverio/blob/main/packages/wdio-config) - A helper utility to parse and validate WebdriverIO options\n- [@wdio/logger](https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-logger) - A helper utility for logging WebdriverIO packages\n- [@wdio/protocols](https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-protocols) - Utility package providing information about automation protocols\n- [@wdio/repl](https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-repl) - A WDIO helper utility to provide a repl interface for WebdriverIO\n- [@wdio/reporter](https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-reporter) - A WebdriverIO utility to help report all events\n- [@wdio/runner](https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-runner) - A WebdriverIO service that runs tests in arbitrary environments\n- [@wdio/utils](https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-utils) - A WDIO helper utility to provide several utility functions used across the project\n- [@wdio/globals](https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-globals) - A WDIO helper utility for importing global variables directly\n\n### Reporter\n\n- [@wdio/allure-reporter](https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-allure-reporter) - A WebdriverIO reporter plugin to create Allure Test Reports\n- [@wdio/concise-reporter](https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-concise-reporter) - A WebdriverIO reporter plugin to create concise test reports\n- [@wdio/dot-reporter](https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-dot-reporter) - A WebdriverIO plugin to report in dot style\n- [@wdio/junit-reporter](https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-junit-reporter) - A WebdriverIO reporter that creates test results in XML format\n- [@wdio/spec-reporter](https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-spec-reporter) - A WebdriverIO plugin to report in spec style\n- [@wdio/sumologic-reporter](https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-sumologic-reporter) - A WebdriverIO reporter that sends test results to Sumologic for data analyses\n\n### Services\n\n- [@wdio/appium-service](https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-appium-service) - A WebdriverIO service to start \u0026 stop Appium Server\n- [@wdio/browserstack-service](https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-browserstack-service) - A WebdriverIO service that can be used to use BrowserStack Test Observability which is a reporting, debugging, and test suite quality tracking tool for any test running anywhere. The service also helps for a better integration with the BrowserStack grid if you're running tests on the grid.\n- [@wdio/lighthouse-service](https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-lighthouse-service) - A WebdriverIO service that integrates Google Lighthouse commands to use it for automate tests\n- [@wdio/firefox-profile-service](https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-firefox-profile-service) - A WebdriverIO service that lets you define your Firefox profile in your wdio.conf.js\n- [@wdio/sauce-service](https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-sauce-service) - A WebdriverIO service that provides a better integration into Sauce Labs\n- [@wdio/shared-store-service](https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-shared-store-service) - A WebdriverIO service to exchange data across processes\n- [@wdio/testingbot-service](https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-testingbot-service) - A WebdriverIO service that provides a better integration into TestingBot\n- [@wdio/devtools-service](https://github.com/webdriverio/devtools/tree/main) - A WebdriverIO service that provides browser devtools for debugging, visualizing, and controlling test executions in real-time with live browser preview, test rerun capabilities, and comprehensive execution insights\n\n### Runner\n\n- [@wdio/local-runner](https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-local-runner) - A WebdriverIO runner to run tests locally\n- [@wdio/browser-runner](https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-browser-runner) - A WebdriverIO runner to run unit or component tests in the browser\n\n### Framework Adapters\n\n- [@wdio/cucumber-framework](https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-cucumber-framework) - Adapter for [Cucumber](https://cucumber.io/) testing framework\n- [@wdio/jasmine-framework](https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-jasmine-framework) - Adapter for [Jasmine](https://jasmine.github.io/) testing framework\n- [@wdio/mocha-framework](https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-mocha-framework) - Adapter for [Mocha](https://mochajs.org/) testing framework.\n\n### Others\n\n- [create-wdio](https://github.com/webdriverio/webdriverio/tree/main/packages/create-wdio) - A CLI and utility to install and setup a WebdriverIO\n- [eslint-plugin-wdio](https://github.com/webdriverio/webdriverio/tree/main/packages/eslint-plugin-wdio) - Eslint rules for WebdriverIO\n- [@wdio/smoke-test-reporter](https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-smoke-test-reporter) - A WebdriverIO utility to smoke test reporters for internal testing purposes\n- [@wdio/smoke-test-service](https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-smoke-test-service) - A WebdriverIO utility to smoke test services for internal testing purposes\n- [@wdio/webdriver-mock-service](https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-webdriver-mock-service) - A WebdriverIO service to stub all endpoints for internal testing purposes\n\n### Infrastructure Packages\n\nThese packages are not released to NPM and used to work on this codebase.\n\n- [@wdio/compiler](https://github.com/webdriverio/webdriverio/tree/main/infa/compiler) - Esbuild script to\ncompile the source code all of all packages\n- [@wdio/lerna-patch](https://github.com/webdriverio/webdriverio/tree/main/infa/lernaPatch) - This sub-package is being used to patch Lerna to not run `pnpm install` after it prepared all packages for release\n\n## :handshake: Project Governance\n\nThis project is maintained by [awesome people](/AUTHORS.md) following a common [set of rules](/GOVERNANCE.md) and treating each other with [respect and appreciation](/CODE_OF_CONDUCT.md).\n\n## :man_cook: :woman_cook: Backers\n\n[Become a backer](https://opencollective.com/webdriverio) and show your support for our open-source project.\n\n\u003ca href=\"https://opencollective.com/webdriverio\"\u003e\u003cimg src=\"https://opencollective.com/webdriverio/tiers/baker.svg?avatarHeight=36\u0026width=600\"\u003e\u003c/a\u003e\n\n## :money_with_wings: Sponsors\n\nDoes your company use WebdriverIO? Ask your manager or marketing team if your company would be interested in supporting our project. Support will allow the maintainers to dedicate more time to maintenance and new features for everyone. Also, your company's logo will show [on GitHub](https://github.com/webdriverio/webdriverio#readme) - who doesn't want a little extra exposure? [Here's the info](https://opencollective.com/webdriverio).\n\n\u003ca href=\"https://opencollective.com/webdriverio\"\u003e\u003cimg src=\"https://opencollective.com/webdriverio/tiers/gold-sponsor.svg?avatarHeight=36\u0026width=600\"\u003e\u003c/a\u003e\n\n### 💎 Premium Sponsor\n\nWe are immensely grateful to our exclusive Premium Sponsor for their invaluable support in the development of this project:\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://www.browserstack.com/automation-webdriverio\"\u003e\u003cimg src=\"https://webdriver.io/img/sponsors/browserstack_black.svg\" alt=\"BrowserStack\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n### 🥇 Gold Sponsor\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://www.jetify.com/\"\u003e\u003cimg src=\"https://webdriver.io/img/sponsors/jetify_black.png\" width=\"250\" alt=\"Jetify\" /\u003e\u003c/a\u003e\n    \u0026nbsp; \u0026nbsp; \u0026nbsp;\n    \u003ca href=\"https://www.lambdatest.com/\"\u003e\u003cimg src=\"https://webdriver.io/img/sponsors/lambdatest_black.svg\" width=\"300\" alt=\"Lambdatest\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n### 🥈 Silver Sponsor\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://testingbot.com/\"\u003e\u003cimg src=\"https://webdriver.io/img/sponsors/testingbot.svg\" width=\"250\" alt=\"TestingBot\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n### 🥉 Bronze Sponsor\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://eslint.org/\"\u003e\u003cimg src=\"https://eslint.org/assets/images/logo/eslint-logo-color.png\" alt=\"Eslint\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://www.gridlastic.com/webdriverio.html\"\u003e\u003cimg src=\"https://webdriver.io/img/sponsors/gridlastic.png\" width=\"200\" alt=\"Gridlastic\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## :page_facing_up: License\n\n[MIT](/LICENSE)\n\n## :beginner: Badge\n\nShow the world you're using webdriver.io → [![tested with webdriverio](https://img.shields.io/badge/tested%20with-webdriver.io-%23ea5906)](https://webdriver.io/)\n\n###### GitHub markup\n```\n[![tested with webdriver.io](https://img.shields.io/badge/tested%20with-webdriver.io-%23ea5906)](https://webdriver.io/)\n```\n###### HTML\n```\n\u003ca href=\"https://webdriver.io/\"\u003e\n    \u003cimg alt=\"WebdriverIO\" src=\"https://img.shields.io/badge/tested%20with-webdriver.io-%23ea5906\"\u003e\n\u003c/a\u003e\n```\n\n## :clap:  Supporters\n[![Stargazers repo roster for WebdriverIO](https://reporoster.com/stars/webdriverio/webdriverio)](https://github.com/webdriverio/webdriverio/stargazers)\n[![Forkers repo roster for WebdriverIO](https://reporoster.com/forks/webdriverio/webdriverio)](https://github.com/webdriverio/webdriverio/network/members)\n\u003cp align=\"center\"\u003e\u003ca href=\"https://github.com/webdriverio/webdriverio#nastyox\"\u003e\u003cimg src=\"https://randojs.com/images/barsSmall.gif\" alt=\"Animated footer bars\" width=\"100%\"/\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cbr/\u003e\n\u003cp align=\"center\"\u003e\u003ca href=\"https://github.com/webdriverio/webdriverio#\"\u003e\u003cimg src=\"https://randojs.com/images/backToTopButton.png\" alt=\"Back to top\" height=\"29\"/\u003e\u003c/a\u003e\u003c/p\u003e\n","funding_links":["https://tidelift.com/funding/github/npm/webdriverio","https://opencollective.com/webdriverio","https://tidelift.com/subscription/pkg/npm-webdriverio?utm_source=npm-webdriverio\u0026utm_medium=referral\u0026utm_campaign=enterprise\u0026utm_term=repo"],"categories":["TypeScript","Packages","JavaScript","UI \u0026 Browser Automation","Testing Frameworks","包","Don't forget to give a :star: to make the project popular","目录","Testing Frameworks [🔝](#readme)","Testing","automation","测试框架"],"sub_categories":["Testing",".NET","Runner","测试","测试相关","Misc","E2E","运行器","运行器e2e测试"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebdriverio%2Fwebdriverio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebdriverio%2Fwebdriverio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebdriverio%2Fwebdriverio/lists"}