Bird
Raised Fist0
Cypresstesting~15 mins

Cypress vs Selenium vs Playwright comparison - Automation Approaches Compared

Choose your learning style10 modes available
Verify login functionality using Cypress
Preconditions (2)
Step 1: Open the login page at 'http://localhost:3000/login'
Step 2: Enter 'testuser' in the username input field with id 'username'
Step 3: Enter 'Test@1234' in the password input field with id 'password'
Step 4: Click the login button with id 'loginBtn'
Step 5: Wait for the dashboard page to load
Step 6: Verify that the URL is 'http://localhost:3000/dashboard'
Step 7: Verify that the page contains a welcome message with id 'welcomeMsg' and text 'Welcome, testuser!'
✅ Expected Result: User is successfully logged in and redirected to the dashboard page with the welcome message displayed.
Automation Requirements - Cypress
Assertions Needed:
URL should be 'http://localhost:3000/dashboard' after login
Welcome message with correct text should be visible
Best Practices:
Use cy.get() with id selectors for element targeting
Use explicit assertions with .should()
Avoid hardcoded waits; rely on Cypress automatic waits
Organize test steps clearly with comments
Automated Solution
Cypress
describe('Login Functionality Test', () => {
  it('should log in successfully and show welcome message', () => {
    // Open login page
    cy.visit('http://localhost:3000/login');

    // Enter username
    cy.get('#username').type('testuser');

    // Enter password
    cy.get('#password').type('Test@1234');

    // Click login button
    cy.get('#loginBtn').click();

    // Verify URL is dashboard
    cy.url().should('eq', 'http://localhost:3000/dashboard');

    // Verify welcome message
    cy.get('#welcomeMsg').should('be.visible').and('have.text', 'Welcome, testuser!');
  });
});

This Cypress test script automates the manual test case step-by-step.

First, cy.visit() opens the login page.

Then, cy.get('#username') and cy.get('#password') select the input fields by their IDs and type the credentials.

The login button is clicked using cy.get('#loginBtn').click().

After login, cy.url().should('eq', ...) asserts the URL is the dashboard page.

Finally, cy.get('#welcomeMsg') checks the welcome message is visible and has the correct text.

Cypress automatically waits for elements to appear, so no explicit waits are needed.

Common Mistakes - 3 Pitfalls
Using hardcoded waits like cy.wait(5000) instead of relying on Cypress automatic waits
Using non-unique or complex selectors instead of simple ID selectors
Not asserting the URL after login
Bonus Challenge

Now add data-driven testing with 3 different sets of login credentials (valid and invalid) to verify login behavior.

Show Hint

Practice

(1/5)
1. Which testing tool is known for its fast setup and mainly supports Chrome-family browsers?
easy
A. Selenium
B. Cypress
C. Playwright
D. JUnit

Solution

  1. Step 1: Understand tool browser support

    Cypress is designed for fast tests mainly in Chrome-family browsers.
  2. Step 2: Compare with other tools

    Selenium supports many browsers but requires more setup; Playwright supports multiple browsers with modern features.
  3. Final Answer:

    Cypress -> Option B
  4. Quick Check:

    Fast Chrome tests = Cypress [OK]
Hint: Fast Chrome-only tests? Think Cypress [OK]
Common Mistakes:
  • Confusing Selenium as fastest setup
  • Thinking Playwright only supports Chrome
  • Selecting unrelated tools like JUnit
2. Which of the following is a correct statement about Selenium?
easy
A. Selenium supports multiple programming languages and browsers.
B. Selenium is limited to Chrome browser only.
C. Selenium only supports JavaScript language.
D. Selenium requires no setup before running tests.

Solution

  1. Step 1: Recall Selenium features

    Selenium supports many programming languages like Java, Python, JavaScript, and many browsers.
  2. Step 2: Eliminate incorrect options

    It is not limited to JavaScript or Chrome, and it requires setup.
  3. Final Answer:

    Selenium supports multiple programming languages and browsers. -> Option A
  4. Quick Check:

    Multi-language, multi-browser = Selenium [OK]
Hint: Selenium = many languages + browsers [OK]
Common Mistakes:
  • Thinking Selenium supports only JavaScript
  • Believing Selenium works without setup
  • Assuming Selenium is Chrome-only
3. Consider this statement: "Playwright supports running tests on Chromium, Firefox, and WebKit browsers." Which tool does this describe?
medium
A. Playwright
B. Selenium
C. TestCafe
D. Cypress

Solution

  1. Step 1: Identify browser support

    Playwright supports Chromium, Firefox, and WebKit browsers natively.
  2. Step 2: Match with tool features

    Cypress mainly supports Chromium-based browsers; Selenium supports many but not WebKit directly; TestCafe is different.
  3. Final Answer:

    Playwright -> Option A
  4. Quick Check:

    Multi-browser including WebKit = Playwright [OK]
Hint: WebKit support means Playwright [OK]
Common Mistakes:
  • Assuming Cypress supports WebKit
  • Confusing Selenium with Playwright browser support
  • Selecting unrelated tools like TestCafe
4. You wrote a test script using Cypress but it fails to run on Firefox browser. What is the most likely reason?
medium
A. Your Firefox browser version is outdated.
B. You need to install Playwright to run Cypress tests on Firefox.
C. Cypress requires Selenium to run on Firefox.
D. Cypress does not support Firefox well yet.

Solution

  1. Step 1: Understand Cypress browser support

    Cypress primarily supports Chromium browsers; Firefox support is experimental and limited.
  2. Step 2: Evaluate other options

    Cypress does not depend on Selenium or Playwright; outdated browser or installing Playwright is unrelated.
  3. Final Answer:

    Cypress does not support Firefox well yet. -> Option D
  4. Quick Check:

    Limited Firefox support = Cypress issue [OK]
Hint: Cypress Firefox support is limited [OK]
Common Mistakes:
  • Thinking Cypress needs Selenium for Firefox
  • Blaming browser version without checking support
  • Assuming Playwright is needed for Cypress tests
5. You want to write end-to-end tests that run fast, support multiple browsers including Safari, and allow writing tests in JavaScript or Python. Which tool should you choose?
hard
A. Cypress
B. Selenium
C. Playwright
D. Mocha

Solution

  1. Step 1: Analyze browser support needs

    Safari support requires WebKit engine support, which Playwright provides.
  2. Step 2: Consider language support and speed

    Playwright supports JavaScript and Python and offers fast test execution with modern features.
  3. Step 3: Compare with other tools

    Cypress is fast but limited to Chromium browsers and JavaScript; Selenium supports many languages but is slower; Mocha is a test framework, not a browser automation tool.
  4. Final Answer:

    Playwright -> Option C
  5. Quick Check:

    Multi-browser + multi-language + speed = Playwright [OK]
Hint: Multi-browser and language support? Choose Playwright [OK]
Common Mistakes:
  • Choosing Cypress for Safari support
  • Picking Selenium for speed over Playwright
  • Confusing Mocha as a browser automation tool
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard