Bird
Raised Fist0
Selenium Pythontesting~10 mins

Simple alert acceptance in Selenium Python - Test Execution Trace

Choose your learning style10 modes available
Test Overview

This test opens a webpage with a button that triggers a simple alert popup. It verifies that the alert appears and accepts it successfully.

Test Code - Selenium
Selenium Python
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import unittest

class TestSimpleAlertAcceptance(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.get('https://the-internet.herokuapp.com/javascript_alerts')

    def test_accept_simple_alert(self):
        driver = self.driver
        # Click the button that triggers the alert
        button = driver.find_element(By.XPATH, '//button[text()="Click for JS Alert"]')
        button.click()

        # Wait for the alert to be present
        WebDriverWait(driver, 10).until(EC.alert_is_present())

        # Switch to alert and accept it
        alert = driver.switch_to.alert
        alert_text = alert.text
        alert.accept()

        # Verify the alert text is as expected
        self.assertEqual(alert_text, 'I am a JS Alert')

        # Verify the result text on the page after accepting alert
        result = driver.find_element(By.ID, 'result').text
        self.assertEqual(result, 'You successfully clicked an alert')

    def tearDown(self):
        self.driver.quit()

if __name__ == '__main__':
    unittest.main()
Execution Trace - 9 Steps
StepActionSystem StateAssertionResult
1Test starts and Chrome browser opensBrowser window is open, ready to load URL—PASS
2Navigates to 'https://the-internet.herokuapp.com/javascript_alerts'Page with JavaScript Alerts loaded, showing buttons—PASS
3Finds the button with text 'Click for JS Alert' using XPathButton element located on the page—PASS
4Clicks the alert trigger buttonJavaScript alert popup appears with message—PASS
5Waits up to 10 seconds for alert to be present using WebDriverWait and expected_conditionsAlert is present and active—PASS
6Switches to alert and reads alert textAlert text captured as 'I am a JS Alert'Assert alert text equals 'I am a JS Alert'PASS
7Accepts the alert (clicks OK)Alert disappears, page updates result text—PASS
8Finds the result element by ID 'result' and reads its textResult text is 'You successfully clicked an alert'Assert result text equals 'You successfully clicked an alert'PASS
9Test ends and browser closesBrowser window closed—PASS
Failure Scenario
Failing Condition: Alert does not appear after clicking the button or alert text is different
Execution Trace Quiz - 3 Questions
Test your understanding
What Selenium method is used to wait for the alert popup to appear?
AWebDriverWait(driver, 10).until(EC.alert_is_present())
Bdriver.find_element(By.ID, 'alert')
Cdriver.switch_to.alert.accept()
Ddriver.get('url')
Key Result
Always wait explicitly for alerts before interacting with them to avoid timing issues and ensure reliable test execution.

Practice

(1/5)
1. What does the driver.switch_to.alert.accept() command do in Selenium Python?
easy
A. It closes the browser window.
B. It refreshes the current page.
C. It clicks the OK button on a simple alert popup.
D. It sends text input to the alert popup.

Solution

  1. Step 1: Understand alert handling in Selenium

    The driver.switch_to.alert accesses the alert popup currently shown by the browser.
  2. Step 2: Accepting the alert

    The accept() method clicks the OK button on the alert, closing it.
  3. Final Answer:

    It clicks the OK button on a simple alert popup. -> Option C
  4. Quick Check:

    accept() = clicks OK [OK]
Hint: accept() always clicks OK on alert popups [OK]
Common Mistakes:
  • Confusing accept() with dismiss() which clicks Cancel
  • Trying to send keys with accept()
  • Assuming accept() closes the browser
2. Which of the following is the correct syntax to accept a simple alert in Selenium Python?
easy
A. driver.alert.accept()
B. driver.switch_to.alert.accept()
C. driver.switch_to_alert.accept()
D. driver.switchTo().alert().accept()

Solution

  1. Step 1: Recall correct Selenium Python syntax

    The correct way to switch to alert is driver.switch_to.alert.
  2. Step 2: Confirm method chaining

    Calling accept() on the alert object accepts the alert.
  3. Final Answer:

    driver.switch_to.alert.accept() -> Option B
  4. Quick Check:

    Correct syntax = driver.switch_to.alert.accept() [OK]
Hint: Use driver.switch_to.alert.accept() to accept alerts [OK]
Common Mistakes:
  • Using Java-style syntax like switchTo()
  • Missing the switch_to part
  • Using underscores incorrectly in method names
3. What will happen when the following code runs if a simple alert is present?
driver.switch_to.alert.accept()
print("Alert accepted")
medium
A. The alert is accepted but nothing is printed.
B. The alert is ignored and 'Alert accepted' is printed.
C. An exception is thrown because alert is not handled.
D. The alert is accepted and 'Alert accepted' is printed.

Solution

  1. Step 1: Accept the alert

    The accept() method clicks OK on the alert, closing it.
  2. Step 2: Print confirmation

    After alert is accepted, the print statement runs and outputs the message.
  3. Final Answer:

    The alert is accepted and 'Alert accepted' is printed. -> Option D
  4. Quick Check:

    alert.accept() then print = alert accepted message [OK]
Hint: accept() closes alert, next lines run normally [OK]
Common Mistakes:
  • Thinking alert is ignored without accept()
  • Expecting print before alert is accepted
  • Assuming exception if alert is present
4. Identify the error in this code snippet for accepting an alert:
alert = driver.switch_to.alert
alert.accept
medium
A. Missing parentheses after accept method call.
B. Incorrect alert switching syntax.
C. alert variable name is reserved.
D. accept() should be called on driver, not alert.

Solution

  1. Step 1: Check method call syntax

    The accept method must be called with parentheses accept() to execute.
  2. Step 2: Identify missing parentheses

    Without parentheses, alert.accept is just a reference, not a call, so alert is not accepted.
  3. Final Answer:

    Missing parentheses after accept method call. -> Option A
  4. Quick Check:

    Method calls need () to run [OK]
Hint: Always add () to call methods like accept() [OK]
Common Mistakes:
  • Forgetting parentheses on method calls
  • Using wrong variable names
  • Calling accept() on driver instead of alert
5. You want to accept a simple alert only if it is present, without causing an error if no alert shows. Which code snippet correctly does this?
hard
A. try: driver.switch_to.alert.accept() except: pass
B. if driver.switch_to.alert: driver.switch_to.alert.accept()
C. driver.switch_to.alert.accept() if alert else None
D. driver.switch_to.alert.accept()

Solution

  1. Step 1: Understand alert presence check

    Selenium throws an exception if alert is not present, so we must catch it.
  2. Step 2: Use try-except to accept alert safely

    Wrapping accept() in try-except avoids errors if alert is missing.
  3. Final Answer:

    try: driver.switch_to.alert.accept() except: pass -> Option A
  4. Quick Check:

    Use try-except to handle optional alerts [OK]
Hint: Wrap alert accept in try-except to avoid errors [OK]
Common Mistakes:
  • Checking alert presence with if directly
  • Calling accept() without error handling
  • Using undefined alert variable
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