Integration tests no longer compile under Eclipse 2020-06

Description

I think we've been aware for a while that Selenium's use of an endorsed-but-not-quite version of Xerces and Xalan would bite us eventually.

Under Eclipse 2020-06 (4.16.0) the java-idp-integration-tests project no longer compiles. The immediate cause is:

The claimed issue is:

This is saying that there are two sources of the org.w3c.dom package on the compile-time classpath, one in the JDK and one from the xml-apis artifact.

The dependency chain this is brought in through is:

  • htmlunit-driver

  • htmlunit

  • neko-htmlunit

  • xercesImpl

  • xml-apis

There's no reason that I can think of that the xml-apis package needs to be on the compile-time classpath, and no reason I can think of that it needs to be there at runtime either, even if Selenium genuinely has a dependency on xercesImpl. So it may be possible to use dependency management to exclude xml-apis or even xercesImpl to make the Eclipse compiler happy.

Longer term, Selenium really needs to stop doing this, but I assume we have no influence there. In any case, I checked the latest version (we are using 2.35.1, they are now at 2.41.0) and things seem to be the same still.

Environment

None

Activity

Show:

Tom Zeller May 6, 2021 at 2:29 PM

Tests passed last night.

Next up maybe Sauce Labs.

Tom Zeller May 3, 2021 at 10:05 PM

Decided to install geckodriver to /opt/webdriver/geckodriver on Windows and Linux Jenkins nodes.

Tom Zeller April 9, 2021 at 3:04 PM

Plan is to replace HtmlUnit with headless Firefox.

Need to install geckodriver and Firefox on Jenkins Linux and Windows nodes.

Not much point in testing any other browsers on our Jenkins nodes, use Sauce Labs for "real" browsers. Need to re-visit Sauce Labs setup re AWS.

Working through variety of timing issues in tests, which will probably be different on AWS.

Might need to create a new branch of the integ tests with new Jenkins job.

Tom Zeller March 30, 2021 at 7:10 PM

Looks like WebDriverManager does not validate signatures or compare checksums for the WebDriver binaries it downloads. 

Tom Zeller September 2, 2020 at 5:52 PM
Edited

I think ultimately neko-htmlunit uses Xerces/Xalan at runtime.

The plan is to move to headless Chrome or Firefox and stop using/depending on HtmlUnit.

Main issue is installing the appropriate WebDriver for the browser being tested, probably via https://github.com/bonigarcia/webdrivermanager.

WebDriverManager downloads browser drivers but does not seem to do any validation (pgp or checksum / hash). Obviously not a concern for throw-away test environments. But it will automatically download and run new drivers as they become available.

Fixed
Pinned fields
Click on the next to a field label to start pinning.

Details

Assignee

Reporter

Components

Created June 30, 2020 at 9:33 AM
Updated May 6, 2021 at 2:29 PM
Resolved May 6, 2021 at 2:29 PM