Selenium Foundation is an automation framework designed to extend and enhance the capabilities provided by Selenium (WebDriver).
This release is primarily focused on resolving the issues that were causing the JUnit 4 support to fail. The issue appears to have been largely a matter of running with an outdated version of Byte Buddy in JUnit Foundation.
I also update README to indicate the addition of Selenium 4 support and the switch to the Gradle Wrapper for building, testing, and publishing releases.
In this release, I finally finished up the initial support for the Selenium 4 API. This required a bit of refactoring to account for differences in the Selenium API between version 3 and version 4.
getNodeCapabilities()
function.NOTE: As of this release, Selenium 4 support for HtmlUnitDriver is limited to self-provided sessions. The ability to provide HtmlUnit sessions from the Grid was not retained in the Selenium 4 Grid implementation. Consequently, unit tests are currently running in Firefox. ALSO: The installation of JUnit 4 method hooks by JUnit Foundation stopped working at some point. I suspect this may be related to updates in the toolchain I'm using (Gradle/Java). I haven't been able to pin this down yet, but I think the next thing to try is running the tests in a simple Maven harness.
In this release, I decided to add unit tests for optional element behavior, especially as this relates to nodes that appear and vanish after the creation of the corresponding RobustWebElement. In the process, I discovered a few bugs and logic issues in this area.
final
qualifiers to the "locator" fields in all of the Using enumerations.In this release, I fix what I broke...
In the last release of Selenium Foundation, I upgraded the version of the PhantomJSDriver dependency to version 1.5.0, failing to notice that this new release targets Selenium 4. Reverting to version 1.4.4 gets PhantomJS support working again.
In this release, I updated several more dependencies:
In this release, I upgraded to the latest releases of the following:
In this release, I upgraded to the latest release of HtmlUnitDriver (v2.70.0). The dependencies of this new release changed slightly, which necessitated a few minor tweaks to HtmlUnitPlugin.
This is the first official release of Selenium Foundation after I removed the parallel Maven project files. These are no longer useful, as I finally added the last missing capabilities to the Gradle project files for Selenium Foundation. I've updated the documentation to reflect the removal of Maven support.
In this release, I revised the key sequence that's generated when erasing the existing content of an input field in sessions that don't support JavaScript. After erasing the field, updateValue
now tabs out of the field to commit the change.
In this release, I took another stab at the implementation of the updateValue
method to make it ubiquitously applicable to the vast majority of scenarios. I recently became aware that the original implementation was incompatible with common front-end libraries like Vue, causing input that was supposed to replace existing content to be appended instead.
The new implementation uses JavaScript to replace the existing content if the browser supports it. Otherwise, updateValue
employs basic key sequences to overwrite the field content with the new value.
To facilitate testing of this new behavior, I added an htmlunit.nojs
personality that provides HtmlUnit sessions with JavaScript support turned off.
In this release, I added the ability to target each of the supported browser/application targets from the Maven command line. This allows execution of all Selenium Foundation unit tests without needing to mess with dependencies or settings.
Also in this release:
support
to run the non-browser unit testsmvn_build
shell script, adding the ability to run the unit tests without the clean/install phases