0

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?

Stephane Grenier
  • 15,527
  • 38
  • 117
  • 192

1 Answers1

2

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>
Stephane Grenier
  • 15,527
  • 38
  • 117
  • 192
Simon Martinelli
  • 34,053
  • 5
  • 48
  • 82
  • Thank you, that helped a lot. That being said I did one quick edit as the last dependency seemed to be historical and no longer valid. – Stephane Grenier Apr 27 '22 at 15:28
  • Thanks for the update. I've just copy/pasted the dependencies from the Spring Boot Dependency pom.xml but didn't check if they are still valid – Simon Martinelli Apr 27 '22 at 16:27