What is Selenium primarily used for in software testing?
Selenium is a tool for automating web browsers to test web applications across different browsers and platforms.
Click to reveal answer
intermediate
How does Cypress differ from Selenium in terms of architecture?
Cypress runs inside the browser and executes tests in the same run loop as the application, while Selenium controls the browser externally via WebDriver.
Click to reveal answer
intermediate
What is a key advantage of Playwright over Selenium and Cypress?
Playwright supports multiple browsers (Chromium, Firefox, WebKit) with a single API and offers automatic waiting for elements, making tests more reliable.
Click to reveal answer
beginner
Which tool is best suited for testing modern JavaScript frameworks with fast feedback?
Cypress is often preferred for modern JavaScript frameworks because it provides fast test execution and easy debugging with real-time reloads.
Click to reveal answer
intermediate
What is a limitation of Selenium compared to Cypress and Playwright?
Selenium can be slower and less reliable due to its external control of browsers and requires more setup for modern web app features like automatic waits.
Click to reveal answer
Which tool runs tests inside the browser's JavaScript runtime?
ACypress
BSelenium
CPlaywright
DJUnit
✗ Incorrect
Cypress runs tests inside the browser's JavaScript runtime, unlike Selenium and Playwright which control browsers externally.
Which tool supports testing on WebKit browsers like Safari?
ATestCafe
BCypress
CSelenium
DPlaywright
✗ Incorrect
Playwright supports Chromium, Firefox, and WebKit browsers, enabling testing on Safari.
Which tool requires a WebDriver to communicate with browsers?
APlaywright
BCypress
CSelenium
DPuppeteer
✗ Incorrect
Selenium uses WebDriver to control browsers externally.
Which tool provides automatic waiting for elements to be ready before actions?
APlaywright
BSelenium
CJUnit
DRobot Framework
✗ Incorrect
Playwright automatically waits for elements to be ready, improving test reliability.
Which tool is known for fast test execution and easy debugging with real-time reloads?
ASelenium
BCypress
CPlaywright
DAppium
✗ Incorrect
Cypress offers fast test execution and real-time reloads for easy debugging.
Explain the main architectural differences between Selenium, Cypress, and Playwright.
Think about where the test code runs and how the tool interacts with the browser.
You got /3 concepts.
Describe scenarios where you might choose Cypress over Selenium or Playwright.
Consider developer experience and speed.
You got /3 concepts.
Practice
(1/5)
1. Which testing tool is known for supporting multiple programming languages including Python and JavaScript, and offers broad browser support?
easy
A. Cypress
B. Playwright
C. Selenium
D. JUnit
Solution
Step 1: Identify language support
Selenium supports many languages like Python, Java, C#, etc., unlike Cypress which mainly supports JavaScript.
Step 2: Check browser support
Selenium supports many browsers including Chrome, Firefox, Safari, Edge, and more, making it broad in browser support.
Final Answer:
Selenium -> Option C
Quick Check:
Multi-language + broad browsers = Selenium [OK]
Hint: Multi-language and broad browser support points to Selenium [OK]
Common Mistakes:
Confusing Cypress as multi-language
Thinking Playwright supports more languages than Selenium
Choosing JUnit which is a Java testing framework
2. Which of the following is the correct way to start a Playwright browser session in Python?
easy
A. browser = playwright.chromium.launch()
B. browser = Playwright.start()
C. browser = playwright.startBrowser()
D. browser = Playwright.launchChromium()
Solution
Step 1: Recall Playwright Python syntax
Playwright uses the syntax playwright.chromium.launch() to start a Chromium browser session.
Step 2: Check other options for correctness
Options B, C, and D do not match the official Playwright Python API method names.
Final Answer:
browser = playwright.chromium.launch() -> Option A
Hint: Playwright uses playwright.chromium.launch() in Python [OK]
Common Mistakes:
Using incorrect method names like startBrowser()
Confusing Playwright with Selenium syntax
Capitalizing Playwright incorrectly in code
3. Given the following code snippet using Cypress, what will be the output if the element with id #submit is not found?
cy.get('#submit').click()
medium
A. Test fails with an error that element was not found
B. Test passes silently without clicking
C. Test retries indefinitely until element appears
D. Test skips the click and logs a warning
Solution
Step 1: Understand Cypress default behavior
Cypress automatically retries commands for a default timeout but if the element is not found within that time, it throws an error.
Step 2: Analyze the code effect
Since cy.get('#submit').click() requires the element, failure to find it causes the test to fail with an error.
Final Answer:
Test fails with an error that element was not found -> Option A
Quick Check:
Cypress fails test if element missing [OK]
Hint: Cypress fails test if element not found after retries [OK]
Common Mistakes:
Thinking Cypress passes silently
Assuming infinite retries
Believing it logs warning but continues
4. You wrote this Selenium Python code but it throws an error:
driver = webdriver.Chrome()
driver.get('https://example.com')
element = driver.find_element_by_id('login')
element.click()
What is the likely cause and fix?
medium
A. click() method does not exist; use submit() instead
B. Method find_element_by_id is deprecated; use find_element(By.ID, 'login') instead
C. URL is incorrect; fix the URL string
D. Chrome driver is not installed; install it first
Solution
Step 1: Identify deprecated method usage
In recent Selenium versions, find_element_by_id is deprecated and replaced by find_element with By.ID locator.
Step 2: Apply correct method usage
Use from selenium.webdriver.common.by import By and then driver.find_element(By.ID, 'login') to fix the error.
Final Answer:
Method find_element_by_id is deprecated; use find_element(By.ID, 'login') instead -> Option B
Quick Check:
Use By.ID locator, not deprecated method [OK]
Hint: Use find_element(By.ID, ...) instead of deprecated find_element_by_id [OK]
Common Mistakes:
Ignoring deprecation warnings
Assuming click() method is missing
Blaming URL or driver installation incorrectly
5. You want to write a test that runs on Chromium, Firefox, and WebKit browsers using Playwright in Python. Which approach correctly achieves this multi-browser testing?
hard
A. Run tests only on Chromium; Playwright does not support Firefox or WebKit
B. Use Cypress since it supports all three browsers natively
C. Use Selenium only because Playwright supports one browser at a time
D. Loop over playwright.chromium, playwright.firefox, and playwright.webkit to launch each browser and run tests
Solution
Step 1: Understand Playwright multi-browser support
Playwright supports Chromium, Firefox, and WebKit browsers and allows launching each separately.
Step 2: Implement multi-browser testing
Looping over playwright.chromium, playwright.firefox, and playwright.webkit to launch browsers and run tests is the correct approach.
Final Answer:
Loop over playwright.chromium, playwright.firefox, and playwright.webkit to launch each browser and run tests -> Option D