Bird
Raised Fist0
Selenium Pythontesting~20 mins

Confirmation alert handling in Selenium Python - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Confirmation Alert Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this Selenium Python code handling a confirmation alert?
Consider the following Selenium Python code snippet that clicks a button to trigger a confirmation alert, then accepts it. What will be printed?
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

# Assume driver is already initialized and navigated to the page
button = driver.find_element(By.ID, 'confirmBtn')
button.click()

alert = WebDriverWait(driver, 5).until(EC.alert_is_present())
alert.accept()
print('Alert accepted')
AUnhandledAlertException
BAlert accepted
CNoSuchElementException
DTimeoutException
Attempts:
2 left
💡 Hint
Think about what happens after the alert is accepted and the print statement runs.
❓ assertion
intermediate
1:30remaining
Which assertion correctly verifies the alert text before accepting it?
You want to check that the confirmation alert text is exactly 'Are you sure?' before accepting it. Which assertion is correct?
Selenium Python
alert = driver.switch_to.alert
alert_text = alert.text
# Which assertion below is correct?
Aassert alert_text == 'Are you sure?'
Bassert alert_text.equals('Are you sure?')
Cassert alert.text = 'Are you sure?'
Dassert alert_text != 'Are you sure?'
Attempts:
2 left
💡 Hint
Remember how to compare strings in Python.
❓ locator
advanced
2:00remaining
Which locator is best to find a button that triggers a confirmation alert?
You want to locate a button that triggers a confirmation alert. The button has the text 'Delete' and a class 'btn-danger'. Which locator is best practice?
Adriver.find_element(By.ID, 'Delete')
Bdriver.find_element(By.CSS_SELECTOR, "button.btn-danger:contains('Delete')")
Cdriver.find_element(By.XPATH, "//button[text()='Delete' and contains(@class, 'btn-danger')]")
Ddriver.find_element(By.CLASS_NAME, 'btn-danger')
Attempts:
2 left
💡 Hint
CSS selectors do not support :contains pseudo-class in Selenium.
🔧 Debug
advanced
2:00remaining
Why does this Selenium code raise UnexpectedAlertPresentException?
Review the code below. It tries to click a button and then get page title. Why does it raise UnexpectedAlertPresentException?
Selenium Python
button = driver.find_element(By.ID, 'confirmBtn')
button.click()
title = driver.title
print(title)
ABecause the button ID is incorrect
BBecause the click() method is asynchronous and needs wait
CBecause driver.title is not a valid property
DBecause the confirmation alert is not handled before accessing driver.title
Attempts:
2 left
💡 Hint
Think about what happens when an alert is present and you try to interact with the page.
❓ framework
expert
2:30remaining
In a pytest Selenium test, how to properly handle confirmation alerts to avoid flaky tests?
You write pytest tests using Selenium. Confirmation alerts appear unpredictably after clicking buttons. Which approach best avoids flaky tests?
AUse explicit waits for alert presence and accept alerts before continuing test steps
BIgnore alerts and catch exceptions when they appear
CUse time.sleep() after clicks to wait for alerts to appear
DDisable alerts in browser settings before tests
Attempts:
2 left
💡 Hint
Think about reliable ways to detect alerts instead of guessing with fixed delays.

Practice

(1/5)
1. What is the correct method to accept a confirmation alert in Selenium with Python?
easy
A. driver.confirm.accept()
B. driver.switch_to.alert.dismiss()
C. driver.switch_to.alert.accept()
D. driver.alert.accept()

Solution

  1. Step 1: Switch to the alert

    Use driver.switch_to.alert to access the alert popup.
  2. Step 2: Accept the alert

    Call accept() on the alert object to confirm it.
  3. Final Answer:

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

    Accept alert = driver.switch_to.alert.accept() [OK]
Hint: Use switch_to.alert before accept() to handle confirmation [OK]
Common Mistakes:
  • Using dismiss() instead of accept() to confirm
  • Calling accept() directly on driver without switch_to.alert
  • Using incorrect method names like confirm.accept()
2. Which of the following is the correct syntax to dismiss a confirmation alert in Selenium Python?
easy
A. driver.alert.dismiss()
B. driver.switch_to.alert.dismiss()
C. driver.dismiss.alert()
D. driver.switch_to.dismiss()

Solution

  1. Step 1: Access the alert

    Use driver.switch_to.alert to get the alert object.
  2. Step 2: Call dismiss() method

    Use dismiss() to cancel or reject the confirmation alert.
  3. Final Answer:

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

    Dismiss alert = driver.switch_to.alert.dismiss() [OK]
Hint: Dismiss confirmation alert with switch_to.alert.dismiss() [OK]
Common Mistakes:
  • Calling dismiss() on driver directly
  • Using wrong method order like switch_to.dismiss()
  • Using driver.alert.dismiss() which is invalid
3. What will be the output of the following code snippet if the confirmation alert is accepted?
driver.find_element(By.ID, 'confirmBtn').click()
alert = driver.switch_to.alert
alert.accept()
print('Alert accepted')
medium
A. Alert accepted
B. Alert dismissed
C. No output, code throws exception
D. Alert text printed

Solution

  1. Step 1: Click triggers confirmation alert

    The button click opens a confirmation alert popup.
  2. Step 2: Accept the alert and print message

    The alert is accepted using alert.accept(), then prints 'Alert accepted'.
  3. Final Answer:

    Alert accepted -> Option A
  4. Quick Check:

    Accept alert prints confirmation message [OK]
Hint: Accept alert then print confirmation message [OK]
Common Mistakes:
  • Expecting alert text to print instead of message
  • Using dismiss() but expecting accept output
  • Not switching to alert before accept()
4. Identify the error in the following code that tries to dismiss a confirmation alert:
driver.find_element(By.ID, 'confirmBtn').click()
alert = driver.alert
alert.dismiss()
medium
A. Incorrect alert access; should use driver.switch_to.alert
B. dismiss() method does not exist for alerts
C. Missing import for By module
D. No error; code is correct

Solution

  1. Step 1: Check alert access method

    The code uses driver.alert, which is invalid in Selenium Python.
  2. Step 2: Correct way to access alert

    Use driver.switch_to.alert to get the alert object before calling dismiss().
  3. Final Answer:

    Incorrect alert access; should use driver.switch_to.alert -> Option A
  4. Quick Check:

    Alert access = driver.switch_to.alert [OK]
Hint: Always use driver.switch_to.alert to access alerts [OK]
Common Mistakes:
  • Using driver.alert instead of driver.switch_to.alert
  • Calling dismiss() on wrong object
  • Ignoring import errors unrelated to alert handling
5. You want to verify the text of a confirmation alert before accepting it. Which code snippet correctly handles this scenario?
hard
A. alert = driver.switch_to.alert if alert.get_text == 'Are you sure?': alert.accept()
B. alert = driver.alert if alert.getText() == 'Are you sure?': alert.accept()
C. alert = driver.switch_to.alert if alert.text() == 'Are you sure?': alert.dismiss()
D. alert = driver.switch_to.alert if alert.text == 'Are you sure?': alert.accept()

Solution

  1. Step 1: Access alert correctly

    Use driver.switch_to.alert to get the alert object.
  2. Step 2: Check alert text property

    Use alert.text (property, not method) to get alert message and compare.
  3. Step 3: Accept alert if text matches

    If text matches 'Are you sure?', call alert.accept() to confirm.
  4. Final Answer:

    alert = driver.switch_to.alert if alert.text == 'Are you sure?': alert.accept() -> Option D
  5. Quick Check:

    Use alert.text property and accept() method [OK]
Hint: Use alert.text property to check text before accept() [OK]
Common Mistakes:
  • Using alert.text() as a method instead of property
  • Using driver.alert instead of driver.switch_to.alert
  • Calling dismiss() when accept() is needed
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