# Studio 8.2.1.alpha is now available with Selenium 4!

**URL:** <https://forum.katalon.com/t/studio-8-2-1-alpha-is-now-available-with-selenium-4/61011>\
**Category:** Miscellaneous\
**Tags:** start-page\
**Created:** [December 20, 2021, 11:19am UTC](https://forum.katalon.com/t/studio-8-2-1-alpha-is-now-available-with-selenium-4/61011 "2021-12-20T11:19:28Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![kazurayam](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/kazurayam/32/333_2.png) [@kazurayam](https://forum.katalon.com/u/kazurayam)\
**Post date:** [January 3, 2022, 9:04am UTC](https://forum.katalon.com/t/studio-8-2-1-alpha-is-now-available-with-selenium-4/61011/3 "2022-01-03T09:04:15Z")

</div>

Selenium 4 supported Chrome DevTools Protocol. Chrome DevTools Protocol is also called CDP for short. See [this article](https://rahulshettyacademy.com/blog/index.php/2021/11/04/selenium-4-key-feature-network-interception/).

I wanted to use CDP Network commands. For example, I wanted to fetch HTTP Request’s Headers (including Cookies) sent from Chrome to Web server. So I tried to write a Test Case that calls CDP through Selenium.

In Katalon Studio v8.2.1-alpha, I wrote the following Test Case. This script is supposed to retrieve console logs in the DevTools. I copied this from [this article](https://www.qed42.com/insights/coe/quality-assurance/selenium-4-api-chrome-devtools)

```auto
import java.time.Duration;

import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.devtools.DevTools;
import org.openqa.selenium.devtools.v96.log.Log;

import com.kms.katalon.core.webui.driver.DriverFactory

// https://www.qed42.com/insights/coe/quality-assurance/selenium-4-api-chrome-devtools

System.setProperty("webdriver.chrome.driver", DriverFactory.getChromeDriverPath())
ChromeDriver driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

// try to view DevTools Console Logs
DevTools devTools = driver.getDevTools();
devTools.createSession()
devTools.send(Log.enable())

devTools.addListener(Log.entryAdded(), { logEntry ->
	println("-------------------------------------------")
	println("Request ID = " + logEntry.getNetworkRequestId())
	println("URL = " + logEntry.getUrl())
	println("Source = " + logEntry.getSource())
	println("Level = " + logEntry.getLevel())
	println("Text = " + logEntry.getText())
	println("Timestamp = " + logEntry.getTimestamp())
	println("-------------------------------------------");
})

driver.get("https://www.qed42.com/404");

driver.quit()

```

It worked. It ran and printed the following output

```auto
2022-01-03 17:48:29.385 INFO c.k.katalon.core.main.TestCaseExecutor - --------------------
2022-01-03 17:48:29.389 INFO c.k.katalon.core.main.TestCaseExecutor - START Test Cases/test/Selenium4CDP/CDPViewConsoleLogs
2022-01-03 17:48:30.087 DEBUG testcase.CDPViewConsoleLogs - 1: System.setProperty("webdriver.chrome.driver", getChromeDriverPath())
2022-01-03 17:48:30.140 DEBUG testcase.CDPViewConsoleLogs - 2: driver = new org.openqa.selenium.chrome.ChromeDriver()
Starting ChromeDriver 96.0.4664.45 (76e4c1bb2ab4671b8beba3444e61c0f17584b2fc-refs/branch-heads/4664@{#947}) on port 55856
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
1 03, 2022 5:48:33 午後 org.openqa.selenium.remote.ProtocolHandshake createSession
情報: Detected dialect: W3C
1 03, 2022 5:48:33 午後 org.openqa.selenium.devtools.CdpVersionFinder findNearestMatch
情報: Found exact CDP implementation for version 96
2022-01-03 17:48:33.970 DEBUG testcase.CDPViewConsoleLogs - 3: timeouts().implicitlyWait(Duration.ofSeconds(10))
2022-01-03 17:48:34.068 DEBUG testcase.CDPViewConsoleLogs - 4: devTools = driver.getDevTools()
2022-01-03 17:48:34.073 DEBUG testcase.CDPViewConsoleLogs - 5: devTools.createSession()
2022-01-03 17:48:34.185 DEBUG testcase.CDPViewConsoleLogs - 6: devTools.send(Log.enable())
2022-01-03 17:48:34.221 DEBUG testcase.CDPViewConsoleLogs - 7: devTools.addListener(Log.entryAdded(), { java.lang.Object logEntry -> ... })
2022-01-03 17:48:34.229 DEBUG testcase.CDPViewConsoleLogs - 8: driver.get("https://www.qed42.com/404")
-------------------------------------------
-------------------------------------------
Request ID = Optional[7D829D787FD04230D68FFB87F39497DF]
Request ID = Optional.empty
URL = Optional[https://www.qed42.com/404]
URL = Optional.empty
Source = network
Source = security
Level = error
Level = warning
Text = Failed to load resource: the server responded with a status of 404 ()
Text = Error with Permissions-Policy header: Unrecognized feature: 'interest-cohort'.
Timestamp = 1.641199714972959E12
-------------------------------------------
Timestamp = 1.641199714979007E12
-------------------------------------------
2022-01-03 17:48:37.296 DEBUG testcase.CDPViewConsoleLogs - 9: driver.quit()

```

But I found a problem. My Test Case needed the following import statement.

```auto
import org.openqa.selenium.devtools.v96.log.Log;

```

But **Katalon Studio v8.2.1 does not bundle the required jar file to resolve this import statement.**

So I had to find out which jar file is required, find out from [which repository](https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-devtools-v96) on the Internet I can get the jar. Once found, I download it and save it into the `Drivers` folder of my Katalon project manually.

In fact, in order to find it, I created a Gradle project using IntelliJ IDEA where I copy & pasted sample code of some tutorial, and let Gradle to resolve the required dependencies. I found that the jar of Selenium 4 depends on a lot of external jar files. Gradle told me the following dependency tree

```auto
+--- org.seleniumhq.selenium:selenium-java:4.1.1
| +--- org.seleniumhq.selenium:selenium-api:4.1.1
| +--- org.seleniumhq.selenium:selenium-chrome-driver:4.1.1
| | +--- com.google.auto.service:auto-service-annotations:1.0.1
| | +--- com.google.auto.service:auto-service:1.0.1
| | | +--- com.google.auto.service:auto-service-annotations:1.0.1
| | | +--- com.google.auto:auto-common:1.2
| | | | \--- com.google.guava:guava:31.0.1-jre
| | | | +--- com.google.guava:failureaccess:1.0.1
| | | | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
| | | | +--- com.google.code.findbugs:jsr305:3.0.2
| | | | +--- org.checkerframework:checker-qual:3.12.0
| | | | +--- com.google.errorprone:error_prone_annotations:2.7.1
| | | | \--- com.google.j2objc:j2objc-annotations:1.3
| | | \--- com.google.guava:guava:31.0.1-jre (*)
| | +--- com.google.guava:guava:31.0.1-jre (*)
| | +--- org.seleniumhq.selenium:selenium-api:4.1.1
| | +--- org.seleniumhq.selenium:selenium-chromium-driver:4.1.1
| | | +--- com.google.auto.service:auto-service-annotations:1.0.1
| | | +--- com.google.auto.service:auto-service:1.0.1 (*)
| | | +--- com.google.guava:guava:31.0.1-jre (*)
| | | +--- org.seleniumhq.selenium:selenium-json:4.1.1
| | | | \--- org.seleniumhq.selenium:selenium-api:4.1.1
| | | \--- org.seleniumhq.selenium:selenium-remote-driver:4.1.1
| | | +--- com.beust:jcommander:1.81
| | | +--- com.google.auto.service:auto-service-annotations:1.0.1
| | | +--- com.google.auto.service:auto-service:1.0.1 (*)
| | | +--- com.google.guava:guava:31.0.1-jre (*)
| | | +--- io.netty:netty-buffer:4.1.70.Final
| | | | \--- io.netty:netty-common:4.1.70.Final
| | | +--- io.netty:netty-codec-http:4.1.70.Final
| | | | +--- io.netty:netty-common:4.1.70.Final
| | | | +--- io.netty:netty-buffer:4.1.70.Final (*)
| | | | +--- io.netty:netty-transport:4.1.70.Final
| | | | | +--- io.netty:netty-common:4.1.70.Final
| | | | | +--- io.netty:netty-buffer:4.1.70.Final (*)
| | | | | \--- io.netty:netty-resolver:4.1.70.Final
| | | | | \--- io.netty:netty-common:4.1.70.Final
| | | | +--- io.netty:netty-codec:4.1.70.Final
| | | | | +--- io.netty:netty-common:4.1.70.Final
| | | | | +--- io.netty:netty-buffer:4.1.70.Final (*)
| | | | | \--- io.netty:netty-transport:4.1.70.Final (*)
| | | | \--- io.netty:netty-handler:4.1.70.Final
| | | | +--- io.netty:netty-common:4.1.70.Final
| | | | +--- io.netty:netty-resolver:4.1.70.Final (*)
| | | | +--- io.netty:netty-buffer:4.1.70.Final (*)
| | | | +--- io.netty:netty-transport:4.1.70.Final (*)
| | | | \--- io.netty:netty-codec:4.1.70.Final (*)
| | | +--- io.netty:netty-common:4.1.70.Final
| | | +--- io.netty:netty-transport-classes-epoll:4.1.70.Final
| | | | +--- io.netty:netty-common:4.1.70.Final
| | | | +--- io.netty:netty-buffer:4.1.70.Final (*)
| | | | +--- io.netty:netty-transport:4.1.70.Final (*)
| | | | \--- io.netty:netty-transport-native-unix-common:4.1.70.Final
| | | | +--- io.netty:netty-common:4.1.70.Final
| | | | +--- io.netty:netty-buffer:4.1.70.Final (*)
| | | | \--- io.netty:netty-transport:4.1.70.Final (*)
| | | +--- io.netty:netty-transport-classes-kqueue:4.1.70.Final
| | | | +--- io.netty:netty-common:4.1.70.Final
| | | | +--- io.netty:netty-buffer:4.1.70.Final (*)
| | | | +--- io.netty:netty-transport:4.1.70.Final (*)
| | | | \--- io.netty:netty-transport-native-unix-common:4.1.70.Final (*)
| | | +--- io.netty:netty-transport-native-unix-common:4.1.70.Final (*)
| | | +--- io.netty:netty-transport:4.1.70.Final (*)
| | | +--- io.opentelemetry:opentelemetry-api:1.9.1
| | | | \--- io.opentelemetry:opentelemetry-context:1.9.1
| | | +--- io.opentelemetry:opentelemetry-context:1.9.1
| | | +--- io.opentelemetry:opentelemetry-exporter-logging:1.9.1
| | | | +--- io.opentelemetry:opentelemetry-sdk:1.9.1
| | | | | +--- io.opentelemetry:opentelemetry-api:1.9.1 (*)
| | | | | +--- io.opentelemetry:opentelemetry-sdk-common:1.9.1
| | | | | | +--- io.opentelemetry:opentelemetry-semconv:1.9.1-alpha
| | | | | | | \--- io.opentelemetry:opentelemetry-api:1.9.1 (*)
| | | | | | \--- io.opentelemetry:opentelemetry-api:1.9.1 (*)
| | | | | \--- io.opentelemetry:opentelemetry-sdk-trace:1.9.1
| | | | | +--- io.opentelemetry:opentelemetry-api-metrics:1.9.1-alpha
| | | | | | +--- io.opentelemetry:opentelemetry-api:1.9.1 (*)
| | | | | | \--- io.opentelemetry:opentelemetry-context:1.9.1
| | | | | +--- io.opentelemetry:opentelemetry-semconv:1.9.1-alpha (*)
| | | | | +--- io.opentelemetry:opentelemetry-api:1.9.1 (*)
| | | | | \--- io.opentelemetry:opentelemetry-sdk-common:1.9.1 (*)
| | | | +--- io.opentelemetry:opentelemetry-sdk-metrics:1.9.1-alpha
| | | | | +--- io.opentelemetry:opentelemetry-api-metrics:1.9.1-alpha (*)
| | | | | \--- io.opentelemetry:opentelemetry-sdk-common:1.9.1 (*)
| | | | \--- io.opentelemetry:opentelemetry-sdk-logs:1.9.1-alpha
| | | | +--- io.opentelemetry:opentelemetry-api-metrics:1.9.1-alpha (*)
| | | | +--- com.fasterxml.jackson.core:jackson-databind:2.13.0
| | | | | +--- com.fasterxml.jackson.core:jackson-annotations:2.13.0
| | | | | | \--- com.fasterxml.jackson:jackson-bom:2.13.0
| | | | | | +--- com.fasterxml.jackson.core:jackson-annotations:2.13.0 (c)
| | | | | | +--- com.fasterxml.jackson.core:jackson-core:2.13.0 (c)
| | | | | | \--- com.fasterxml.jackson.core:jackson-databind:2.13.0 (c)
| | | | | +--- com.fasterxml.jackson.core:jackson-core:2.13.0
| | | | | | \--- com.fasterxml.jackson:jackson-bom:2.13.0 (*)
| | | | | \--- com.fasterxml.jackson:jackson-bom:2.13.0 (*)
| | | | \--- io.opentelemetry:opentelemetry-sdk:1.9.1 (*)
| | | +--- io.opentelemetry:opentelemetry-sdk-common:1.9.1 (*)
| | | +--- io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.9.1
| | | | \--- io.opentelemetry:opentelemetry-sdk:1.9.1 (*)
| | | +--- io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:1.9.1-alpha
| | | | +--- io.opentelemetry:opentelemetry-semconv:1.9.1-alpha (*)
| | | | +--- io.opentelemetry:opentelemetry-sdk:1.9.1 (*)
| | | | +--- io.opentelemetry:opentelemetry-sdk-metrics:1.9.1-alpha (*)
| | | | \--- io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.9.1 (*)
| | | +--- io.opentelemetry:opentelemetry-sdk-trace:1.9.1 (*)
| | | +--- io.opentelemetry:opentelemetry-sdk:1.9.1 (*)
| | | +--- io.opentelemetry:opentelemetry-semconv:1.9.1-alpha (*)
| | | +--- io.ous:jtoml:2.0.0
| | | +--- net.bytebuddy:byte-buddy:1.12.2
| | | +--- org.apache.commons:commons-exec:1.3
| | | +--- org.asynchttpclient:async-http-client:2.12.3
| | | | +--- org.asynchttpclient:async-http-client-netty-utils:2.12.3
| | | | | +--- io.netty:netty-buffer:4.1.60.Final -> 4.1.70.Final (*)
| | | | | +--- org.slf4j:slf4j-api:1.7.30 -> 1.7.32
| | | | | \--- com.sun.activation:jakarta.activation:1.2.2
| | | | +--- io.netty:netty-codec-http:4.1.60.Final -> 4.1.70.Final (*)
| | | | +--- io.netty:netty-handler:4.1.60.Final -> 4.1.70.Final (*)
| | | | +--- io.netty:netty-codec-socks:4.1.60.Final
| | | | | +--- io.netty:netty-common:4.1.60.Final -> 4.1.70.Final
| | | | | +--- io.netty:netty-buffer:4.1.60.Final -> 4.1.70.Final (*)
| | | | | +--- io.netty:netty-transport:4.1.60.Final -> 4.1.70.Final (*)
| | | | | \--- io.netty:netty-codec:4.1.60.Final -> 4.1.70.Final (*)
| | | | +--- io.netty:netty-handler-proxy:4.1.60.Final
| | | | | +--- io.netty:netty-common:4.1.60.Final -> 4.1.70.Final
| | | | | +--- io.netty:netty-buffer:4.1.60.Final -> 4.1.70.Final (*)
| | | | | +--- io.netty:netty-transport:4.1.60.Final -> 4.1.70.Final (*)
| | | | | +--- io.netty:netty-codec:4.1.60.Final -> 4.1.70.Final (*)
| | | | | +--- io.netty:netty-codec-socks:4.1.60.Final (*)
| | | | | \--- io.netty:netty-codec-http:4.1.60.Final -> 4.1.70.Final (*)
| | | | +--- io.netty:netty-transport-native-epoll:4.1.60.Final
| | | | | +--- io.netty:netty-common:4.1.60.Final -> 4.1.70.Final
| | | | | +--- io.netty:netty-buffer:4.1.60.Final -> 4.1.70.Final (*)
| | | | | +--- io.netty:netty-transport:4.1.60.Final -> 4.1.70.Final (*)
| | | | | \--- io.netty:netty-transport-native-unix-common:4.1.60.Final -> 4.1.70.Final (*)
| | | | +--- io.netty:netty-transport-native-kqueue:4.1.60.Final
| | | | | +--- io.netty:netty-common:4.1.60.Final -> 4.1.70.Final
| | | | | +--- io.netty:netty-buffer:4.1.60.Final -> 4.1.70.Final (*)
| | | | | +--- io.netty:netty-transport:4.1.60.Final -> 4.1.70.Final (*)
| | | | | \--- io.netty:netty-transport-native-unix-common:4.1.60.Final -> 4.1.70.Final (*)
| | | | +--- org.reactivestreams:reactive-streams:1.0.3
| | | | +--- com.typesafe.netty:netty-reactive-streams:2.0.4
| | | | | +--- io.netty:netty-handler:4.1.43.Final -> 4.1.70.Final (*)
| | | | | \--- org.reactivestreams:reactive-streams:1.0.3
| | | | +--- org.slf4j:slf4j-api:1.7.30 -> 1.7.32
| | | | \--- com.sun.activation:jakarta.activation:1.2.2
| | | +--- org.seleniumhq.selenium:selenium-api:4.1.1
| | | +--- org.seleniumhq.selenium:selenium-http:4.1.1
| | | | +--- com.google.guava:guava:31.0.1-jre (*)
| | | | +--- net.jodah:failsafe:2.4.4
| | | | +--- org.seleniumhq.selenium:selenium-api:4.1.1
| | | | \--- org.seleniumhq.selenium:selenium-json:4.1.1 (*)
| | | \--- org.seleniumhq.selenium:selenium-json:4.1.1 (*)
| | +--- org.seleniumhq.selenium:selenium-json:4.1.1 (*)
| | \--- org.seleniumhq.selenium:selenium-remote-driver:4.1.1 (*)
| +--- org.seleniumhq.selenium:selenium-devtools-v85:4.1.1
| | +--- com.google.auto.service:auto-service-annotations:1.0.1
| | +--- com.google.auto.service:auto-service:1.0.1 (*)
| | +--- com.google.guava:guava:31.0.1-jre (*)
| | +--- org.seleniumhq.selenium:selenium-api:4.1.1
| | +--- org.seleniumhq.selenium:selenium-json:4.1.1 (*)
| | \--- org.seleniumhq.selenium:selenium-remote-driver:4.1.1 (*)
| +--- org.seleniumhq.selenium:selenium-devtools-v94:4.1.1
| | +--- com.google.auto.service:auto-service-annotations:1.0.1
| | +--- com.google.auto.service:auto-service:1.0.1 (*)
| | +--- com.google.guava:guava:31.0.1-jre (*)
| | +--- org.seleniumhq.selenium:selenium-api:4.1.1
| | +--- org.seleniumhq.selenium:selenium-json:4.1.1 (*)
| | \--- org.seleniumhq.selenium:selenium-remote-driver:4.1.1 (*)
| +--- org.seleniumhq.selenium:selenium-devtools-v95:4.1.1
| | +--- com.google.auto.service:auto-service-annotations:1.0.1
| | +--- com.google.auto.service:auto-service:1.0.1 (*)
| | +--- com.google.guava:guava:31.0.1-jre (*)
| | +--- org.seleniumhq.selenium:selenium-api:4.1.1
| | +--- org.seleniumhq.selenium:selenium-json:4.1.1 (*)
| | \--- org.seleniumhq.selenium:selenium-remote-driver:4.1.1 (*)
| +--- org.seleniumhq.selenium:selenium-devtools-v96:4.1.1
| | +--- com.google.auto.service:auto-service-annotations:1.0.1
| | +--- com.google.auto.service:auto-service:1.0.1 (*)
| | +--- com.google.guava:guava:31.0.1-jre (*)
| | +--- org.seleniumhq.selenium:selenium-api:4.1.1
| | +--- org.seleniumhq.selenium:selenium-json:4.1.1 (*)
| | \--- org.seleniumhq.selenium:selenium-remote-driver:4.1.1 (*)
| +--- org.seleniumhq.selenium:selenium-edge-driver:4.1.1
| | +--- com.google.auto.service:auto-service-annotations:1.0.1
| | +--- com.google.auto.service:auto-service:1.0.1 (*)
| | +--- com.google.guava:guava:31.0.1-jre (*)
| | +--- org.seleniumhq.selenium:selenium-api:4.1.1
| | +--- org.seleniumhq.selenium:selenium-chromium-driver:4.1.1 (*)
| | \--- org.seleniumhq.selenium:selenium-remote-driver:4.1.1 (*)
| +--- org.seleniumhq.selenium:selenium-firefox-driver:4.1.1
| | +--- com.google.auto.service:auto-service-annotations:1.0.1
| | +--- com.google.auto.service:auto-service:1.0.1 (*)
| | +--- com.google.guava:guava:31.0.1-jre (*)
| | +--- org.seleniumhq.selenium:selenium-devtools-v85:4.1.1 (*)
| | +--- org.seleniumhq.selenium:selenium-json:4.1.1 (*)
| | \--- org.seleniumhq.selenium:selenium-remote-driver:4.1.1 (*)
| +--- org.seleniumhq.selenium:selenium-firefox-xpi-driver:4.1.1
| | +--- com.google.auto.service:auto-service-annotations:1.0.1
| | +--- com.google.auto.service:auto-service:1.0.1 (*)
| | +--- com.google.guava:guava:31.0.1-jre (*)
| | +--- org.seleniumhq.selenium:selenium-api:4.1.1
| | +--- org.seleniumhq.selenium:selenium-firefox-driver:4.1.1 (*)
| | \--- org.seleniumhq.selenium:selenium-remote-driver:4.1.1 (*)
| +--- org.seleniumhq.selenium:selenium-ie-driver:4.1.1
| | +--- com.google.auto.service:auto-service-annotations:1.0.1
| | +--- com.google.auto.service:auto-service:1.0.1 (*)
| | +--- org.seleniumhq.selenium:selenium-api:4.1.1
| | \--- org.seleniumhq.selenium:selenium-remote-driver:4.1.1 (*)
| +--- org.seleniumhq.selenium:selenium-opera-driver:4.1.1
| | +--- com.google.auto.service:auto-service-annotations:1.0.1
| | +--- com.google.auto.service:auto-service:1.0.1 (*)
| | +--- org.seleniumhq.selenium:selenium-api:4.1.1
| | \--- org.seleniumhq.selenium:selenium-remote-driver:4.1.1 (*)
| +--- org.seleniumhq.selenium:selenium-remote-driver:4.1.1 (*)
| +--- org.seleniumhq.selenium:selenium-safari-driver:4.1.1
| | +--- com.google.auto.service:auto-service-annotations:1.0.1
| | +--- com.google.auto.service:auto-service:1.0.1 (*)
| | +--- com.google.guava:guava:31.0.1-jre (*)
| | +--- org.seleniumhq.selenium:selenium-api:4.1.1
| | \--- org.seleniumhq.selenium:selenium-remote-driver:4.1.1 (*)
| \--- org.seleniumhq.selenium:selenium-support:4.1.1
| +--- com.google.auto.service:auto-service-annotations:1.0.1
| +--- com.google.auto.service:auto-service:1.0.1 (*)
| +--- com.google.guava:guava:31.0.1-jre (*)
| +--- org.seleniumhq.selenium:selenium-api:4.1.1
| +--- org.seleniumhq.selenium:selenium-json:4.1.1 (*)
| \--- org.seleniumhq.selenium:selenium-remote-driver:4.1.1 (*)

```

This means that a user who want to utilise the goodness of Selenium 4 (for example, CDP support) have to resolve external dependencies them selves as I did, because Katalon Studio does not help us resolving external dependencies as Maven/Gradle does.

Especially you should note the name of jar file:

```auto
org.seleniumhq.selenium:selenium-devtools-v96:4.1.1

```

Here you find `v96`. This represents the version of Chrome browser. When Chrome browser is upgraded to a new version sometime near future, a new jar `org.seleniumhq.selenium:selenium-devtools-v97` will be published in the Maven Central repository. Then users who want to utilise CDP feature through Seleium 4 in Katalon Studio \>8.2.1 have to resolve the dependency themselves manually.

This reminds me that Katalon Studio provides `Tools > Upgrade WebDriver > Chrome` menu in the tools bar. I suppose we need `Tools > Upgrade Selenium 4 DevTools jar` as well.

~~By the way, I found that it is harmless to switch the jar file of Selenium bundled in Katalon Studio from v3 to v4. Selenium v4 is well backward compatible. My old projects safely ran in KS v8.2.1-alpha.~~ Note that `DesiredCapability` class is deprecated in Selenium 4; no longer to be used by Katalon users.

---

_[View the full topic](https://forum.katalon.com/t/studio-8-2-1-alpha-is-now-available-with-selenium-4/61011)._
