Please remove unnecessary --disable-extensions --disable-extensions-except switches for chrome.exe


#1

## OS
Windows 7

## Katalon Studio Version
5.4.1

## Katalon Studio Logs
attached

## Browser for desktop Web testing
Google Chrome 66.0.3359.139 with Force-Installed Extension

## Step to reproduce

Here is the demo project I made: https://github.com/kazurayam/OpenChromeOnBehalfOfKatalonStudio

(1) When you run TC1_defaultWayOfOpeningBrowser, it runs successful. In this case I used the usual way of opening Chrome browser: I clicked “Run with Chrome” button. A chromedriver log file C:/temp/chromedriver_TC1.log is written, attached here. You can find the command line to start Google Chrome browser. It looks like this:

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --chrome.switches --disable-background-networking --disable-client-side-phishing-detection --disable-default-apps --disable-extensions --disable-extensions-except="C:\Users\qcq0264\AppData\Local\Temp\scoped_dir10936_18528\internal" --disable-hang-monitor --disable-popup-blocking --disable-prompt-on-repost --disable-sync --disable-web-resources --enable-automation --enable-logging --force-fieldtrials=SiteIsolationExtensions/Control --ignore-certificate-errors --log-level=0 --metrics-recording-only --no-first-run --password-store=basic --proxy-server=ftp=172.24.2.10:8080;http=172.24.2.10:8080;https=172.24.2.10:8080 --remote-debugging-port=12085 --test-type=webdriver --use-mock-keychain --user-data-dir="C:\Users\qcq0264\AppData\Local\Temp\scoped_dir10936_19019" data:,

Here you can find --disable-extensions switch and --disable-extensions-exept switch are specified.

(2) When you run TC2_openOrdinaryChrome, it runs successful. In this case I used a tricky way of opening Chrome browser: my test case script instantiates a ChromeDriver and let Katalon Studio use it by calling DriverFactory.changeWebDriver(driver) method. Another chromedriver log file C:/temp/chromedriver_TC2.log is written, attached here. You can find the command line to start Google Chrome browser. It looks like this:

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-background-networking --disable-client-side-phishing-detection --disable-default-apps --disable-hang-monitor --disable-popup-blocking --disable-prompt-on-repost --disable-sync --disable-web-resources --enable-automation --enable-logging --force-fieldtrials=SiteIsolationExtensions/Control --ignore-certificate-errors --load-extension="C:\Users\qcq0264\AppData\Local\Temp\scoped_dir6552_18804\internal" --log-level=0 --metrics-recording-only --no-first-run --password-store=basic --remote-debugging-port=12080 --test-type=webdriver --use-mock-keychain --user-data-dir="C:\Users\qcq0264\AppData\Local\Temp\scoped_dir6552_29149" data:,

This command line looks similar as above, but not identical. How is it different from the above? No --disable-extensions switch is given; no --disable-extensions-except switch is given either.

## Expected behavior

My test case TC2_openOrdinaryChrome will fail somehow (‘Chrome not reachable’ possibly?). I expected so because it lacks --disable-extensions and --disable-extensions-except switches.

## Actual behavior

TC2_openOrdinaryChrome succeeded. Katalon Studio successfully opened Chrome browser, it successfully communicated with Chrome, verification keywords succeeded.

## My requirment

Having these switches On in the command line seems to be unnecessary. I hope --disable-extensions and --disable-extensions-except switches are removed.

## My thought

TC2_openOrdinaryChrome’s proves that –disable-extensions and --disable-extensions-except switches are not necessary for Katalon Studio to communicate with Chrome browser.

As TC1_defaultWayOfOpeningBrowser shows, Katalon Studio 5.4.1 is implemented to start chrome.exe with these switches. This fact is a problem for me:

Google Chrome’s Force-Installed Extension can not be disabled by user or by --disable-extensions* switches in the command line. I am afraid that Katalon Team had never taken this factor into design consideration.

## Why significant for me

I am quite willing to introduce Katalon Studio to my colleague. However, the --disable-extensions switch makes it very difficult for me to evangelize. In my company, Google Chrome is the default browser. They will start using Katalon Studio with Chrome first. Their Chrome has a force-installed extension to meet Company’s security policy. Soon they will find Katalon Studio does not work well! — Decision made; Don’t go for it.

## Memo
Some forks find difficulty to run tests with Chrome with extensions of their choice enabled.

chromedriver_TC2.log

chromedriver_TC1.log

.log


#2

Sorry, I posted this to Katalon Recorder category. But it should be in Katalon Studio category. Please move this.


#3

kazurayam love details in this post. in Katalon v6.2.1 I tried snippet from your TC2 to use DriverFactory.changeWebDriver(driver). I can see in log ‘–disable-extensions’ removed. However, when I run it Chrome is ‘still’ opening without my extensions, like Katalon Recorder. Only extension enabled is “Chrome Automation Extension”. I was hoping it would open Chrome and keep my extensions and my bookmarks in tact too. Or maybe I am missing something and need more than just excluding ‘–disable-extensions’ to do that ?
any help appreciated. I can send more details of the script. Thanks.


#4

@vpalmason

If you want to open Chrome with your bookmarks, you need to open Chrome with a custom “Chrome Profile”. See the following discussion:

  1. You would want to create a “Chrome Profile” (or Chrome User, I am not sure how I should call it) named Katalon. You would do this manually in Chrome browser directly without Katalon Studio.
  2. You would want to install extentions of your choice, prepares bookmarks into the Chrome Profile “Katalon”. You would do this setup manually in Chrome browser directly without Katalon Studio.
  3. Your test case script would resolve the Chrome Profile Directory path for the “Katalon” user by the following trick:
    Open Browser with Custom Profile
  4. Your test case script wouldl open Chrome specifying the resolved Chrome Profile path.
  5. Done, your test case script would be able to open Chrome using the profile “Katalon” having your extensions and bookmarks.

#5

I am using Chrome in a locked-down environment. When Katalon Studio launches the Chrome browser, I always see the popup: failed to load extension from C:\Users\QAAUTO~1\AppData\Local\Temp\scoped_dir15092_15689\internal.
Loading of unpacked extensions is disabled by the administrator.

The test will run successfully if I manually click "OK’ on the popup. But if I don’t it will fail.

I suspect this popup would no longer occur if I could get Chrome launch without
–disable-extensions-except

In our organization I can’t get this option enabled due to company policy.

I don’t need any of the Katalon extensions just for test execution.
note: the Chrome (headless) browser does not have this issue with the popup and can run tests.

Is there anyway to get Katalon to launch Chrome without this option?


#6

No, there isn’t. This is the default behavior.


#7

Please have a look at

This will show you how to launch Chrome on your own — not asking Katalon to launch Chrome for you. In this way you would have a chance to launch Chrome WITHOUT --disable-extensions option.