{"id":20503450,"url":"https://github.com/react-native-windows/webdriver","last_synced_at":"2026-04-21T06:01:39.818Z","repository":{"id":98811890,"uuid":"205028546","full_name":"react-native-windows/webdriver","owner":"react-native-windows","description":"webdriverio workaround for winappdriver","archived":false,"fork":false,"pushed_at":"2019-08-28T21:43:48.000Z","size":42,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-16T07:33:41.799Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-28T21:43:00.000Z","updated_at":"2019-08-28T21:43:50.000Z","dependencies_parsed_at":"2023-03-13T15:54:28.985Z","dependency_job_id":null,"html_url":"https://github.com/react-native-windows/webdriver","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/react-native-windows%2Fwebdriver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/react-native-windows%2Fwebdriver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/react-native-windows%2Fwebdriver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/react-native-windows%2Fwebdriver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/react-native-windows","download_url":"https://codeload.github.com/react-native-windows/webdriver/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242100238,"owners_count":20071685,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-15T19:31:27.241Z","updated_at":"2026-04-21T06:01:34.781Z","avatar_url":"https://github.com/react-native-windows.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"WebDriver\n=========\n\n\u003e A lightweight, non-opinionated implementation of the [WebDriver specification](https://w3c.github.io/webdriver/webdriver-spec.html) including mobile commands supported by [Appium](http://appium.io/)\n\nThere are [tons](https://github.com/christian-bromann/awesome-selenium#javascript) of Selenium and WebDriver binding implementations in the Node.js world. Every one of them have an opinionated API and recommended way to use. This binding is the most non-opinionated you will find as it just represents the [WebDriver specification](https://w3c.github.io/webdriver/webdriver-spec.html) and doesn't come with any extra or higher level abstraction. It is lightweight and comes with support for the [WebDriver specification](https://w3c.github.io/webdriver/webdriver-spec.html) and Appiums [Mobile JSONWire Protocol](https://github.com/appium/appium-base-driver/blob/master/docs/mjsonwp/protocol-methods.md).\n\n## Example\n\nThe following example demonstrates a simple Google Search scenario:\n\n```js\nimport WebDriver from 'webdriver'\n\n;(async () =\u003e {\n    const client = await WebDriver.newSession({\n        path: '/',\n        capabilities: { browserName: 'firefox' }\n    })\n\n    await client.navigateTo('https://www.google.com/ncr')\n\n    const searchInput = await client.findElement('css selector', '#lst-ib')\n    await client.elementSendKeys(searchInput['element-6066-11e4-a52e-4f735466cecf'], 'WebDriver')\n\n    const searchBtn = await client.findElement('css selector', 'input[value=\"Google Search\"]')\n    await client.elementClick(searchBtn['element-6066-11e4-a52e-4f735466cecf'])\n\n    console.log(await client.getTitle()) // outputs \"WebDriver - Google Search\"\n\n    await client.deleteSession()\n})()\n```\n\n# Configuration\n\nTo create a WebDriver session call the `newSession` method on the `WebDriver` class and pass in your configurations:\n\n```js\nimport WebDriver from 'webdriver'\nconst client = await WebDriver.newSession(options)\n```\n\nThe following options are available:\n\n### capabilities\nDefines the [capabilities](https://w3c.github.io/webdriver/webdriver-spec.html#capabilities) you want to run in your Selenium session.\n\nType: `Object`\u003cbr\u003e\nRequired: `true`\n\n### logLevel\nLevel of logging verbosity.\n\nType: `String`\u003cbr\u003e\nDefault: *info*\u003cbr\u003e\nOptions: *trace* | *debug* | *info* | *warn* | *error* | *silent*\n\n### protocol\nProtocol to use when communicating with the Selenium standalone server (or driver).\n\nType: `String`\u003cbr\u003e\nDefault: *http*\nOptions: *http* | *https*\n\n### hostname\nHost of your WebDriver server.\n\nType: `String`\u003cbr\u003e\nDefault: *localhost*\n\n### port\nPort your WebDriver server is on.\n\nType: `Number`\u003cbr\u003e\nDefault: *4444*\n\n### path\nPath to WebDriver server.\n\nType: `String`\u003cbr\u003e\nDefault: */wd/hub*\n\n### baseUrl\nShorten `url` command calls by setting a base url.\n\nType: `String`\u003cbr\u003e\nDefault: *null*\n\n### connectionRetryTimeout\nTimeout for any request to the Selenium server.\n\nType: `Number`\u003cbr\u003e\nDefault: *90000*\n\n### connectionRetryCount\nCount of request retries to the Selenium server.\n\nType: `Number`\u003cbr\u003e\nDefault: *2*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freact-native-windows%2Fwebdriver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freact-native-windows%2Fwebdriver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freact-native-windows%2Fwebdriver/lists"}