Bird
Raised Fist0
Selenium Javatesting~8 mins

Prompt alert text entry in Selenium Java - Framework Patterns

Choose your learning style10 modes available
Framework Mode - Prompt alert text entry
Folder Structure
src/
└── test/
    └── java/
        └── com/
            └── example/
                ├── pages/
                │   └── AlertPage.java
                ├── tests/
                │   └── AlertTests.java
                ├── utils/
                │   └── WebDriverFactory.java
                └── config/
                    └── TestConfig.java
Test Framework Layers
  • Driver Layer: Manages WebDriver setup and teardown (e.g., WebDriverFactory).
  • Page Objects: Encapsulate page elements and actions, e.g., AlertPage handles prompt alert interactions.
  • Tests: Test classes like AlertTests contain test methods that use page objects to perform actions and assertions.
  • Utilities: Helper classes for common functions, waits, or reusable code.
  • Configuration: Central place for environment settings, browser types, credentials (TestConfig).
Configuration Patterns
  • Use a TestConfig class or properties file to store environment URLs, browser types, and credentials.
  • Allow switching browsers via system properties or config files (e.g., -Dbrowser=chrome).
  • Use environment variables or config files to keep sensitive data like usernames and passwords secure.
  • Initialize WebDriver in WebDriverFactory based on config settings.
Test Reporting and CI/CD Integration
  • Use TestNG built-in reports or integrate with Allure for detailed HTML reports.
  • Configure test suites in TestNG XML files to organize tests and run groups.
  • Integrate with CI/CD tools like Jenkins or GitHub Actions to run tests automatically on code changes.
  • Publish reports as build artifacts or send notifications on test failures.
Best Practices
  • Use Page Object Model: Keep alert handling code inside page objects to separate test logic from UI details.
  • Explicit Waits: Use explicit waits to wait for alerts to appear before interacting.
  • Handle Alerts Safely: Always check if alert is present before switching to it to avoid exceptions.
  • Clear Test Steps: Write tests that clearly show prompt alert text entry and verification steps.
  • Reusable WebDriver Setup: Centralize WebDriver creation and cleanup to avoid duplication.
Self Check

Where in this folder structure would you add a new page object for a page that contains a prompt alert?

Key Result
Use Page Object Model with explicit waits and centralized WebDriver setup to handle prompt alert text entry reliably.

Practice

(1/5)
1. What is the main purpose of a prompt alert in Selenium testing?
easy
A. To allow the user to enter text in a popup window
B. To display a message without user input
C. To confirm an action with OK or Cancel buttons only
D. To automatically close the browser window

Solution

  1. Step 1: Understand what a prompt alert is

    A prompt alert is a popup that asks the user to enter some text.
  2. Step 2: Compare with other alert types

    Unlike simple alerts or confirmation alerts, prompt alerts allow text input.
  3. Final Answer:

    To allow the user to enter text in a popup window -> Option A
  4. Quick Check:

    Prompt alert = text input popup [OK]
Hint: Prompt alerts let users type text in popups [OK]
Common Mistakes:
  • Confusing prompt alerts with simple alerts
  • Thinking prompt alerts only show messages
  • Assuming prompt alerts cannot accept input
2. Which Selenium Java method is used to enter text into a prompt alert?
easy
A. alert.sendKeys("text")
B. alert.enterText("text")
C. alert.type("text")
D. alert.setText("text")

Solution

  1. Step 1: Recall Selenium Alert interface methods

    The Alert interface provides sendKeys() to input text into prompt alerts.
  2. Step 2: Verify method names

    Only sendKeys() is the correct method; others do not exist in Selenium Alert API.
  3. Final Answer:

    alert.sendKeys("text") -> Option A
  4. Quick Check:

    Use sendKeys() to input text [OK]
Hint: Use sendKeys() to type text in prompt alerts [OK]
Common Mistakes:
  • Using non-existent methods like enterText()
  • Trying to use setText() which is not in Alert API
  • Confusing sendKeys() with WebElement methods
3. What will happen if you run this Selenium Java code snippet?
Alert alert = driver.switchTo().alert();
alert.sendKeys("hello");
alert.accept();
medium
A. A NoAlertPresentException will be thrown
B. The prompt alert will receive 'hello' and then close by accepting
C. The alert will close without entering text
D. The alert will dismiss without accepting

Solution

  1. Step 1: Analyze alert switching and text entry

    The code switches to the alert, sends text 'hello' to the prompt alert.
  2. Step 2: Understand alert acceptance

    Calling accept() closes the alert by clicking OK, confirming the input.
  3. Final Answer:

    The prompt alert will receive 'hello' and then close by accepting -> Option B
  4. Quick Check:

    sendKeys + accept = input text and confirm [OK]
Hint: sendKeys + accept inputs text and confirms prompt [OK]
Common Mistakes:
  • Assuming alert closes without text input
  • Expecting dismiss() to be called instead of accept()
  • Not switching to alert before sendKeys()
4. Identify the error in this Selenium Java code for entering text in a prompt alert:
Alert alert = driver.switchTo().alert();
alert.sendKeys("test");
alert.dismiss();
medium
A. alert variable should be WebElement
B. Missing driver initialization
C. sendKeys() cannot be used on alerts
D. Using dismiss() instead of accept() after sendKeys()

Solution

  1. Step 1: Check alert method usage

    sendKeys() inputs text, but dismiss() cancels the prompt, ignoring input.
  2. Step 2: Correct method to confirm input

    accept() should be used to confirm and submit the entered text.
  3. Final Answer:

    Using dismiss() instead of accept() after sendKeys() -> Option D
  4. Quick Check:

    Use accept() to confirm prompt input [OK]
Hint: Use accept() after sendKeys(), not dismiss() [OK]
Common Mistakes:
  • Calling dismiss() cancels input silently
  • Confusing alert with WebElement
  • Forgetting to switch to alert before sendKeys()
5. You want to test a prompt alert that asks for a username. Which Selenium Java code snippet correctly enters "user123" and confirms the alert?
hard
A. driver.switchTo().alert().sendKeys("user123"); driver.switchTo().alert().accept();
B. Alert alert = driver.switchTo().alert(); alert.dismiss(); alert.sendKeys("user123");
C. Alert alert = driver.switchTo().alert(); alert.sendKeys("user123"); alert.accept();
D. driver.switchTo().alert().accept(); driver.switchTo().alert().sendKeys("user123");

Solution

  1. Step 1: Understand alert handling best practice

    Store the alert in a variable to reuse it for sendKeys() and accept().
  2. Step 2: Check order of operations

    First sendKeys() to enter text, then accept() to confirm and close alert.
  3. Final Answer:

    Alert alert = driver.switchTo().alert(); alert.sendKeys("user123"); alert.accept(); -> Option C
  4. Quick Check:

    Store alert, sendKeys, then accept [OK]
Hint: Assign alert to variable before sendKeys and accept [OK]
Common Mistakes:
  • Calling accept() before sendKeys()
  • Using dismiss() which cancels input
  • Calling switchTo().alert() twice unnecessarily
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