Releases: sbabcoc/Selenium-Foundation
Add synchronization to container resolver unit test
When I was writing the documentation for the new ContainerResolver feature, I realized that my unit test had a race condition in it. This release adds synchronization to resolve this issue (no pun intended).
I also fixed a couple of esoteric issues with search context unwrapping and added a new convenience method: RobustElementFactory.getOptional()
Add ContainerResolver feature; transition to OSSRH Staging
In this release, I added a feature that enables page model hierarchies to define multiple versions of a component container (page or component) that get selected at runtime based on the current state of the DOM. This enables you to handle pages and components that vary based on browser window dimensions (responsive layout) or UI/UX variations (A/B testing). This feature can also select between old and new versions of site-wide components (e.g. - common navigation) during the transition between versions when some pages have been updated but others haven't.
I also needed to transition my artifact publishing from the now-retired OSSRH to the new Maven Central Portal, using the Portal OSSRH Staging API to avoid having to perform major surgery on my Gradle project.
Add alert modeling; upgrade to Selenium 4.33.0
Is this release, I added modeling of browser alerts. This resolves issue #213, introducing a framework feature that presents a more rational API, where alerts are treated as browser-level entities instead of the pseudo-context. The base class (AlertHandler) is an abstract class, with the methods that accept or dismiss the alert returning landing page objects. As shown in the unit tests, this base class should be implemented as a static class within the parent page model, and access to alert handler functions should be provided through page-class methods. The alert handler itself shouldn't be exposed for direct interaction, because this bypasses the management of page object within the framework.
I also upgraded Selenium 4 to the latest release (version 4.33.0).
Adopt active local grid if found; upgrade to Selenium 4.32.0
In this release, I finally added the ability to adopt an active local Grid instance if it's found at the specified (or implied) address. If the active Grid lacks support for browsers specified by the current configuration, the corresponding nodes are added. Also:
- Upgrade Selenium to the latest release (version 4.32.0)
- Upgrade **HtmlUnit Remote to the latest release (version 4.32.0)
- Remove usage of the Selenium 3
LifecycleServlet
- Backport DefaultNetworkInterfaceProvider and HostIdentifier into the Selenium 3 support branch
- Add a few
null
argument checks and a bit more debug logging
Upgrade to Selenium 4.32.0; enable Chrome on Android
In this release:
- Upgraded Selenium to the latest release (version 4.32.0). This required adding a dependency context for
netty-codec-compression
. - Enabled automation of Chrome browser on Android.
- Updated TestNG Foundation to fix an automatic retry implementation issue.
- Updated Settings API to resolve an issue with loading stored configurations from the HOME folder.
- Updated JUnit Foundation because it depends on Settings API.
- Updated HtmlUnit Remote to fix a resource leak with its Netty server.
- Added methods to provide
getDomAttribute
andgetDomProperty
behavior on Selenium 3. - Inherit from TestNgTargetBase and JUnitTargetBase to eliminate unnecessary target platform specifications.
I also spent a lot of time adding JavaDoc to classes, methods, fields, enumerations, and constants that lacked them.
Upgrade to Selenium 4.30.0
In this release, I upgraded to the latest Selenium version (4.30.0). I also upgraded the rest of the direct dependencies.
Upgrade Selenium to 4.27.0
In this release, I upgraded Selenium to the latest release (version 4.27.0).
Revise servlet container; upgrade to Selenium 4.26.0
In this release, I revised the servlet container feature to completely replace the servlet feature of Selenium 3 Grid. This general-purpose facility provides command line options to specify the server port and servlet classes for the container. The path specification for each servlet is now provided by the @WebServlet
annotation.
I also upgraded to the latest Selenium release (version 4.26.0).
Upgrade to Selenium 4.25.0
In this release, I upgraded Selenium to the latest release (version 4.25.0). This also includes the latest release of HtmlUnit-Remote.
For Selenium 4, switch from the deprecated CommandLine class to ProcessBuilder
The CommandLine class of the Selenium API has been deprecated, so I spent the effort to transition the Selenium 4 Grid and version-agnostic classes to the standard ProcessBuilder class. (My original intent was to replace CommandLine everywhere, but the output behavior of the Selenium 3 Grid servers is such that I couldn't get redirection to work.)