diff --git a/browserless-test/bom/pom.xml b/browserless-test/bom/pom.xml
new file mode 100644
index 000000000..d2e34c154
--- /dev/null
+++ b/browserless-test/bom/pom.xml
@@ -0,0 +1,59 @@
+
+
+ 4.0.0
+
+ com.vaadin
+ vaadin-parent
+ 3.0.0
+
+
+ browserless-test-bom
+ pom
+ 1.0-SNAPSHOT
+ Vaadin Browserless Test (Bill of Materials)
+ Vaadin Browserless Test (Bill of Materials)
+ http://vaadin.com
+ 2022
+
+
+
+ Apache License, Version 2.0
+ https://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+
+
+ com.diffplug.spotless
+ spotless-maven-plugin
+ 3.2.1
+
+ true
+
+
+
+
+
+
+
+
+ com.vaadin
+ browserless-test-shared
+ ${project.version}
+
+
+ com.vaadin
+ browserless-test-junit6
+ ${project.version}
+
+
+ com.vaadin
+ browserless-test-quarkus
+ ${project.version}
+
+
+
+
diff --git a/browserless-test/eclipse/VaadinJavaConventions.xml b/browserless-test/eclipse/VaadinJavaConventions.xml
new file mode 100644
index 000000000..a06c9151c
--- /dev/null
+++ b/browserless-test/eclipse/VaadinJavaConventions.xml
@@ -0,0 +1,283 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browserless-test/eclipse/flow.importorder b/browserless-test/eclipse/flow.importorder
new file mode 100644
index 000000000..0f03d17f5
--- /dev/null
+++ b/browserless-test/eclipse/flow.importorder
@@ -0,0 +1,10 @@
+#Organize Import Order
+#Fri Nov 10 13:24:02 EET 2017
+7=\#
+6=elemental
+5=com.vaadin
+4=com.google.gwt
+3=
+2=java
+1=javax
+0=jakarta
diff --git a/browserless-test/junit6/pom.xml b/browserless-test/junit6/pom.xml
new file mode 100644
index 000000000..460d4417b
--- /dev/null
+++ b/browserless-test/junit6/pom.xml
@@ -0,0 +1,318 @@
+
+
+ 4.0.0
+
+ com.vaadin
+ browserless-test
+ 1.0-SNAPSHOT
+
+ browserless-test-junit6
+ jar
+ Vaadin Browserless Test JUnit6
+ Vaadin Browserless UI Test - JUnit 6
+
+
+
+ dokka-javadocs
+
+
+ testbench.javadocs
+
+
+
+ true
+
+
+
+
+ org.jetbrains.dokka
+ dokka-maven-plugin
+
+
+ package
+
+ javadoc
+
+
+
+
+
+
+
+
+ release
+
+
+
+ org.jetbrains.dokka
+ dokka-maven-plugin
+
+
+ package
+
+ javadocJar
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+ true
+
+ true
+
+ true
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+ src/main/resources
+ true
+
+
+
+
+
+
+ org.jetbrains.kotlin
+ kotlin-maven-plugin
+
+
+ compile
+
+ compile
+
+
+
+ ${project.basedir}/src/main/kotlin
+ ${project.basedir}/src/main/java
+
+
+
+
+ test-compile
+
+ test-compile
+
+
+
+ ${project.basedir}/src/test/kotlin
+ ${project.basedir}/src/test/java
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+
+ default-compile
+ none
+
+
+
+ default-testCompile
+ none
+
+
+ java-compile
+ compile
+
+ compile
+
+
+
+ java-test-compile
+ test-compile
+
+ testCompile
+
+
+
+
+
+ org.jetbrains.dokka
+ dokka-maven-plugin
+
+ ${maven.compiler.source}
+
+ ${project.basedir}/src/main/java
+ ${project.basedir}/src/main/kotlin
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+
+
+ add-kotlin-sources-for-source-jar
+ package
+
+ add-source
+
+
+
+ src/main/kotlin
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+
+
+ attach-sources
+
+ jar
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ org.apache.maven.plugins
+ maven-failsafe-plugin
+
+
+
+ integration-test
+ verify
+
+
+
+
+
+
+
+
+
+
+ com.vaadin
+ vaadin
+ ${vaadin.version}
+ provided
+
+
+ com.vaadin
+ vaadin-spring
+ ${flow.version}
+ provided
+ true
+
+
+
+ com.github.mvysny.dynatest
+ dynatest
+ 0.25
+ test
+
+
+ com.github.mvysny.karibudsl
+ karibu-dsl
+ 1.0.8
+ test
+
+
+ jakarta.annotation
+ jakarta.annotation-api
+ 3.0.0
+ test
+
+
+ com.vaadin
+ browserless-test-shared
+ ${project.version}
+
+
+ org.junit.jupiter
+ junit-jupiter
+
+
+ org.junit.platform
+ junit-platform-engine
+
+
+
+ org.jetbrains.kotlin
+ kotlin-stdlib-jdk8
+ ${kotlin.version}
+
+
+ org.jetbrains.kotlin
+ kotlin-reflect
+ ${kotlin.version}
+
+
+
+
+ org.springframework
+ spring-test
+ provided
+ true
+
+
+ org.springframework.security
+ spring-security-core
+ provided
+ true
+
+
+ org.springframework.security
+ spring-security-test
+ provided
+ true
+
+
+ org.slf4j
+ slf4j-simple
+ test
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-dependencies
+ ${spring.boot.version}
+ pom
+ import
+
+
+
+
+
diff --git a/browserless-test/pom.xml b/browserless-test/pom.xml
new file mode 100644
index 000000000..24801ceb3
--- /dev/null
+++ b/browserless-test/pom.xml
@@ -0,0 +1,168 @@
+
+
+ 4.0.0
+
+ com.vaadin
+ vaadin-parent
+ 3.0.0
+
+
+ browserless-test
+ pom
+ 1.0-SNAPSHOT
+ Vaadin Browserless Test
+ http://vaadin.com
+ 2022
+
+
+
+ Apache License, Version 2.0
+ https://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+ shared
+ junit6
+ quarkus
+ bom
+
+
+
+ 21
+ 4.0.0
+ 25.1-SNAPSHOT
+ 25.1-SNAPSHOT
+ 2.0.17
+ 3.5.5
+ 3.5.5
+ 3.2.1
+ 2.2.20
+ 2.1.0
+ 3.14.0
+ 3.3.1
+ 3.4.2
+ 3.11.2
+ 3.6.1
+ ${skipTests}
+
+
+
+
+ central
+ https://repo.maven.apache.org/maven2
+
+ false
+
+
+
+ vaadin-prereleases
+ https://maven.vaadin.com/vaadin-prereleases
+
+ true
+
+
+ true
+
+
+
+
+
+ central
+ https://repo.maven.apache.org/maven2
+
+ false
+
+
+
+ vaadin-prereleases
+ https://maven.vaadin.com/vaadin-prereleases
+
+ true
+
+
+ true
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ ${surefire.version}
+
+ ${skipUnitTests}
+
+
+
+ org.apache.maven.plugins
+ maven-failsafe-plugin
+ ${failsafe.version}
+
+
+ org.jetbrains.kotlin
+ kotlin-maven-plugin
+ ${kotlin.version}
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ ${maven.compiler.plugin.version}
+
+
+ org.jetbrains.dokka
+ dokka-maven-plugin
+ ${dokka.version}
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+ ${build.helper.plugin.version}
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+ ${maven.source.plugin.version}
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ ${maven.jar.plugin.version}
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ ${maven.javadoc.plugin.version}
+
+
+
+
+
+ com.diffplug.spotless
+ spotless-maven-plugin
+ ${spotless.plugin.version}
+
+
+
+ ${maven.multiModuleProjectDirectory}/eclipse/VaadinJavaConventions.xml
+
+
+
+
+ ${maven.multiModuleProjectDirectory}/eclipse/flow.importorder
+
+
+
+ ${maven.multiModuleProjectDirectory}/src/license/apache2/header.txt
+
+
+
+
+
+
+
diff --git a/browserless-test/quarkus/pom.xml b/browserless-test/quarkus/pom.xml
new file mode 100644
index 000000000..2af338e17
--- /dev/null
+++ b/browserless-test/quarkus/pom.xml
@@ -0,0 +1,145 @@
+
+
+ 4.0.0
+
+ com.vaadin
+ browserless-test
+ 1.0-SNAPSHOT
+
+ browserless-test-quarkus
+ jar
+ Vaadin Browserless Test for Quarkus
+ Vaadin Browserless UI Test - Quarkus
+
+
+
+ 3.24.0
+
+
+
+
+ release
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+
+
+ attach-javadocs
+
+ jar
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+ true
+
+ true
+
+ true
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+
+
+ attach-sources
+
+ jar
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ org.jboss.logmanager.LogManager
+ ${maven.home}
+
+
+
+
+
+
+
+
+
+
+ io.quarkus
+ quarkus-bom
+ ${quarkus.version}
+ pom
+ import
+
+
+
+
+
+ com.vaadin
+ vaadin
+ ${vaadin.version}
+ provided
+
+
+ com.vaadin
+ vaadin-quarkus-extension
+ ${vaadin.version}
+ provided
+
+
+ com.vaadin
+ browserless-test-junit6
+ ${project.version}
+
+
+ io.quarkus
+ quarkus-junit5
+ test
+
+
+ io.quarkus
+ quarkus-test-security
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter
+
+
+ org.junit.platform
+ junit-platform-engine
+
+
+
+
+
diff --git a/browserless-test/shared/pom.xml b/browserless-test/shared/pom.xml
new file mode 100644
index 000000000..0bb468434
--- /dev/null
+++ b/browserless-test/shared/pom.xml
@@ -0,0 +1,320 @@
+
+
+ 4.0.0
+
+ com.vaadin
+ browserless-test
+ 1.0-SNAPSHOT
+
+ browserless-test-shared
+ jar
+ Vaadin Browserless Test Shared
+ Vaadin Browserless UI Test - Shared
+
+
+
+ dokka-javadocs
+
+
+ testbench.javadocs
+
+
+
+ true
+
+
+
+
+ org.jetbrains.dokka
+ dokka-maven-plugin
+
+
+ package
+
+ javadoc
+
+
+
+
+
+
+
+
+ release
+
+
+
+ org.jetbrains.dokka
+ dokka-maven-plugin
+
+
+ package
+
+ javadocJar
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+ true
+
+ true
+
+ true
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+ org.jetbrains.kotlin
+ kotlin-maven-plugin
+
+
+ compile
+
+ compile
+
+
+
+ ${project.basedir}/src/main/kotlin
+ ${project.basedir}/src/main/java
+
+
+
+
+ test-compile
+
+ test-compile
+
+
+
+ ${project.basedir}/src/test/kotlin
+ ${project.basedir}/src/test/java
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+
+ default-compile
+ none
+
+
+
+ default-testCompile
+ none
+
+
+ java-compile
+ compile
+
+ compile
+
+
+
+ java-test-compile
+ test-compile
+
+ testCompile
+
+
+
+
+
+ org.jetbrains.dokka
+ dokka-maven-plugin
+
+ ${maven.compiler.source}
+
+ ${project.basedir}/src/main/java
+ ${project.basedir}/src/main/kotlin
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+
+
+ add-kotlin-sources-for-source-jar
+ package
+
+ add-source
+
+
+
+ src/main/kotlin
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+
+
+ attach-sources
+
+ jar
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ org.apache.maven.plugins
+ maven-failsafe-plugin
+
+
+
+ integration-test
+ verify
+
+
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-dependencies
+ ${spring.boot.version}
+ pom
+ import
+
+
+
+
+
+ org.slf4j
+ slf4j-api
+ ${slf4j.version}
+
+
+
+ org.mockito
+ mockito-core
+ 5.20.0
+ test
+
+
+ org.jetbrains.kotlin
+ kotlin-stdlib-jdk8
+ ${kotlin.version}
+
+
+ org.jetbrains.kotlin
+ kotlin-reflect
+ ${kotlin.version}
+
+
+ io.github.classgraph
+ classgraph
+ 4.8.184
+
+
+
+ com.vaadin
+ vaadin
+ ${vaadin.version}
+ provided
+
+
+ com.vaadin
+ vaadin-spring
+ ${flow.version}
+ provided
+ true
+
+
+
+ com.vaadin
+ flow-polymer-template
+ ${flow.version}
+ provided
+ true
+
+
+
+ com.github.mvysny.dynatest
+ dynatest
+ 0.25
+ test
+
+
+ com.github.mvysny.karibudsl
+ karibu-dsl
+ 1.0.8
+ test
+
+
+
+ jakarta.servlet
+ jakarta.servlet-api
+ 6.1.0
+
+
+
+
+ org.springframework
+ spring-test
+ provided
+ true
+
+
+ org.springframework.security
+ spring-security-core
+ provided
+ true
+
+
+ org.springframework.security
+ spring-security-test
+ provided
+ true
+
+
+ tools.jackson.core
+ jackson-databind
+ 3.0.4
+
+
+
+
+
diff --git a/browserless-test/src/license/apache2/header.txt b/browserless-test/src/license/apache2/header.txt
new file mode 100644
index 000000000..2771e4257
--- /dev/null
+++ b/browserless-test/src/license/apache2/header.txt
@@ -0,0 +1,15 @@
+/**
+ * Copyright (C) 2000-$YEAR Vaadin Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
diff --git a/pom.xml b/pom.xml
index 20a2dc9db..3f1733658 100644
--- a/pom.xml
+++ b/pom.xml
@@ -55,6 +55,7 @@
vaadin-testbench-core
vaadin-testbench-core-junit5
vaadin-testbench-core-junit6
+ browserless-test
vaadin-testbench-unit-shared
vaadin-testbench-unit
vaadin-testbench-unit-junit5
diff --git a/src/license/apache2/header.txt b/src/license/apache2/header.txt
new file mode 100644
index 000000000..2771e4257
--- /dev/null
+++ b/src/license/apache2/header.txt
@@ -0,0 +1,15 @@
+/**
+ * Copyright (C) 2000-$YEAR Vaadin Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */