Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Changes to Selenium/WebDriver module for ongoing compatibility #4609

Open
wants to merge 13 commits into
base: main
Choose a base branch
from

Commits on Oct 29, 2021

  1. WIP Proposed changes to Selenium/WebDriver module for ongoing compati…

    …bility
    
    Co-authored with @kiview, this PR started out with some minor (hacky) workarounds but evolved into a rethink of what features are sensible for us to keep on trying to make work given:
    * existence of Selenium 4.0.0, with some breaking API changes
    * some mutable tags being used for Selenium Docker images, and the (IMHO correct) recommendations by the Selenium team that more exactly pinnable tags should be used in our use case.
    
    Very WIP - all of this could change.
    
    Primary changes:
    - Selenium 4.0.0 compatibility fixes
        - Remove in-code workaround for Chrome GPU issue, which created coupling to a Selenium 3.x API
        - Remove support for Selenium 2.x, as supporting 3 major versions of the library becomes infeasible
        - Use non-debug docker images automatically for Selenium 4.x, as `-debug` images are not required (and apparently not available for Firefox)
    
    - Remove `provided` scope dependencies, since we already require some Selenium JARs to be on the classpath. Gradle `implementation` scope is used despite Selenium classes being in our API - this is a slight and deliberate abuse, but seems better than us potentially forcing an upgrade of Selenium by updating our dependency version.
        - TODO: update docs
        - TODO: further testing of the assumption that this will not have real impacts to users.
    
    - Steps to phase out implicit docker image detection and to remove API methods that are coupled to Selenium classes
        - Deprecate constructors that do not supply a user-pinnable Docker image
        - Deprecate constructors/methods that involve Capabilities and RemoteWebDriver
        - Suggest alternative approaches for obtaining a WebDriver instance, predicated on future removal of APIs that are coupled to Selenium classes
        - Have *not* deprecated the `determineClasspathSeleniumVersion` convenience method that can be used to identify Selenium version on the classpath, as this may be something that users want to use
        - TODO: plenty of docs, examples and migration notes
        - TODO: specific documentation around best-practices for selecting a pinnable Selenium image
        - TODO: phase out implicit use of Chrome
    rnorth committed Oct 29, 2021
    Configuration menu
    Copy the full SHA
    a212109 View commit details
    Browse the repository at this point in the history

Commits on Dec 20, 2021

  1. Configuration menu
    Copy the full SHA
    780b97c View commit details
    Browse the repository at this point in the history
  2. Fix deprecated API usage in Cucumber examples.

    Co-authored-by: Anna Chernyshova <anna@atomicjar.com>
    kiview and GannaChernyshova committed Dec 20, 2021
    Configuration menu
    Copy the full SHA
    e1dd7cb View commit details
    Browse the repository at this point in the history
  3. Start updating the Selenium docs

    Co-authored-by: Anna Chernyshova <anna@atomicjar.com>
    kiview and GannaChernyshova committed Dec 20, 2021
    Configuration menu
    Copy the full SHA
    e6d50d8 View commit details
    Browse the repository at this point in the history
  4. Remove deprecated API usage from docs

    Co-authored-by: Anna Chernyshova <anna@atomicjar.com>
    kiview and GannaChernyshova committed Dec 20, 2021
    Configuration menu
    Copy the full SHA
    cbd9426 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    3588e21 View commit details
    Browse the repository at this point in the history
  6. Update selenium dep in junit4 examples

    Co-authored-by: Anna Chernyshova <anna@atomicjar.com>
    kiview and GannaChernyshova committed Dec 20, 2021
    Configuration menu
    Copy the full SHA
    636e814 View commit details
    Browse the repository at this point in the history
  7. Update selenium dep in cucumber examples

    Co-authored-by: Anna Chernyshova <anna@atomicjar.com>
    kiview and GannaChernyshova committed Dec 20, 2021
    Configuration menu
    Copy the full SHA
    5238738 View commit details
    Browse the repository at this point in the history
  8. Add deprecation annotation to withCapabilities

    Co-authored-by: Anna Chernyshova <anna@atomicjar.com>
    kiview and GannaChernyshova committed Dec 20, 2021
    Configuration menu
    Copy the full SHA
    aeb092f View commit details
    Browse the repository at this point in the history
  9. Further cleanup

    kiview committed Dec 20, 2021
    Configuration menu
    Copy the full SHA
    c9049ae View commit details
    Browse the repository at this point in the history

Commits on Jan 4, 2022

  1. Configuration menu
    Copy the full SHA
    ef46d9a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3175141 View commit details
    Browse the repository at this point in the history

Commits on Jan 5, 2022

  1. Configuration menu
    Copy the full SHA
    706259d View commit details
    Browse the repository at this point in the history