{"id":15170702,"url":"https://github.com/formidablelabs/rowdy","last_synced_at":"2025-10-01T05:30:49.113Z","repository":{"id":21095339,"uuid":"24395376","full_name":"FormidableLabs/rowdy","owner":"FormidableLabs","description":"A small, rambunctious WD.js / WebdriverIO configuration wrapper.","archived":true,"fork":false,"pushed_at":"2022-03-03T22:32:04.000Z","size":225,"stargazers_count":28,"open_issues_count":16,"forks_count":9,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-01-19T22:50:38.632Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FormidableLabs.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-09-24T00:58:47.000Z","updated_at":"2023-01-28T02:38:08.000Z","dependencies_parsed_at":"2022-07-31T06:18:06.181Z","dependency_job_id":null,"html_url":"https://github.com/FormidableLabs/rowdy","commit_stats":null,"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FormidableLabs%2Frowdy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FormidableLabs%2Frowdy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FormidableLabs%2Frowdy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FormidableLabs%2Frowdy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FormidableLabs","download_url":"https://codeload.github.com/FormidableLabs/rowdy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234827057,"owners_count":18892884,"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-09-27T08:21:42.081Z","updated_at":"2025-10-01T05:30:48.787Z","avatar_url":"https://github.com/FormidableLabs.png","language":"JavaScript","readme":"[![Maintenance Status][maintenance-image]](#maintenance-status)\n\nroWDy\n=====\n\nA small, rambunctious configuration wrapper for\n[WD.js](https://github.com/admc/wd) or\n[WebdriverIO](http://webdriver.io/)\n\nMain features:\n\n* Easy configuration for local, Sauce Labs, BrowserStack testing.\n* Invokes selenium server for local runs automagically.\n* Integration helpers for Mocha tests.\n* Auto-magic setting of Sauce Labs test status.\n* Use your own test framework and test runner.\n\n\n## Installation\n\nFirst, install the library.\n\n```\n$ npm install --save-dev rowdy\n```\n\n### Local Selenium Server\n\nIf you want to have Rowdy run and control a local Selenium server, then\ninstall the standalone client and run the install scripts:\n\n```\n$ npm install --save-dev selenium-standalone\n$ npm run install-selenium\n```\n\nThis shells out to `selenium-standalone` and is necessary at some point in your\nintegration if using the standalone (local) server.\n\nThe above steps are necessary if the configuration value\n`settings.local.server.start` is `true`. You can skip the steps if you are\nseparately running / managing a local Selenium server or using a remote Selenium\nfarm (e.g., Sauce Labs or BrowserStack).\n\n### Client Libraries\n\nThen, install the necessary client libraries.\n\n#### WD.js\n\n```\n$ npm install --save-dev wd\n```\n\n#### WebdriverIO\n\n```\n$ npm install --save-dev webdriverio saucelabs\n```\n\n_Note_: If using SauceLabs + WebdriverIO, we lazy `require` the Sauce Labs\nmodule to upload results of \"done\" to your SL account.\n\n_Note_: Rowdy requires `webdriverio` at version `v3.0.0` or above.\n\n#### Sauce Labs\n\nIf you intend to use Sauce Labs +\n[guacamole](https://github.com/testarmada/guacamole)-provide environments, then:\n\n```\n$ npm install --save-dev guacamole\n```\n\n## Configuration\n\nBy default Rowdy will lazy initialize the library's included\n[config.js](./config.js) configuration file. (The first access of most\n`rowdy.*` properties / methods will force this.)\n\nHowever, on first import of Rowdy, you can override this behavior to do things\nlike override parts of the default configuration:\n\n```js\n// Start with default configuration.\nvar config = require(\"rowdy/config\");\nconfig.server.logger = true;\n// ... any other mutations\n\n// Pass configuration in.\nvar rowdy = require(\"rowdy\")(config);\n```\n\nOr, you can simply copy [config.js](./config.js) to your project, edit it\nas appropriate and load:\n\n```js\nvar config = require(\"./PATH/TO/config\");\nvar rowdy = require(\"rowdy\")(config);\n```\n\n### Local Examples\n\nStart the local Selenium server on a different port:\n\n```\n$ ROWDY_OPTIONS='{ \"server\": { \"port\":4321 } }' \\\n  npm run test\n```\n\nHave client hit an already running local Selenium server without starting its\nown:\n\n```\n# In one terminal\n$  java -jar node_modules/selenium-standalone/.selenium/selenium-server/2.45.0-server.jar \\\n   -port 4321 \\\n   -Dphantomjs.binary.path=node_modules/phantomjs/lib/phantom/bin/phantomjs\n\n# In another...\n$ ROWDY_OPTIONS='{ \"client\": { \"port\":4321 }, \"server\": { \"start\":false } }' \\\n  npm run test\n```\n\n### Sauce Labs + Guacamole\n\nWe use [guacamole](https://github.com/testarmada/guacamole) to have\nautomatic access to all of the test environments Sauce Labs supports\n(e.g., `firefox_38_Windows_2012_R2_Desktop`, `safari_7_OS_X_10_9_Desktop`).\n\nIf you `npm install guacamole`, then by default Rowdy will use and enable\nthose environments for use in configuration. Once installed, you can view\nall of the available environments with:\n\n```\n# View environments\n$ node_modules/.bin/guacamole\n\n# Generate a cached shrinkwrap file\n$ node_modules/.bin/guacamole --generate-shrinkwrap\n```\n\nRowdy uses a cached version of Sauce Labs configurations in the\n[`guacamole-shrinkwrap.json`](guacamole-shrinkwrap.json) file so that\n`guacamole` doesn't query the Sauce Labs API at runtime.\n\n**Disabling Guacamole**: If you _don't_ want to use the `guacamole` environments\nwith Sauce Labs, then you can skip the `npm install` and just make sure the\nfollowing is active in your Rowdy configuration:\n\n```js\n{\n  options: {\n    guacamole: {\n      enabled: false\n    }\n  }\n}\n```\n\n(By default `guacamole.enabled` is true if `npm` installed and false otherwise,\nso if you use the default Rowdy configuration, no code changes are needed.)\n\nAnd then you should add your own bespoke Sauce Labs settings in configuration\nat:\n\n```js\n{\n  settings: {\n    sauceLabs: {\n      \"mac-safari-7\": { /* Sauce Labs capabilities */ }\n    }\n  }\n}\n```\n\n## Local Usage\n\nOne of the Rowdy peer dependencies is `selenium-standalone`. This package\ncontains an install script that you may need (and do need on Windows):\n\n```\n$ node_modules/.bin/selenium-standalone install\n```\n\nSome other tips and tricks:\n\n### Mac + Safari\n\nRecent Safari updates have broken automatic driver usage, so you need a series\nof tedious steps per http://elementalselenium.com/tips/69-safari:\n\n* Download the driver at your current version from `https://github.com/SeleniumHQ/selenium/raw/selenium-VERSION/javascript/safari-driver/prebuilt/SafariDriver.safariextz`. A current version used in `selenium-standalone` is `2.45.0`, so\nthat would correspond to:\n[github.com/SeleniumHQ/selenium/raw/selenium-2.45.0/javascript/safari-driver/prebuilt/SafariDriver.safariextz](https://github.com/SeleniumHQ/selenium/raw/selenium-2.45.0/javascript/safari-driver/prebuilt/SafariDriver.safariextz)\n* Double click the downloaded driver file. Click \"Install\" when prompted by\n  Safari.\n\n### Windows + IE\n\nSee https://code.google.com/p/selenium/wiki/InternetExplorerDriver#Required_Configuration\nfor extra steps needed to work with local IE. Anecdotally, for Win7+IE11 in a\nVM, the only actually tweak needed was:\n\n* Create key\n  `HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Internet Explorer\\MAIN\\FeatureControl\\FEATURE_BFCACHE`\n  and add DWORD of `iexplore.exe` defaulted to `0` value.\n\n\n## API\n\n**TODO**: API is still settling out.\n\n### Mocha Adapter\n\nWe provide full working examples of the [Mocha Adapter](./adapters/mocha.js):\n\n* [examples/mocha/wd](./examples/mocha/wd): Basic Mocha/Chai tests with WD.js\n* [examples/mocha/webdriverio](./examples/mocha/webdriverio): The same\n  Mocha/Chai tests with WebdriverIO.\n\n**TODO**: Add a full guide for configuring the adapter and (1) the options,\n(2) `adapter.refreshClient()` use, (3) `adapter.client` use.\n\n\n## Webdriver Client Guides\n\n### WD.js\n\nThe full API to WD.js is available at:\nhttps://github.com/admc/wd/blob/master/doc/api.md\n\n### WebdriverIO\n\nWebdriverIO provides the following useful documentation:\n\n* http://webdriver.io/guide.html\n* http://webdriver.io/api.html\n\n\n## Contributions\n\nPlease see the [Contributions Guide](./CONTRIBUTING.md) for how to help out\nwith the plugin.\n\nWe test all changes with [Travis CI][trav]. Here's our current\n[build status][trav_site]:\n\n[![Build Status][trav_img]][trav_site]\n\nWe also do multi-browser testing thanks to donated VM time from\n[Sauce Labs][sauce] and [BrowserStack][bs].\nHere's our Sauce Labs [build matrix][sauce_site]:\n\n[![Sauce Test Status][sauce_img]][sauce_site]\n\n\n## Maintenance Status\n\n**Archived:** This project is no longer maintained by Formidable. We are no longer responding to issues or pull requests unless they relate to security concerns. We encourage interested developers to fork this project and make it their own!\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fformidablelabs%2Frowdy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fformidablelabs%2Frowdy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fformidablelabs%2Frowdy/lists"}