World’s largest virtual agentic engineering & quality conference

WHENAUG 19-21
WHEREVirtual · Global
Register Now
AutomationSelenium ProtractorSelenium TutorialTutorial

Protractor Tutorial: End To End Testing For AngularJS

Protractor reached End-of-Life (EOL) in August 2023. Learn why it was deprecated, what it means for AngularJS suites, and migration paths to modern E2E tools.

Author

Praveen Mishra

Author

Author

Salman Khan

Reviewer

Published on: June 25, 2020

Last Updated on: July 17, 2026

Note

Protractor has reached End-of-Life

Note: Protractor reached its official End-of-Life (EOL) in August 2023 and is no longer maintained by the Angular team, so it receives no security updates or compatibility fixes. If you are starting a new project, use a modern end-to-end framework such as Playwright, Cypress, or WebdriverIO. This guide is kept as a reference for maintaining existing suites and planning a migration away from Protractor.

According to StackOverflow’s developer survey, around 30.7% of respondents preferred AngularJS to develop their web applications. These web apps use fewer resources and are faster in comparison to the older static pages.

For historical context, these adoption numbers predate a major shift. AngularJS (the original Angular 1.x) reached its own End-of-Life in January 2022, and the Protractor framework covered in this tutorial followed with its End-of-Life in August 2023. Read the rest of this guide as a reference for maintaining existing suites and planning a migration, not as advice to start a new project on Protractor.

Finding the right tools for testing can prove to be quite a challenge. But with Angular testing, you need to look no further than the Protractor framework. Protractor is designed by Google developers, by keeping the AngularJS applications in mind.

Now perform live interactive manual testing of your Angular websites on TestMu AI.

Overview

To test AngularJS applications, use WebdriverIO for the smoothest migration from legacy Protractor suites, or choose Playwright for modern cross-browser testing with fast auto-waiting. While Protractor was built specifically for Angular, both it and AngularJS have reached their official End-of-Life.

Why Use Protractor for End-to-End Angular Testing?

  • Best for legacy Angular testing: Protractor - This end-to-end framework simulates real user interactions in a browser to verify AngularJS applications from the user interface to the backend.
  • Best for parallel test execution: Selenium Grid - This tool integrates with Protractor to run multiple browser sessions simultaneously, enabling faster and scalable test execution across different environments.
  • Best for behavior-driven development: Jasmine - This testing framework is supported by Protractor to help testers write readable, behavior-focused test cases that align with business goals.
  • Best for flexible BDD testing: Mocha - This Behavior-Driven Development framework integrates with Protractor to enable clear, structured, and readable automation scripts for web applications.
  • Best for cloud-based test execution: TestMu AI - This platform enables live interactive manual testing of Angular websites and runs existing Selenium, Cypress, and Playwright scripts across over 3,000 real browser and operating system combinations.
  • Protractor reached its official End-of-Life in August 2023 and AngularJS reached End-of-Life in January 2022, meaning these tools no longer receive security updates, community support, or compatibility fixes.

What is Protractor?

Protractor is a widely used automation testing framework that is used to perform end-to-end testing of Angular web applications. You can utilize the Protractor framework for Selenium automation testing on real browsers by simulating all the browser actions just like a real user would.

Protractor is based on Node.js, a JavaScript framework, and works with it to find web elements in Angular based web applications. Protractor also utilizes Selenium WebDriver, which allows you to automate browser actions. Apart from the Selenium locators, with Protractor you can also access Angular specific locators. In case you’re wondering, ‘what is Selenium’, you can refer to the linked detailed web page on the topic.

Now that you know what Protractor is, and what it does. Let’s further explore why you would use Protractor for Angular testing. Furthermore, go through an extensive compilation of commonly asked Protractor Interview Questions and Answers. This resource is designed to aid interview preparation and enhance your Protractor interview proficiency.

Why Use Protractor For End-to-End Angular Testing?

There are several other reasons for using Protractor for Angular testing, you can find these reasons below in this Protractor testing tutorial:

Angular Specific Locators

Angular applications have certain HTML attributes such as, ng-model, ng repeater etc, which are not a part of Selenium locators. This is why you can not identify these web elements with Selenium. Protractor provides locator strategies specifically for angular web elements, making it the right choice to use it for Angular Testing and allows you to perform angular testing on the without any setup.

End-to-End Testing

Unlike other test automation frameworks which are only used for unit testing, Protractor can be used to perform End to End testing. You can test the complete flow of a web application right from the beginning to the end.

Flow is checked for the web application in both ‘stage’ as well as in production, to make sure the web applications work as intended when it is integrated with external environments. End to End testing helps to ensure that behaviour flow of the web application is as intended, by performing a complete and thorough inspection of the web application from start to finish.

On a side note, you can refer to our detailed guide on Angular E2E Testing to learn how to perform End-To-End Testing With JavaScript And Karma.

Watch this video to learn how to write end-to-end automation tests using Selenium WebDriver and perform cross browser and parallel testing at scale.

Automatic Waiting

With Protractor you don’t have to worry about adding wait() or sleep() in your Selenium test scripts for Angular testing. In Protractor, the next task in your test scripts automatically starts when the previous task has been completed. This way you don’t have to wait for the page to load.

Support For Selenium Grid

Protractor supports Selenium grid, allowing you to perform parallel testing on multiple browsers instances at the same time. Utilising a grid can save a lot of time spent in running test scripts.

Simple Syntax

With Protractor you can use simple syntax for writing test cases for angular testing. You don’t have to bother with complex code, making it easier for any newbie automation tester to pick it up for automated browser testing.

Support For BDD Frameworks

You also get support for Behaviour-Driven Development testing frameworks with Protractor. With Protractor, you can perform angular testing by utilizing BDD frameworks such as Jasmine and Mocha.

Read More: Protractor Vs Selenium: A Detailed Difference

The Deprecation and End-of-Life (EOL) of Protractor

Before adopting Protractor for a new project, there is one fact that changes the decision entirely: the Angular team has officially sunset the framework. Protractor began its deprecation with Angular 12 in 2021, and it reached its official End-of-Life (EOL) in August 2023. From that point on, the project stopped shipping new features, security patches, and compatibility fixes.

For teams still running Protractor, End-of-Life carries concrete consequences. An unmaintained test framework quietly accumulates risk with every dependency update in your stack. The main practical effects for a legacy Protractor suite are:

  • No security updates - reported vulnerabilities in Protractor or its bundled dependencies will not be patched, so the suite becomes a standing supply chain risk in your CI pipeline.
  • No community support - the official repository is archived, issues are no longer triaged, and older answers age out as browsers and drivers move on.
  • Compatibility issues with modern Node.js versions - newer Node.js releases and their native modules can break Protractor's install and runtime, forcing teams to pin old, unsupported Node versions just to keep tests running.
  • Selenium WebDriver drift - as the WebDriver protocol and browser drivers evolve, Protractor's aging integration falls further behind, producing flaky or failing runs that have no upstream fix.

The timeline below puts Protractor's status in context alongside AngularJS, the framework it was originally built to test.

MilestoneDateWhat it means
AngularJS End-of-LifeJanuary 2022The original Angular 1.x reached EOL and stopped receiving long-term support, updates, and security fixes.
Protractor deprecation begins2021 (Angular 12)The Angular team stopped including Protractor in new projects and signalled the move away from it.
Protractor End-of-LifeAugust 2023Protractor stopped receiving new features, security patches, and compatibility updates.

Why Was Protractor Deprecated?

Protractor was deprecated because the web platform evolved past the core problem it was designed to solve. When Protractor first launched, writing ordered browser automation in JavaScript was genuinely awkward, and Protractor's answer to that was Selenium's Control Flow.

The Control Flow Problem

Browser actions such as clicking, typing, and reading text are asynchronous. In the early days of Selenium WebDriverJS, JavaScript had no clean way to run these actions in sequence, so Protractor leaned on Selenium's Control Flow, an internal queue that lined up each WebDriver command and executed them one after another. This let testers write test scripts that looked synchronous, without scattering callbacks or promise chains through every step.

Control Flow worked, but it was fragile. Mixing native promises with the managed queue produced confusing, hard to debug ordering, and the abstraction hid what was actually happening underneath.

How async/await Changed Everything

When JavaScript standardized async/await, the language itself gained a first-class, readable way to handle asynchronous actions in sequence. The problem Control Flow existed to solve was now solved natively and more clearly. The Selenium project deprecated and then removed Control Flow, which pulled the foundation out from under Protractor.

With its central mechanism gone and modern frameworks handling synchronization through async/await, continuing to maintain Protractor no longer made sense. The Angular team chose to deprecate it and point users toward actively developed alternatives.

Top Alternatives and Migration Paths from Protractor

Migrating off Protractor is mostly about choosing a framework whose model fits your application, then porting tests suite by suite. Every modern alternative replaced Control Flow with native async/await, so the mental model stays consistent once you pick a tool. The two decisions that shape the migration are how each framework locates elements and how it synchronizes with the app.

A practical migration roadmap looks like this:

  • Audit the existing Protractor suite and separate Angular specific locators, such as by.model and by.binding, from standard CSS and XPath selectors.
  • Pick a target framework based on your stack, your team's skills, and whether you still depend on Angular aware waiting.
  • Rewrite element locating with the target framework's locator API and replace Protractor's implicit Angular synchronization with explicit or built-in auto-waiting.
  • Port tests feature by feature, running the old and new suites in parallel until coverage matches.
  • Retire the Protractor suite once the new tests are stable in your CI pipeline.

The table below compares the leading alternatives on the two things that matter most in a migration, synchronization and element locating.

FrameworkSynchronization modelElement locatingBest fit when
PlaywrightAuto-waiting on every action with async/await; waits for elements to be actionable before interacting.Locators and web-first assertions, plus role, text, and test-id selectors.You want a modern, cross-browser framework with fast, reliable auto-waiting out of the box.
CypressAutomatic retry-and-wait built into its command chain; runs inside the browser event loop.Chainable, jQuery-style selectors with built-in retry-ability.Your app is web-first and you want an integrated runner, time-travel debugging, and a gentle learning curve.
WebdriverIOasync/await with configurable auto-waiting; built on the WebDriver protocol.Rich selector strategies including CSS, XPath, and framework-friendly locators.You want a Selenium-compatible path and the closest conceptual migration from Protractor.
Serenity/JSasync/await with the screenplay pattern layered over Playwright or WebdriverIO.Inherits the underlying engine's locators, wrapped in readable, reusable interactions.You need structured, maintainable acceptance tests with rich living documentation and reporting.

You can go deeper on each option in our guides to Playwright with JavaScript, the Cypress tutorial, and WebdriverIO. Because both Protractor and WebdriverIO sit on top of the WebDriver protocol and share Selenium roots, WebdriverIO is often the smoothest destination for large legacy suites, letting teams reuse much of their existing locator logic while moving to native async/await.

Wherever you land, whether Playwright, Cypress, WebdriverIO, or Serenity/JS, your migrated suite still has to run against the real browsers and operating systems your users have. That is where TestMu AI Automation Cloud fits in. It runs your existing Selenium, Cypress, and Playwright scripts across 3,000+ real browser and OS combinations in parallel, with no local Selenium Grid to maintain and no proprietary rewrite, so moving off Protractor does not mean rebuilding your test infrastructure as well.

Protractor Testing Tutorials For Angular Testing With Examples

These chapters remain a useful reference for understanding and maintaining existing Protractor suites. For new projects, follow the migration paths covered above rather than building fresh automation on a deprecated framework.

Protractor is very useful for End-to-End testing for angular based web applications. So, for all those automation testing enthusiasts, I’ve come up with this series of Protractor testing tutorial to help you in your Selenium test automation journey.

You can choose to go through this Protractor testing tutorial sequentially, or chose topics which interest you, totally up to you!

Let’s Get It Started!

This is a wrap for this introduction, I hope you’re excited about your journey to becoming an automation tester. I’m more than happy to be a part of your automation journey, these tutorials cover all aspects of Protractor testing comprehensively. It covers all the basic aspects of running your first test with Protractor, handling browser actions, alerts, popups and a lot more!

Do go through all these articles, let me know what’s your take on it. If you have any questions or doubts, feel free to reach out in the comment section down below, I’d be happy to help you out. So, what’s the delay then. Let’s Automate!!!?

Experience a visual testing revolution with TestMu AI Angularjs visual testing! Enhance user experiences through effortless screenshot capture, seamless comparison, and optimization.

Austin Siewert

Austin Siewert

Co-Founder, Steadfast Systems

Discovered @TestMu AI yesterday. Best browser testing tool I've found for my use case. Great pricing model for the limited testing I do 👏

2M+ Devs and QAs rely on TestMu AI

Deliver immersive digital experiences with Next-Generation Mobile Apps and Cross Browser Testing Cloud

Author

...

Praveen Mishra

Blogs: 23

  • Twitter
  • Linkedin

Praveen Mishra is a community contributor with 7 years of experience in B2B SaaS, specializing in testing automation and data-driven testing strategies. He holds a Bachelor's degree in Computer Applications (Computer Science) and has written 25+ technical articles on automation testing, CI/CD, cross-browser testing, and related topics. Praveen is followed by over 10,000 professionals from the QA community, including QA engineers, tech leaders, AI enthusiasts, and DevOps professionals, on LinkedIn.

Reviewer

...

Salman Khan

Reviewer

  • Linkedin

Salman is a Test Automation Evangelist and Community Contributor at TestMu AI, with over 6 years of hands-on experience in software testing and automation. He has completed his Master of Technology in Computer Science and Engineering, demonstrating strong technical expertise in software development, testing, AI agents and LLMs. He is certified in KaneAI, Automation Testing, Selenium, Cypress, Playwright, and Appium, with deep experience in CI/CD pipelines, cross-browser testing, AI in testing, and mobile automation. Salman works closely with engineering teams to convert complex testing concepts into actionable, developer-first content. Salman has authored 120+ technical tutorials, guides, and documentation on test automation, web development, and related domains, making him a strong voice in the QA and testing community.

Open in ChatGPT Icon

Open in ChatGPT

Open in Claude Icon

Open in Claude

Open in Perplexity Icon

Open in Perplexity

Open in Grok Icon

Open in Grok

Open in Gemini AI Icon

Open in Gemini AI

Copied to Clipboard!
Kane CLI is Live on Product Hunt
...

3000+ Browsers. One Platform.

See exactly how your site performs everywhere.

Try it free
...

Write Tests in Plain English with KaneAI

Create, debug, and evolve tests using natural language.

Try for free
...
TestMu Conf 2026

World's largest virtual agentic engineering & quality conference

...

AUG 19-21, 2026

REGISTER NOW

Protractor Testing FAQs

Did you find this page helpful?

More Related Blogs

TestMu AI forEnterprise

Get access to solutions built on Enterprise
grade security, privacy, & compliance

  • Advanced access controls
  • Advanced data retention rules
  • Advanced Local Testing
  • Premium Support options
  • Early access to beta features
  • Private Slack Channel
  • Unlimited Manual Accessibility DevTools Tests