Skip to content

Releases: sbabcoc/Selenium-Foundation

Add synchronization to container resolver unit test

15 Jul 21:39
Compare
Choose a tag to compare

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

12 Jul 05:18
Compare
Choose a tag to compare

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

08 Jun 02:05
Compare
Choose a tag to compare

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

20 May 01:50
Compare
Choose a tag to compare

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

07 May 02:47
Compare
Choose a tag to compare

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 and getDomProperty 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

02 Apr 16:51
Compare
Choose a tag to compare

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

06 Dec 05:33
Compare
Choose a tag to compare

In this release, I upgraded Selenium to the latest release (version 4.27.0).

Revise servlet container; upgrade to Selenium 4.26.0

24 Nov 21:47
Compare
Choose a tag to compare

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

05 Nov 00:20
Compare
Choose a tag to compare

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

04 Oct 06:06
Compare
Choose a tag to compare

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.)