Stephane Grenier
Stephane Grenier

Reputation: 15925

Vaadin Testbench 23 seems to require Selenium 4.1.2 but maven is loading 3.141.59 according to the pom

In my pom.xml I have:

<properties>
    <java.version>18</java.version>
    <vaadin.version>23.0.6</vaadin.version>
</properties>

...

<dependency>
    <groupId>com.vaadin</groupId>
    <artifactId>vaadin-testbench</artifactId>
    <scope>test</scope>
</dependency>

When I run TestBench I get the following error:

WARN com.vaadin.testbench.TestBenchTestCase - This version of TestBench depends on Selenium 
version 4.1.2 but version 3.141.59 was found. Make sure you do not have multiple versions 
of Selenium on the classpath.

I then ran mvn dependency:tree and the only reference to Selenium I can find is:

[INFO] +- com.vaadin:vaadin-testbench:jar:23.0.3:test
[INFO] |  +- com.vaadin:vaadin-testbench-core:jar:8.0.0:test
[INFO] |  |  +- org.seleniumhq.selenium:selenium-remote-driver:jar:3.141.59:test
[INFO] |  |  |  +- org.seleniumhq.selenium:selenium-api:jar:3.141.59:test
[INFO] |  |  |  +- org.apache.commons:commons-exec:jar:1.3:test
[INFO] |  |  |  +- com.google.guava:guava:jar:25.0-jre:test
[INFO] |  |  |  |  +- com.google.code.findbugs:jsr305:jar:1.3.9:compile
[INFO] |  |  |  |  +- org.checkerframework:checker-compat-qual:jar:2.0.0:test
[INFO] |  |  |  |  +- com.google.j2objc:j2objc-annotations:jar:1.1:test
[INFO] |  |  |  |  \- org.codehaus.mojo:animal-sniffer-annotations:jar:1.14:test
[INFO] |  |  |  +- com.squareup.okhttp3:okhttp:jar:3.14.9:test
[INFO] |  |  |  \- com.squareup.okio:okio:jar:1.14.0:test
[INFO] |  |  +- org.seleniumhq.selenium:selenium-java:jar:3.141.59:test
[INFO] |  |  |  +- org.seleniumhq.selenium:selenium-chrome-driver:jar:3.141.59:test
[INFO] |  |  |  +- org.seleniumhq.selenium:selenium-edge-driver:jar:3.141.59:test
[INFO] |  |  |  +- org.seleniumhq.selenium:selenium-firefox-driver:jar:3.141.59:test
[INFO] |  |  |  +- org.seleniumhq.selenium:selenium-ie-driver:jar:3.141.59:test
[INFO] |  |  |  +- org.seleniumhq.selenium:selenium-opera-driver:jar:3.141.59:test
[INFO] |  |  |  +- org.seleniumhq.selenium:selenium-safari-driver:jar:3.141.59:test
[INFO] |  |  |  \- org.seleniumhq.selenium:selenium-support:jar:3.141.59:test

Which to me seems to indicate that TestBench is asking for Selenium 3.141.59 in the pom but the code is looking for version 4.1.2 How do I resolve this?

Upvotes: 0

Views: 316

Answers (1)

Simon Martinelli
Simon Martinelli

Reputation: 36213

The Selenium version is overwritten by the Spring Boot dependency management.

You can try to set the property:

<selenium.version>4.1.2</selenium.version>

In my project this didn't work I had to set the property PLUS add all Selenium dependencies to my pom.xml

  <dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-api</artifactId>
    <version>${selenium.version}</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-chrome-driver</artifactId>
    <version>${selenium.version}</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-edge-driver</artifactId>
    <version>${selenium.version}</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-firefox-driver</artifactId>
    <version>${selenium.version}</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-ie-driver</artifactId>
    <version>${selenium.version}</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>${selenium.version}</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-opera-driver</artifactId>
    <version>${selenium.version}</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-remote-driver</artifactId>
    <version>${selenium.version}</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-safari-driver</artifactId>
    <version>${selenium.version}</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-support</artifactId>
    <version>${selenium.version}</version>
    <scope>test</scope>
  </dependency>

Upvotes: 2

Related Questions