Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Migrate from Protractor to Cypress in stages: inventory your existing end-to-end coverage, add Cypress to the Angular workspace, port representative tests by behavior, and run both suites until Cypress coverage is dependable. Protractor reached end-of-life in August 2023; its project website recommends that existing users migrate. Protractor project website

Why migrate from Protractor?

The Protractor project deprecated the tool and said it would reach end-of-life in August 2023; that date has passed. Separately, Cypress notes that Protractor stopped being included in new Angular projects as of Angular 12. The Angular default changed earlier than Protractor’s end-of-life, so these are related but distinct milestones. Protractor project website · Cypress migration guide

This guide uses Cypress’s documented Angular setup and command patterns. Exact steps can vary with your Angular workspace, project configuration, custom test helpers, installed browsers, and CI environment; check the compatibility documentation for the versions you actually use before changing version-specific configuration.

1. Inventory your existing suite before changing it

Build a map of what the Protractor tests protect before you port anything. This is a practical planning step, not an automated conversion: the Cypress guide does not describe a tool that translates a whole suite for you.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Elebase USB to USB C Adapter for iPhone 18 Pro Max,USBC Car Charger Adapter
  • Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
  • Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
  • Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
  • Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
  • 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
  • List the user journeys covered, such as sign-in, checkout, or account changes, and note which are most valuable or fragile.
  • Find shared page objects, helper functions, custom locators, and assertions. Record what each is intended to verify, not just its selector.
  • Mark calls to waitForAngular(), fixed delays, browser setup, and any behavior that depends on Angular-specific synchronization.
  • Record how the app is served locally and in CI, which browsers are used, and where the existing CI jobs invoke Protractor.

2. Add Cypress to the Angular workspace

Recommended: use the Angular schematic

Cypress recommends adding its Angular schematic from the workspace root:

ng add @cypress/schematic

The schematic can install Cypress, scaffold Cypress files and directories, add open and run scripts, and optionally prompt to remove Protractor or redirect Angular CLI’s default ng e2e target to Cypress. Review the prompts and resulting workspace configuration rather than assuming the old runner has been removed or the command has been redirected.

Alternative: install and configure manually

You can install Cypress with a package manager and configure it yourself. In that setup, a separate process must serve the Angular application while Cypress runs against it. Cypress’s guide illustrates using concurrently to start the development server and Cypress together; that helper is optional, not a Cypress requirement. Make sure the server command, target URL, and Cypress configuration match your workspace.

Rank #2
Anker USB-C Hub, 5-in-1 USB Hub for Laptops, 4K HDMI Multiport Adapter
  • 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
  • 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
  • Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
  • 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
  • What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.

3. Translate test behavior, not just syntax

Cypress uses chained queries and interactions rather than Protractor’s WebDriver-style element operations. These common patterns from the migration guide are useful starting points:

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Protractor pattern Cypress pattern
element(by.css('#email-field')) cy.get('#email-field')
.sendKeys('text') .type('text')
Click a checkbox .check()
Uncheck a checkbox .uncheck()
Select an option .select('value')
Move an element into view .scrollIntoView()
Find text within a selector A Cypress query such as .contains(...)

For example, a basic interaction changes from:

// Protractor
element(by.css('input')).sendKeys('my text')
element.all(by.css('[type="checkbox"]')).first().click()

to:

// Cypress
cy.get('input').type('my text')
cy.get('[type="checkbox"]').first().check()

These are common translations, not guaranteed one-to-one replacements for every locator, helper, or assertion. Review custom locators for the element they should identify, and add an assertion for the resulting application state. Cypress also points to Testing Library commands as an option for selecting elements. Cypress migration guide

4. Replace arbitrary waits with observable conditions

Protractor suites may use waitForAngular() or fixed timeouts to give the page time to settle. Cypress automatically retries DOM queries and waits for an element to become actionable, subject to its configured defaultCommandTimeout. Prefer a query and assertion that express the state the test needs, such as a confirmation message being visible, over a delay whose duration merely guesses when that state will occur.

Rank #3
Sale
Anker USB C Hub, 7in1 Multi-Port USB Adapter, 4K@60Hz USBC to HDMI Splitter
  • Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
  • Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
  • Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
  • Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
  • What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.

Do not replace every old wait with cy.wait(number). First determine what the delay was intended to wait for, then express that condition with a retryable query or a specific assertion where possible. Cypress’s retry behavior does not mean every asynchronous effect or external dependency is automatically handled; tests still need to verify the application outcome they depend on. Cypress migration guide

5. Keep both test suites during the transition

You do not have to replace all tests immediately. Cypress documents keeping Protractor tests in Angular CLI’s existing e2e directory and adding Cypress specs in a sibling cypress folder. This lets teams migrate incrementally instead of making a runner replacement a prerequisite for unrelated feature work. Cypress migration guide

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Choose a stable, valuable user journey and port its test to Cypress.
  2. Run that test locally and in CI; investigate differences in selectors, setup, and failure behavior.
  3. Compare what the new test actually covers with the Protractor version, including assertions and edge cases.
  4. Repeat with another journey. Retire corresponding Protractor coverage only when the Cypress test is reliable in your team’s environment.

6. Run Cypress locally and in CI

Angular schematic commands

With the schematic, Cypress documents these Angular CLI commands:

Rank #4
Sale
UGREEN USB to USB C Adapter Combo 4-Pack, 10Gbps USB C Converter Space Gray
  • Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
  • Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
  • Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
  • Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
  • Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
  • ng e2e — run the configured end-to-end target if the schematic has set it to Cypress.
  • ng run {project}:cypress-open — open Cypress for the named Angular project.
  • ng run {project}:cypress-run — run Cypress for the named Angular project.

Replace {project} with the project name in your workspace. The schematic also supports browser selection with --browser or a configured default browser. Confirm the target name and browser availability in the actual workspace before copying a command into CI. Cypress migration guide

Manual setup

If you installed Cypress manually, use the scripts and server orchestration you configured for your app. Cypress’s guide shows example cy:open and cy:run scripts that start the app and Cypress together. Their exact commands depend on the project’s serve target and configuration; concurrently is an example helper, not a required dependency.

Optional CI recording and parallelization

For teams that need recorded CI runs or parallel execution, Cypress documents running with --record --parallel, as well as schematic options for parallel, record, and a recording key. Its guide describes Cypress Cloud for recorded runs and Test Replay as a debugging capability for recorded runs. These options require service configuration and are not necessary for every migration; decide based on your CI scaling and debugging needs. Cypress migration guide

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
Anker USB C Hub, 5-in-1 USBC to HDMI Splitter with 4K Display
  • 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
  • Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
  • Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
  • HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
  • What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Common migration problems and fixes

  • The Angular CLI still runs Protractor. Check whether the schematic redirected the default ng e2e target. If you chose manual setup or kept the existing target, use the Cypress-specific target or your configured script instead.
  • Cypress opens, but the app is unavailable. In manual setup, ensure a separate process serves the app, and confirm the Cypress base URL points to that server. If you use a combined script, check that the server startup and Cypress commands are both configured to run.
  • A migrated query finds no element. Verify the selector against the rendered page and check whether the old custom locator encoded additional behavior. A syntactic conversion alone may not preserve its meaning.
  • An interaction fails because an element is not actionable. Check that the element is present and in the expected state. Use Cypress’s retryable query and action model, and scroll into view when that is part of the intended interaction; do not mask the problem with a longer arbitrary sleep.
  • A test is flaky after removing an explicit wait. Identify the specific state the wait represented and assert that state. Retryable queries help with DOM changes, but they do not make unrelated asynchronous work or external services complete automatically.
  • A browser-specific CI run fails to start. Confirm the chosen browser is installed and available to the CI job, then check the browser selection passed with --browser or the configured default.
  • Recorded or parallel CI runs do not start. Verify that recording and parallelization were deliberately configured, including the required recording key and service setup, rather than enabling the flags alone.

Or skip the browser setup

If your immediate need is a page screenshot rather than an end-to-end interaction test, ScreenshotNeo can return a screenshot or PDF with one GET request. It is a screenshot API and MCP server, not a replacement for migrating your test suite: cookie banners, popups, and chat widgets can be removed before capture, and bot checks, blank pages, and failed loads are not billed. Its MCP server lets AI agents take screenshots, and 1,000 screenshots a month are free with no card; paid plans start at $5 for 3,000. ScreenshotNeo API documentation

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

Sign up for ScreenshotNeo’s free plan: 1,000 screenshots a month, no card required.

Frequently Asked Questions

Can Protractor and Cypress coexist in the same Angular app?

Yes. Cypress documents keeping Protractor tests in the existing e2e directory and placing Cypress specs in a sibling cypress folder while the migration proceeds.

Do I have to replace all of my tests with Cypress immediately?

No. Migrate a representative user journey first, then expand Cypress coverage as the new tests prove reliable in your environment.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Does Cypress automatically convert Protractor test files?

The migration guide documents setup and command mappings, not an automatic whole-suite converter. Port test intent and review custom helpers and assertions.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.