{"id":20503448,"url":"https://github.com/react-native-windows/winappdriver-js-webdriver-example","last_synced_at":"2026-02-27T05:03:30.618Z","repository":{"id":37884819,"uuid":"209706509","full_name":"react-native-windows/winappdriver-js-webdriver-example","owner":"react-native-windows","description":"Examples and Azure Pipeline for Windows App E2E test with Jest/Jamsine + WebDriverIO/selenium-webdriver + WinAppDriver","archived":false,"fork":false,"pushed_at":"2023-01-04T10:56:17.000Z","size":2534,"stargazers_count":4,"open_issues_count":33,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-11T18:50:12.950Z","etag":null,"topics":["azure-pipelines","e2e-test","javascript-webdrivers","nodejs","selenium-automation","selenium-webdriver","webdriverio","winappdriver","winappdriver-js-webdriver"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/react-native-windows.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-09-20T04:40:13.000Z","updated_at":"2022-09-12T23:57:55.000Z","dependencies_parsed_at":"2023-02-02T09:32:34.387Z","dependency_job_id":null,"html_url":"https://github.com/react-native-windows/winappdriver-js-webdriver-example","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/react-native-windows/winappdriver-js-webdriver-example","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/react-native-windows%2Fwinappdriver-js-webdriver-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/react-native-windows%2Fwinappdriver-js-webdriver-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/react-native-windows%2Fwinappdriver-js-webdriver-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/react-native-windows%2Fwinappdriver-js-webdriver-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/react-native-windows","download_url":"https://codeload.github.com/react-native-windows/winappdriver-js-webdriver-example/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/react-native-windows%2Fwinappdriver-js-webdriver-example/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29885799,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-26T23:51:21.483Z","status":"online","status_checked_at":"2026-02-27T02:00:06.759Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["azure-pipelines","e2e-test","javascript-webdrivers","nodejs","selenium-automation","selenium-webdriver","webdriverio","winappdriver","winappdriver-js-webdriver"],"created_at":"2024-11-15T19:31:27.224Z","updated_at":"2026-02-27T05:03:30.571Z","avatar_url":"https://github.com/react-native-windows.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Warnings:\nBecause XamlControlGalary app changed a lot, the test cases would fail. So I will not maintain the test cases on this repo anymore.\nIf you are looking for:\n1. Jest + selenium-webdriver + WinAppDriver, please refer to [selenium-appium example](\nhttps://github.com/react-native-windows/selenium-appium/tree/master/example).\n2. Jasmine + WebDriverIO + WinAppDriver, please refer to [wdio-winappdriver-example](https://github.com/licanhua/wdio-winappdriver-example)\n\nI created a open source WinappDriver, welcome to try it: [YWinAppDriver](https://github.com/licanhua/YWinAppDriver)\n\n\n# Below are the old Readme\nThis repo is already merged into [WinAppDriver repo](https://github.com/microsoft/WinAppDriver/tree/master/Samples/JavaScript)\n\n# winappdriver-js-webdriver-example\n\nThere are two popular JavaScript WebDrivers which could be used for WinAppDriver testing: [selenium-webdriver](https://www.npmjs.com/package/selenium-webdriver) and [webdriverio](https://webdriver.io/).\n\nThis is used to demo UI automation testing with WinAppDriver which the test runner is JavaScript. It includes the examples and Azure Pipeline with selenium-webdirver and WebDriverIO.\n1. Jest + selenium-webdriver + WinAppDriver\n2. Jasmine + WebDriverIO + WinAppDriver\n\n\n[WinAppDriver](https://github.com/Microsoft/WinAppDriver) is recommended to do E2E test for Windows apps.\nHere I validate [Xaml-Controls-Gallery](https://github.com/Microsoft/Xaml-Controls-Gallery) application using JavaScript + WinAppDriver.\n\nThis test project highlights the following basic interactions to demonstrate how UI testing using Windows Application Driver work.\n- Azure pipeline\n- Finding element using 'accessibility id' and 'name'\n- Sending click action to an element\n- Retrieving element value\n- WinAppDriver integration with WebDriverIO and selenium-webdriver\n\nI prototyped and successfully made the two webdrivers to be happy with WinAppDriver. And you can use any of them on your project.\n\n## Examples\nI provided two examples which are using selenium-webdriver or webdriverio.\n\n- [selenium-webdriver example](packages/selenium-webdriver/README.md) in packages/selenium-webdriver\n\nselenium-webdriver is the offical WebDriver JavaScript binding from selenium project. Unfortunately selenium-webdriver doesn't support [Mobile JSON Wire Protocol Specification](https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol).\n[selenium-appium](https://www.npmjs.com/package/selenium-appium) is selenium-webdriver extension to make selenium-webdriver to drive Appium to run automation.\n\n- [webdriverio example](packages/webdriverio/README.md) in packages/webdriverio\n\nWinAppDriver doesn't implement w3c WebDriver completely, so currently I workaround the problem by [WebDriver](https://github.com/react-native-windows/webdriver). In your project, you have to use private webdriver in package.json lke this:\n```\n    \"webdriverio\": \"^5.10.1\",\n    \"webdriver\": \"git+https://github.com/react-native-windows/webdriver.git\",\n```\n\n## Azure pipeline for WinAppDriver\nPlease refer to [.ado](.ado) folder in this project. \nFor WinAppDriver, see [WinAppDriver in CI with Azure Pipelines](https://github.com/microsoft/WinAppDriver/blob/master/Docs/CI_AzureDevOps.md)\n\n## Dependencies\n* Install nodejs, make sure a recent version of [Node.js](https://nodejs.org) is installed. \n[Chocolatey](https://chocolatey.org/) is the recommended installation method. But you can also install Node directly from [NodeJs](https://nodejs.org/en/download/).  To use chocolately, from an elevated Command Prompt, run:\n  ```\n  choco install nodejs\n  ```\n* Install [Yarn](https://yarnpkg.com/en/docs/install) (*optional* if you use npm command directly)\n\n* Install 'xaml controls Gallery'\n- Download and Install it from Microsoft Store.\n- Or build and deploy Xaml-Controls-Gallery submodule\n\n* Install the most recent stable [WinAppDriver](https://github.com/Microsoft/WinAppDriver/releases) on the test device\n\n## Note\nTo know more about how to integrate JavaScript test runner and WinAppDriver for UI automation, please refer to:\n- [E2E test](https://github.com/microsoft/react-native-windows/blob/master/vnext/docs/E2ETest.md) on React Native for Windows. [MoreAboutE2ETest.md](https://github.com/microsoft/react-native-windows/blob/master/vnext/docs/MoreAboutE2ETest.md) provides some background why React Native Windows choose WinAppDriver and node test runner for E2E testing.\n\n- [winappdriver-js-webdriver-example](https://github.com/react-native-windows/winappdriver-js-webdriver-example), Which includes:\n1. Jest + selenium-webdriver + WinAppDriver\n2. Jasmine + WebDriverIO + WinAppDriver\n\n- [selenium-webdriver-winappdriver-example](https://github.com/react-native-windows/selenium-webdriver-winappdriver-example). \nAn example of jest, selenium-webdriver and winappdriver integration\n\n- [selenium-appium](https://github.com/react-native-windows/selenium-appium). selenium-appium is selenium-webdriver extension to make selenium-webdriver to drive Appium to run automation for native, hybrid and mobile web and desktop apps.\n\n- [Choose the right E2E automation framework for React Native Windows](https://medium.com/@licanhua/choose-the-right-e2e-automation-framework-for-react-native-windows-83ade8b16b52)\n- [How to: Use Jest + selenium-webdriver + WinAppDriver to do Windows UI testing](https://medium.com/@licanhua/how-to-use-jest-selenium-webdriver-winappdriver-to-do-windows-ui-testing-c9d074e698ed)\n- [Automated Windows UI testing by Jest + selenium-appium + selenium-webdriver + WinAppDriver](https://medium.com/@licanhua/automated-windows-ui-testing-by-jest-selenium-appium-selenium-webdriver-winappdriver-6cb708121d71)\n- [Inspecting UI Elements for WinAppDriver automation using Appium Desktop](https://medium.com/@licanhua/inspecting-ui-elements-for-winappdriver-automation-using-appium-desktop-8f178b2d0d6c)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freact-native-windows%2Fwinappdriver-js-webdriver-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freact-native-windows%2Fwinappdriver-js-webdriver-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freact-native-windows%2Fwinappdriver-js-webdriver-example/lists"}