As of Chrome 115, Tools > Update WebDrivers > Chrome no longer works

I have got Chrome browser autoupdated to the latest v115.x.x.x

When I tried in Katalon Studio “Tools > Update WebDrivers > Chrome”, I got the following output

[ERROR] Error HTTP 404 executing https://chromedriver.storage.googleapis.com/LATEST_RELEASE_115
[WARN] Exception reading https://chromedriver.storage.googleapis.com/LATEST_RELEASE_115 to get latest version of chromedriver (Error HTTP 404 executing https://chromedriver.storage.googleapis.com/LATEST_RELEASE_115)

These messages tell that Katalon Studio expects the URL https://chromedriver.storage.googleapis.com/LATEST_RELEASE_115 to be accessible. But in fact, the URL is not there at the moment.

Our question is: Will the URL https://chromedriver.storage.googleapis.com/LATEST_RELEASE_115 become available later? or not?

I have studied some. Quoting from ChromeDriver - WebDriver for Chrome - Downloads

This means that the URL https://chromedriver.storage.googleapis.com/LATEST_RELEASE_115 is not available now and will never be in future.

Effectively, Katalon Studio’s “Tools > Update WebDribver > Chrome” is no longer functional as of Chrome 115.

We need an urgent fix for this defect. Please announce the Estimated Release Date as soon as possible. Otherwise, this forum wil receive more and more posts that exclaim “my tests do not work with Chrome 115!”.

@vu.tran @Elly_Tran

5 Likes

Since, Katalon Studio’s “Tools > Update WebDribver > Chrome” is no longer functional as of Chrome 115, Katalon users can not rely on it any more. Users must update the ChromeDriver for Chrome browser v115 somehow for themselves.

2 Likes

I found Boni Garcia’s WebDriverManager v5.4.x has supported in this June the new way of finding the ChromeDriver v115.x

So I will use Boni Garcia’s library to update the ChromeDriver for Chrome v115 for my projects.


[later edit]

I tried to use the WebDriverManager 5.4.1 in a custom Keyword class in Katalon Studio 8.3.0, but failed. I got the following error:

java.lang.UnsupportedClassVersionError: io/github/bonigarcia/wdm/WebDriverManager has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

This message tells that the webdrivermanager-5.4.1.jar was compiled by Java11. But Katalon Studio runs on Java8. Therefore I can not uses that library in a custom Keyword class in Katalon Studio.

OK. There are many alternative approaches. Just get out of KS; create a plain Gradle project on top of Java11 or higher; with it I will update the ChromeDriver for KS to the version 115.x.x.x

1 Like

Thanks for the post @kazurayam, Do you know which chromedriver version Katalon Windows uses Win32 or Win64? Chrome for Testing availability

1 Like

I only have Mac, no Windows. I can not be sure.

3 Likes

Hi,

Thank you @kazurayam for raising the problem and sharing work-around for it. Our team has acknowledged the issue and working on it. Refer to this document Katalon Help Center to know some actions. Thank you!

1 Like

I believe that it uses win32.

1 Like

I tried to find the alternative. Let me show you.

I work on macOS 12.6.

Chrome browser v115.0.5790.114 is installed in the directory /Applications/Google Chrome.app/Contents/MacOS/Google Chrome.

I have Katalon Studio 8.6.5 (without enterprise features) which is installed in the directory /Applications/Katalon Studio.app/

The ChromeDriver bunded in KS is found at the path of /Applications/Katalon Studio.app/Contents/Eclipse/configuration/resources/drivers/chromedriver_mac/chromedriver

My machine has Java 11 installed.

I made a dir where I wrote a bash script ‘updateChromeDriver.sh’ as follows:

# updateChromeDriver.sh

outdir="/Applications/Katalon Studio.app/Contents/Eclipse/configuration/resources/drivers/chromedriver_mac"
filename="chromedriver"

java -jar ./webdrivermanager-5.4.1-fat.jar resolveDriverFor chrome

#cp "$outdir/$filename" "$outdir/$filename-back"

echo "$outdir/$filename"
mv $filename "$outdir/$filename"

"$outdir/$filename" --version

I downloaded the webdrivermanager-5.4.1-fat.jar file for here. I saved the jar file into the working directory.

I ran the shell script:

$ cd $tmp
$ chmod +x updateChromeDriver.sh
$ ./updateChromeDriver.sh
[INFO] Using WebDriverManager to resolve chrome
[DEBUG] Detecting chrome version using online commands.properties
[DEBUG] Running command on the shell: [/Applications/Google Chrome.app/Contents/MacOS/Google Chrome, --version]
[DEBUG] Result: Google Chrome 115.0.5790.114
[INFO] Using chromedriver 115.0.5790.102 (resolved driver for Chrome 115)
[INFO] Reading https://chromedriver.storage.googleapis.com/ to seek chromedriver
[DEBUG] Driver to be downloaded chromedriver 115.0.5790.102
[DEBUG] Using URL built from repository pattern: https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/115.0.5790.102/mac-x64/chromedriver-mac-x64.zip
[INFO] Downloading https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/115.0.5790.102/mac-x64/chromedriver-mac-x64.zip
[INFO] Extracting driver from compressed file chromedriver-mac-x64.zip
[INFO] Driver location: /Users/kazuakiurayama/katalon-workspace/UpdateChromeDriverUsingWebDriverManager/chromedriver
/Applications/Katalon Studio.app/Contents/Eclipse/configuration/resources/drivers/chromedriver_mac/chromedriver
ChromeDriver 115.0.5790.102 (90efd4b0ad6aa15eeafcdabd5817ae939f7ba059-refs/branch-heads/5790_90@{#9})

Thus I got the ChromeDriver 115.0.5790.102 installed at the path /Applications/Katalon Studio.app/Contents/Eclipse/configuration/resources/drivers/chromedriver_mac/chromedriver

OK. Now I will verify if my Katalon test is runnable with the Chrome browser v115.0.5790.114 with the ChromeDriver 115.0.5790.102.

My a Katalon Studio project, I made a Test Case

import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject

import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI

import internal.GlobalVariable

System.setProperty("webdriver.chrome.logfile", "./chromedriver.log");
System.setProperty("webdriver.chrome.verboseLogging", "true");

WebUI.comment('Story: Login to CURA system')

WebUI.comment('Given that the user has the valid login information')

WebUI.openBrowser(GlobalVariable.G_SiteURL)

WebUI.click(findTestObject('Page_CuraHomepage/btn_MakeAppointment'))

WebUI.setText(findTestObject('Page_Login/txt_UserName'), Username)

WebUI.setText(findTestObject('Page_Login/txt_Password'), Password)

WebUI.comment('When he logins to CURA system')

WebUI.click(findTestObject('Page_Login/btn_Login'))

WebUI.comment('Then he should be able to login successfully')

landingPage = WebUI.verifyElementPresent(findTestObject('Page_CuraAppointment/div_Appointment'), GlobalVariable.G_Timeout)

WebUI.closeBrowser()

I ran this Test case while selecting “Chrome” browser to run with. I got an error:

=============== ROOT CAUSE =====================
Caused by: org.openqa.selenium.WebDriverException: unknown error: cannot find Chrome binary

For trouble shooting, please visit: https://docs.katalon.com/katalon-studio/docs/troubleshooting.html
================================================

07-31-2023 10:43:55 午前 Test Cases/Main Test Cases/TC1_Verify Successful Login

Elapsed time: 3.183s

Test Cases/Main Test Cases/TC1_Verify Successful Login FAILED.
Reason:
com.kms.katalon.core.exception.StepFailedException: Unable to open browser with url: 'http://demoaut.katalon.com'
	at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.stepFailed(WebUIKeywordMain.groovy:64)
	at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.runKeyword(WebUIKeywordMain.groovy:26)
	at com.kms.katalon.core.webui.keyword.builtin.OpenBrowserKeyword.openBrowser(OpenBrowserKeyword.groovy:81)
	at com.kms.katalon.core.webui.keyword.builtin.OpenBrowserKeyword.execute(OpenBrowserKeyword.groovy:67)
	at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:74)
	at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords.openBrowser(WebUiBuiltInKeywords.groovy:64)
	at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords$openBrowser.call(Unknown Source)
	at TC1_Verify Successful Login.run(TC1_Verify Successful Login:14)
	at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194)
	at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119)
	at com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:448)
	at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:439)
	at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:418)
	at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:410)
	at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:285)
	at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:144)
	at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:135)
	at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(Unknown Source)
	at TempTestCase1690767825096.run(TempTestCase1690767825096.groovy:25)
Caused by: org.openqa.selenium.WebDriverException: unknown error: cannot find Chrome binary
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53'
System info: host: 'KAZUAKInoMacBook-Air-2.local', ip: 'fd68:efb6:3498:0:186c:9d58:971e:10e8%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '12.6', java.version: '1.8.0_362'
Driver info: driver.version: CChromeDriver
remote stacktrace: 0   chromedriver                        0x0000000105ef5a58 chromedriver + 4991576
1   chromedriver                        0x0000000105eecfa3 chromedriver + 4956067
2   chromedriver                        0x0000000105a9f607 chromedriver + 443911
3   chromedriver                        0x0000000105acd4b7 chromedriver + 631991
4   chromedriver                        0x0000000105acc64c chromedriver + 628300
5   chromedriver                        0x0000000105b1524c chromedriver + 926284
6   chromedriver                        0x0000000105b145af chromedriver + 923055
7   chromedriver                        0x0000000105b0b633 chromedriver + 886323
8   chromedriver                        0x0000000105ad76f9 chromedriver + 673529
9   chromedriver                        0x0000000105ad88de chromedriver + 678110
10  chromedriver                        0x0000000105eb18a9 chromedriver + 4712617
11  chromedriver                        0x0000000105eb68b4 chromedriver + 4733108
12  chromedriver                        0x0000000105ebd799 chromedriver + 4761497
13  chromedriver                        0x0000000105eb760a chromedriver + 4736522
14  chromedriver                        0x0000000105e8a87c chromedriver + 4552828
15  chromedriver                        0x0000000105ed5c08 chromedriver + 4860936
16  chromedriver                        0x0000000105ed5d87 chromedriver + 4861319
17  chromedriver                        0x0000000105ee5edf chromedriver + 4927199
18  libsystem_pthread.dylib             0x00007ff81128c4e1 _pthread_start + 125
19  libsystem_pthread.dylib             0x00007ff811287f6b thread_start + 15

	at org.openqa.selenium.remote.W3CHandshakeResponse.lambda$errorHandler$0(W3CHandshakeResponse.java:62)
	at org.openqa.selenium.remote.HandshakeResponse.lambda$getResponseFunction$0(HandshakeResponse.java:30)
	at org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$0(ProtocolHandshake.java:126)
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:128)
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:74)
	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:136)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
	at com.kms.katalon.selenium.driver.CChromeDriver.execute(CChromeDriver.java:19)
	at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213)
	at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:181)
	at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:147)
	at com.kms.katalon.selenium.driver.CChromeDriver.<init>(CChromeDriver.java:13)
	at com.kms.katalon.core.webui.driver.DriverFactory.createNewChromeDriver(DriverFactory.java:441)
	at com.kms.katalon.core.webui.driver.DriverFactory.startNewBrowser(DriverFactory.java:374)
	at com.kms.katalon.core.webui.driver.DriverFactory.openWebDriver(DriverFactory.java:263)
	at com.kms.katalon.core.webui.keyword.builtin.OpenBrowserKeyword$_openBrowser_closure1.doCall(OpenBrowserKeyword.groovy:74)
	at com.kms.katalon.core.webui.keyword.builtin.OpenBrowserKeyword$_openBrowser_closure1.call(OpenBrowserKeyword.groovy)
	at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.runKeyword(WebUIKeywordMain.groovy:20)
	... 17 more

The ChromeDriver v115.0.5790.114 said “can not find Chrome binary”. What’s wrong?

2 Likes

I thought that the ChromeDriver v115.x wants to find the binary of “Chrome for Testing” as default.

I installed the Chrome for Testing into my Mac as documented

$ cd ~
$ npx @puppeteer/browsers install chrome@stable

by this operation I got a new directory ~/chrome/mac-115.0.5790.102/chrome-mac-x64/Google Chrome for Testing.app/Contents/MacOS/Google Chrome for Testing created by the npx command. This is the binary of Chrome for Testing.

I moved the Google Chrome for Testing.app directory to the /Applications directory of my macOS.

Please note that I got a new “Google Chrome for Testing.app” beside the “Google Chome.app”.

I executed my Test Case again. It ran sucessfully in a window of “Chrome for Testing”, not in the window of usual “Chrome” browser.

The test case emitted a file chromedriver.log in the project directory, which included a line:

[1690769014.572][INFO]: Launching chrome: /Applications/Google Chrome for Testing.app/Contents/MacOS/Google Chrome for Testing --allow-pre-commit-input --disable-background-networking --disable-client-side-phishing-detection --disable-default-apps --disable-hang-monitor --disable-popup-blocking --disable-prompt-on-repost --disable-sync --enable-automation --enable-logging --load-extension=/Applications/Katalon Studio.app/Contents/Eclipse/configuration/resources/extensions/Chrome/Smart Wait --log-level=0 --no-first-run --no-service-autorun --password-store=basic --remote-debugging-port=0 --test-type=webdriver --use-mock-keychain --user-data-dir=/var/folders/7m/lm7d6nx51kj0kbtnsskz6r3m0000gn/T/.org.chromium.Chromium.589ONH data:,

This line proves that the ChromeDriver v115.x launches “Chrome for Testing” as default; and it ran successful on my machine.

I learned that the ChromeDriver v115.x does NOT launch the ordinal Chrome browser for daily browsling as default any longer.

If you want to use ChromeDriver v115 + ordinal Chrome browser, you can do it by explicitly specifying the path of the binary of Chrome browser.

3 Likes

Now I got a question about Katalon Studio.

As of v115, there are 2 flavours of Chrome browser.

  1. ordinary Chrome for daily browsing, which is usally auto-upgraded when new versions are released
  2. Chrome for Testing, which is NOT auto-upgraded

When I installed ChromeDriver v115 in the /Applications/Katalon Studio.app/Contents/Eclipse/configuration/resources/drivers/chromedriver_mac/chromedriver and I installed the Chrome for Testing binary, I could successully run my test case using “Chrome” in Katalon Studio. But, this is just confusing.

I think that Katalon Studio should support “Chrome for Testing” as a new member of browsers as follows.

2 Likes

It would be an alternative idea that Katalon Studio intentionally put the “Chrome for Testing” out of its scope of GUI support; support the auto-updated “Chrome” only. In that case the “Tools > Update WebDriver > Chome” should work OK with new distribution URL since v115. And “WebUI.openBrowser()” for Chrome should be able to silently start the ordinaly Chrome browser v115.

Some advanced users may require “Chrome for Testing” with Katalon Studio. So the documentation should explain the detail setup how to use the “Chrome for Testing” in Katalon Studio.

1 Like

Hi,

I found this guide suitable to supoprt: CST-How to use Chrome for Testing in Katalon Studio-200723-163725.pdf - Google Drive

2 Likes

@Elly_Tran

Many people will have their Chrome browser auto-updated to version115 or newer. They may want to continue using Chrome v115 (not Chrome for Testing) during their test in Katalon Studio. They will expect some solution how to mange it in Katlaon’s official documentation.

Katalon’s official document about using different browser versions is here:

I find this page is very poorly written. You should try what this page tells you to do. Surprisingly enough, the sample code never works.

I guess that nobody has ever read and tried this page. It was OK up until Chrome v114 because the “Tools > Update WebDrivers > Chrome” operation resolved updating ChromeDriver sot that it catches up with auto-updated Chrome browser.

Now that the operation no longer works as of Chrome v115, Katalon’s official documentation must be improved.

1 Like

Hi,

Thank you for letting me know. I will notify our tech writing team and update it asap. Appreciate your feedback!

Please notice: for Katalon Studio version 8.6.5 and earlier, to use Chrome version 115, users need to manually replace the Chrome WebDriver. Ref: https://docs.katalon.com/docs/create-tests/manage-projects/set-up-projects/web-testin[…]webdrivers/upgrade-or-downgrade-webdrivers-in-katalon-studio

Thank you

1 Like

Hello, I am getting error message during chrome update from Katalon Studio’s “Tools > Update WebDribver > Chrome” as
ChromeUpdateIssue

1 Like

hi i have the same problem

1 Like

Try using this guide to update the drivers manually.

This link may also be helpful.

Upgrade or Downgrade WebDrivers in Katalon Studio | Katalon Docs

2 Likes

I have stepped into same problem, but what will be the solution? My Chromedriver has been upgraded to 116 version, but Katalon Studio won’t work with him anyway.

What should I do?

@kazurayam

1 Like

It is difficult for me to tell you remotely what you should do step by step.

I have written all I know. Please study the information provided or linked from here and try to help yourself.

2 Likes

Thankfully I got a solution. Looks like Google changed their perspective on Google Chrome browser and since v115 version they provide Chrome for testing drivers only for Automated Testing experience.

I am using win_64 system and my initial Chrome browser was updated automatically to v116 when I got stucked with this issue. Using your data, I manage to collect chromedriver116(chrome_for_testing) and implemented it into Katalon. Steps I have done.

  1. Open page Chrome for Testing availability and look for Stable_116 chromedriver
  2. Download it and using file chromedriver.exe, replace the initial one. Driver is located …\Katalon Studio\configuration\resources\drivers\chromedriver_win32
  3. Launch Katalon Studio and use Chrome browser (default) to run your test.
  4. All will work as usual, but with Chrome for Testing browser.

Thanks to @kazurayam for temporary decision.

P.S. I am sorry if brute force is not the way how to do it, but I have not find a way to properly install new driver (And somehow Katalon made to me win_32 driver at first)

2 Likes