E2E test framework for Angular apps
JavaScript TypeScript HTML Other
Failed to load latest commit information.
.github chore(docs): ask for Angular version when issues are being filed Sep 20, 2016
bin feat(webdriver): extract webdriver-manager into a separate node module ( Jun 8, 2016
debugging chore(jasmine): remove jasmine 1.3 Nov 3, 2015
docs docs(browser-setup): fix browser-setup link to config.ts file (#3596) Sep 23, 2016
example docs(example/conf.js): typo fix 'directly' -> 'directory' Mar 8, 2016
exampleTypescript Update spec.ts (#3632) Oct 15, 2016
lib fix(restart): typescript fix for browser.restart (#3658) Oct 25, 2016
scripts chore(ci): update sauce connect and hide logs by default (#3582) Sep 20, 2016
spec fix(restart): typescript fix for browser.restart (#3658) Oct 25, 2016
stress chore(jasmine): remove jasmine 1.3 Nov 3, 2015
testapp chore(testapp): update testapp to new zones, and remove hybrid sleep … Sep 20, 2016
website chore(website): update e2e tests for navigation Sep 21, 2016
.clang-format feat(typescript): adding typescript to protractor Feb 16, 2016
.gitattributes chore(eol): normalize all the line endings Sep 29, 2014
.gitignore feat(typescript): move typescript variable instances from protractor/… ( Sep 16, 2016
.jshintrc chore(style): Add "curly" rule to jshintrc Dec 22, 2015
.npmignore chore(typings): use @types/selenium-webdriver instead of typings/ (#3574 Sep 20, 2016
.travis.yml chore(test): travis ci support for node 6 (#3353) Jul 11, 2016
CHANGELOG.md chore(release): version bump and changelog updated for 4.0.9 Sep 21, 2016
CONTRIBUTING.md docs(contributing): change wording for merging (#3405) Jul 21, 2016
LICENSE chore(license): update year on license (#3497) Aug 26, 2016
README.md docs(tutorial): fix up missing quotes, and add compatibility informat… Sep 15, 2016
gulpfile.js feat(typescript): move typescript variable instances from protractor/… ( Sep 16, 2016
package.json chore(ptor): properly export typings on ptor (#3612) Oct 7, 2016
release.md docs(changelog): add notes about documenting big version updates Mar 18, 2016
tsconfig.json chore(typings): use @types/selenium-webdriver instead of typings/ (#3574 Sep 20, 2016


Protractor Build Status Join the chat at https://gitter.im/angular/protractor

Protractor is an end-to-end test framework for AngularJS applications. Protractor is a Node.js program built on top of WebDriverJS. Protractor runs tests against your application running in a real browser, interacting with it as a user would.


Protractor 4 is compatible with nodejs v4 and newer. If you absolutely need to use nodjs at 0.12, use Protractor@2.

Protractor work with Angular versions greater than 1.0.6/1.1.4, and is compatible with Angular 2 applications. Note that for Angular 2 apps, the binding and model locators are not supported. We recommend using by.css.

Getting Started

The Protractor documentation for users is located in the protractor/docs folder.

To get set up and running quickly:

Once you are familiar with the tutorial, you’re ready to move on. To modify your environment, see the Protractor Setup docs. To start writing tests, see the Protractor Tests docs.

To better understand how Protractor works with the Selenium WebDriver and Selenium Server see the reference materials.

Getting Help

Check the Protractor FAQ and read through the Top 20 questions on StackOverflow.

Please ask usage and debugging questions on StackOverflow (use the "protractor" tag), the Gitter chat room, or in the Angular discussion group. (Please do not ask support questions here on Github.)

For Contributors

Clone the github repository:

git clone https://github.com/angular/protractor.git
cd protractor
npm install
./bin/webdriver-manager update
cd website
npm install
cd ..

Start up a selenium server. By default, the tests expect the selenium server to be running at http://localhost:4444/wd/hub. A selenium server can be started with webdriver-manager which is included in bin/webdriver-manager.

webdriver-manager update
webdriver-manager start

Protractor's test suite runs against the included test application.

Install the test application dependencies with:

npm run install_testapp

Start that up with

npm start

Then run the tests with

npm test