Bird
Raised Fist0
Selenium Pythontesting~20 mins

Prompt alert with text input in Selenium Python - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Prompt 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 prompt alert?
Consider the following Selenium Python code snippet that handles a prompt alert by sending text and accepting 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 page with prompt alert
alert_button = driver.find_element(By.ID, 'promptButton')
alert_button.click()

wait = WebDriverWait(driver, 10)
prompt = wait.until(EC.alert_is_present())
prompt.send_keys('Hello')
prompt.accept()

result_text = driver.find_element(By.ID, 'result').text
print(result_text)
AYou entered Hello
BNo alert present
CHello
DTimeoutException
Attempts:
2 left
💡 Hint
Think about what the page shows after accepting the prompt with input.
❓ assertion
intermediate
1:30remaining
Which assertion correctly verifies the prompt alert input was accepted?
You want to verify that the prompt alert input 'Test123' was accepted and displayed on the page in element with ID 'result'. Which assertion is correct?
Selenium Python
result_text = driver.find_element(By.ID, 'result').text
Aassert result_text != ''
Bassert 'Test123' in result_text
Cassert result_text == 'You entered Test123'
Dassert result_text == 'Test123'
Attempts:
2 left
💡 Hint
Check the exact text the page shows after prompt input.
❓ locator
advanced
1:30remaining
Which locator is best to find the prompt alert button for reliable tests?
You want to locate the button that triggers the prompt alert. The button has class 'btn' and text 'Click me'. Which locator is best practice for stable Selenium tests?
Adriver.find_element(By.XPATH, "//button[text()='Click me']")
Bdriver.find_element(By.TAG_NAME, 'button')
Cdriver.find_element(By.CSS_SELECTOR, 'button.btn')
Ddriver.find_element(By.CLASS_NAME, 'btn')
Attempts:
2 left
💡 Hint
Consider uniqueness and stability of locators.
🔧 Debug
advanced
2:00remaining
Why does this Selenium code raise UnexpectedAlertPresentException?
This code tries to send keys to a prompt alert but raises UnexpectedAlertPresentException. Why?
Selenium Python
alert_button = driver.find_element(By.ID, 'promptButton')
alert_button.click()
prompt = driver.switch_to.alert
prompt.send_keys('Test')
prompt.accept()

# Next line fails
driver.find_element(By.ID, 'result').text
AThe element with ID 'result' does not exist
Bsend_keys is not supported on alerts
Cprompt.accept() must be called before send_keys
DThe alert was not waited for and not ready when send_keys was called
Attempts:
2 left
💡 Hint
Check if the alert is fully present before interacting.
❓ framework
expert
3:00remaining
How to design a reusable test function for prompt alerts with input and verification?
You want a reusable Python function using Selenium that clicks a prompt alert button, inputs text, accepts it, and verifies the result text. Which function design is best?
Selenium Python
def test_prompt_alert(driver, button_id, input_text, result_id, expected_text):
    # Fill in the function body
A
def test_prompt_alert(driver, button_id, input_text, result_id, expected_text):
    driver.find_element(By.ID, button_id).click()
    alert = driver.switch_to.alert
    alert.send_keys(input_text)
    alert.accept()
    result = driver.find_element(By.ID, result_id).text
    assert expected_text in result
B
def test_prompt_alert(driver, button_id, input_text, result_id, expected_text):
    driver.find_element(By.ID, button_id).click()
    alert = WebDriverWait(driver, 10).until(EC.alert_is_present())
    alert.send_keys(input_text)
    alert.accept()
    result = driver.find_element(By.ID, result_id).text
    assert result == expected_text
C
def test_prompt_alert(driver, button_id, input_text, result_id, expected_text):
    driver.find_element(By.ID, button_id).click()
    alert = WebDriverWait(driver, 5).until(EC.alert_is_present())
    alert.accept()
    alert.send_keys(input_text)
    result = driver.find_element(By.ID, result_id).text
    assert result == expected_text
D
def test_prompt_alert(driver, button_id, input_text, result_id, expected_text):
    driver.find_element(By.ID, button_id).click()
    alert = WebDriverWait(driver, 10).until(EC.alert_is_present())
    alert.send_keys(input_text)
    alert.dismiss()
    result = driver.find_element(By.ID, result_id).text
    assert result == expected_text
Attempts:
2 left
💡 Hint
Wait for alert, send keys, accept, then verify exact result.

Practice

(1/5)
1. What is the main purpose of handling a prompt alert with text input in Selenium?
easy
A. To scroll the webpage automatically
B. To enter text into a popup alert and accept it
C. To click a button on the webpage
D. To take a screenshot of the alert

Solution

  1. Step 1: Understand prompt alerts

    Prompt alerts allow users to enter text in a popup box on the webpage.
  2. Step 2: Handling prompt alerts in Selenium

    Selenium can switch to the alert, send text input, and accept it to proceed.
  3. Final Answer:

    To enter text into a popup alert and accept it -> Option B
  4. Quick Check:

    Prompt alert = text input + accept [OK]
Hint: Prompt alert means input text then accept [OK]
Common Mistakes:
  • Confusing prompt alert with simple alerts
  • Trying to send keys without switching to alert
  • Ignoring the accept() step after input
2. Which Selenium Python code snippet correctly sends text 'hello' to a prompt alert and accepts it?
easy
A. driver.send_keys('hello') alert.accept()
B. alert = driver.find_element_by_id('alert') alert.send_keys('hello') alert.accept()
C. alert = driver.switch_to.alert alert.send_keys('hello') alert.accept()
D. alert = driver.switch_to.alert alert.dismiss() alert.send_keys('hello')

Solution

  1. Step 1: Switch to alert correctly

    Use driver.switch_to.alert to access the alert object.
  2. Step 2: Send keys and accept alert

    Call send_keys('hello') then accept() to input text and confirm.
  3. Final Answer:

    alert = driver.switch_to.alert alert.send_keys('hello') alert.accept() -> Option C
  4. Quick Check:

    switch_to.alert + send_keys + accept = correct [OK]
Hint: Always switch_to.alert before sending keys [OK]
Common Mistakes:
  • Using find_element instead of switch_to.alert
  • Calling dismiss() before send_keys
  • Sending keys without switching to alert
3. What will be the output of this Selenium Python code if the prompt alert expects a name and you input 'Alice'?
alert = driver.switch_to.alert
alert.send_keys('Alice')
alert.accept()
result = driver.find_element(By.ID, 'result').text
print(result)
medium
A. Alert dismissed without input
B. No alert found error
C. Empty string printed
D. Hello Alice! Your input was received.

Solution

  1. Step 1: Input text and accept alert

    The code sends 'Alice' to the prompt alert and accepts it, so input is registered.
  2. Step 2: Retrieve result text from page

    The page updates an element with ID 'result' to show a greeting including the input.
  3. Final Answer:

    Hello Alice! Your input was received. -> Option D
  4. Quick Check:

    Input 'Alice' + accept = greeting message [OK]
Hint: Accepted prompt input updates page text [OK]
Common Mistakes:
  • Expecting error without alert present
  • Not retrieving updated element text
  • Assuming alert dismiss clears input
4. Identify the error in this Selenium Python code snippet handling a prompt alert:
alert = driver.switch_to.alert
alert.accept()
alert.send_keys('Test')
medium
A. send_keys called after accept, alert no longer available
B. Missing import for Alert class
C. Incorrect locator used for alert
D. No error, code works fine

Solution

  1. Step 1: Understand alert lifecycle

    Calling accept() closes the alert, so it cannot receive input afterward.
  2. Step 2: Correct order for input and accept

    send_keys() must be called before accept() to input text successfully.
  3. Final Answer:

    send_keys called after accept, alert no longer available -> Option A
  4. Quick Check:

    accept() closes alert, no send_keys after [OK]
Hint: Send keys before accept to avoid alert closed error [OK]
Common Mistakes:
  • Calling accept before send_keys
  • Ignoring alert closure after accept
  • Assuming alert object persists after accept
5. You want to test a prompt alert that asks for user age and rejects empty input. Which Selenium Python code correctly handles this scenario and verifies the rejection message?
hard
A. alert = driver.switch_to.alert alert.send_keys('') alert.accept() msg = driver.find_element(By.ID, 'error').text assert msg == 'Input required'
B. alert = driver.switch_to.alert alert.dismiss() msg = driver.find_element(By.ID, 'error').text assert msg == 'Input required'
C. alert = driver.switch_to.alert alert.send_keys('25') alert.dismiss() msg = driver.find_element(By.ID, 'error').text assert msg == 'Input required'
D. alert = driver.switch_to.alert alert.send_keys('') alert.dismiss() msg = driver.find_element(By.ID, 'error').text assert msg == 'Input required'

Solution

  1. Step 1: Send empty input and accept alert

    Send empty string to prompt and accept to simulate empty input submission.
  2. Step 2: Verify error message on page

    Check the element with ID 'error' for the rejection message 'Input required'.
  3. Final Answer:

    Send empty input + accept + assert error message -> Option A
  4. Quick Check:

    Empty input + accept triggers error message [OK]
Hint: Send empty string then accept to test input validation [OK]
Common Mistakes:
  • Dismissing alert instead of accepting
  • Not sending any input before accept
  • Checking wrong element for error message
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