SeleniumHQ / seleniumhq.github.io

Official Selenium website and documentation
https://selenium.dev
Apache License 2.0
1.09k stars 1.28k forks source link

Moved alert/prompts and confirmations examples of Java tab to example sections and updated the … #1900

Open Anilkumar-Shrestha opened 2 weeks ago

Anilkumar-Shrestha commented 2 weeks ago

User description

Description

  1. moved alert/prompts and confirmations examples of java.
  2. updated alerts_{lang}.md files.

Motivation and Context

I wanted to ensure that users can get real example of using the alerts pop up and they can execute it easily by copying the test files.

Types of changes

Checklist


PR Type

Tests, Documentation


Description


Changes walkthrough πŸ“

Relevant files
Tests
AlertsTest.java
Add comprehensive alert handling test cases in Java           

examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java
  • Added multiple test cases for handling alerts and prompts.
  • Introduced setup and teardown methods for WebDriver sessions.
  • Utilized assertions to verify alert text and actions.
  • +175/-0 
    Documentation
    alerts.en.md
    Update Java alert examples with code references                   

    website_and_docs/content/documentation/webdriver/interactions/alerts.en.md
  • Updated Java examples to use code references.
  • Removed inline Java code snippets.
  • +10/-44 
    alerts.ja.md
    Update Java alert examples with code references                   

    website_and_docs/content/documentation/webdriver/interactions/alerts.ja.md
  • Updated Java examples to use code references.
  • Removed inline Java code snippets.
  • +11/-42 
    alerts.pt-br.md
    Update Java alert examples with code references                   

    website_and_docs/content/documentation/webdriver/interactions/alerts.pt-br.md
  • Updated Java examples to use code references.
  • Removed inline Java code snippets.
  • +11/-42 
    alerts.zh-cn.md
    Update Java alert examples with code references                   

    website_and_docs/content/documentation/webdriver/interactions/alerts.zh-cn.md
  • Updated Java examples to use code references.
  • Removed inline Java code snippets.
  • +11/-42 

    πŸ’‘ PR-Agent usage: Comment /help on the PR to get a list of all available PR-Agent tools and their descriptions

    netlify[bot] commented 2 weeks ago

    Deploy request for selenium-dev pending review.

    Visit the deploys page to approve it

    Name Link
    Latest commit a1fede3ae19c73e12216502bc2aef5a936f9ac12
    CLAassistant commented 2 weeks ago

    CLA assistant check
    All committers have signed the CLA.

    codiumai-pr-agent-pro[bot] commented 2 weeks ago

    PR Reviewer Guide πŸ”

    ⏱️ Estimated effort to review: 3 πŸ”΅πŸ”΅πŸ”΅βšͺβšͺ
    πŸ§ͺ PR contains tests
    πŸ”’ No security concerns identified
    ⚑ Key issues to review

    Code Duplication
    There is some code duplication in the test methods, particularly in setting up the driver, navigating to the page, and handling alerts. Consider extracting common setup code to a separate method or using @Before annotations. Incomplete Assertion
    In the `promptDefaultInputTest` method, there's a comment indicating that implementation is needed to check if the default value is accepted. This test is incomplete and should be fully implemented.
    codiumai-pr-agent-pro[bot] commented 2 weeks ago

    PR Code Suggestions ✨

    CategorySuggestion                                                                                                                                    Score
    Enhancement
    Implement the check for default value acceptance in promptDefaultInputTest ___ **In the promptDefaultInputTest, implement the check for the default value being
    accepted as mentioned in the comment.** [examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java [84-85]](https://github.com/SeleniumHQ/seleniumhq.github.io/pull/1900/files#diff-2ec5c2e3450ee03308bd3c130e9b33f0b8696c49c90334028c8e11e8ff6ce356R84-R85) ```diff alert.accept(); -// Implementation needed to check teh default value is accepted. +WebElement result = driver.findElement(By.id("prompt-with-default-result")); +Assertions.assertEquals("Default value", result.getText()); ``` - [ ] **Apply this suggestion**
    Suggestion importance[1-10]: 9 Why: Implementing the check for default value acceptance addresses a missing implementation noted in the comment, improving the completeness and accuracy of the test.
    9
    Add verification for alert closure after accepting it ___ **Consider adding a check to verify if the alert is closed after accepting it, to
    ensure the action was successful.** [examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java [39-41]](https://github.com/SeleniumHQ/seleniumhq.github.io/pull/1900/files#diff-2ec5c2e3450ee03308bd3c130e9b33f0b8696c49c90334028c8e11e8ff6ce356R39-R41) ```diff Alert alert = driver.switchTo().alert(); Assertions.assertEquals("cheese", alert.getText()); alert.accept(); +Assertions.assertThrows(NoAlertPresentException.class, () -> driver.switchTo().alert()); ``` - [ ] **Apply this suggestion**
    Suggestion importance[1-10]: 8 Why: Adding a check to verify if the alert is closed after accepting it enhances the robustness of the test by ensuring that the alert handling was successful.
    8
    Add verification for switching back to default content after handling alerts in iframes ___ **Consider adding a check to verify if the driver has successfully switched back to
    the default content after handling alerts in iframe tests.** [examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java [157]](https://github.com/SeleniumHQ/seleniumhq.github.io/pull/1900/files#diff-2ec5c2e3450ee03308bd3c130e9b33f0b8696c49c90334028c8e11e8ff6ce356R157-R157) ```diff alert.accept(); +driver.switchTo().defaultContent(); +Assertions.assertEquals("Alerts", driver.getTitle()); ``` - [ ] **Apply this suggestion**
    Suggestion importance[1-10]: 8 Why: Verifying that the driver has successfully switched back to the default content after handling alerts in iframes ensures that subsequent tests are not affected by the iframe context, enhancing test reliability.
    8
    Best practice
    Use a constant for timeout duration in WebDriverWait initialization ___ **Consider using a constant for the timeout duration in the WebDriverWait
    initialization to improve maintainability.** [examples/java/src/test/java/dev/selenium/interactions/AlertsTest.java [23]](https://github.com/SeleniumHQ/seleniumhq.github.io/pull/1900/files#diff-2ec5c2e3450ee03308bd3c130e9b33f0b8696c49c90334028c8e11e8ff6ce356R23-R23) ```diff -wait = new WebDriverWait(driver, Duration.ofSeconds(10)); +private static final Duration TIMEOUT = Duration.ofSeconds(10); +wait = new WebDriverWait(driver, TIMEOUT); ``` - [ ] **Apply this suggestion**
    Suggestion importance[1-10]: 7 Why: Using a constant for the timeout duration improves code maintainability and readability by making it easier to update the timeout value in the future.
    7
    Anilkumar-Shrestha commented 1 week ago

    @harsha509 Can you please guide me on the failed check case _Run Java examples / tests (windows, nightly) (pullrequest) . I am getting hard to understand what check it has been failed with the failed log details.