Web Testing Electron Builds

Hi Support,

I have a desktop app built using electron (which uses Chromium). Katalon Studio recognizes the application as an ‘active browser’, when you select it from the “Record” drop down, however I get the generic message: “Katalon Automation Recorder extension is required for capturing objects in active tabs that were not opened by Katalon Studio…”

TWO MAIN QUESTIONS

  1. Is there a way to use the Katalon Studio “Record Web” recorder to launch the app from command line, according to the above message window I wouldn’t need the extensions, is this possible?
  2. To install Katalon Studio extensions on electron I have found the below link: electron/devtools-extension.md at main · electron/electron · GitHub will this work for testing our application, or are there any other pre-requisites?

Please feel to also make any other suggestions.

A have a similar question…

I want to automatically test an Electron desktop app, that should be possible to open from a file location on the local machine.
Is it possible to test WITHIN the window? (Other programs only recognize the window, but not what is inside)

^ Bump!

Hello ! I had similar question, about how to run a test on Electron. Found a working solution using Test Listeners and chromedriver from electron website (also used by Spectron). Hope it helps someone else :

Prerequisite : download and unzip chromedriver and electron for your plateform (electron is optionnal if you are testing your .exe)

Caution : do not overwrite the existing katalon’s chromedriver, as it may be used for other projects.

Solution 1 (using app .exe) :

@BeforeTestCase
def sampleBeforeTestCase(TestCaseContext testCaseContext) {

  System.setProperty("webdriver.chrome.driver", "C:\\Users\\Administrateur\\Documents\\Katalon_Studio_Windows_64-5.9.0\\configuration\\resources\\drivers\\electron\\chromedriver.exe");
  
  ChromeOptions options = new ChromeOptions()
  options.setBinary("C:\\Users\\Administrateur\\Downloads\\YourApp\\win-unpacked\\YourApp.exe")

  WebDriver driver = new ChromeDriver(options)

  DriverFactory.changeWebDriver(driver) 

  }

Solution 2 (using app source path) :

@BeforeTestCase
def sampleBeforeTestCase(TestCaseContext testCaseContext) {

  System.setProperty("webdriver.chrome.driver", "C:\\Users\\Administrateur\\Documents\\Katalon_Studio_Windows_64-5.9.0\\configuration\\resources\\drivers\\electron\\chromedriver.exe");
  
  ChromeOptions options = new ChromeOptions()
  options.setBinary("C:\\electron-v3.1.0-beta.2-win32-ia32\\electron.exe")		
  options.addArguments("app=C:\\Users\\Administrateur\\Documents\\Projets\\ElectronQuickStart\\electron-quick-start")
  
  WebDriver driver = new ChromeDriver(options)

  DriverFactory.changeWebDriver(driver) 

  }

Notes :

  • This replace the browser used by the “Run with” functionnality, but it’s not a big deal as you do not want to test an Electron app using another browser.
  • I does not allow to manage “Spy” or “Record” using Katalon, but you can still use Electon’s Developer Tools (Ctrl+Shit+I) to inspect your app.
  • An instance of “chromedriver” might persist in windows tasks if your test does not complete (if you cancel it for example) : some taskkill might be added before you start a test

As far as I can see, most features from WebUI are working (but not maximizeWindow for example). I hope to see Electron supported natively by Katalon one day.

2 Likes

This is neat. Using solution 1, I have the test listener set up. However I am not sure wha the next steps are. I have used the Electron Dev Tools to create an object to click on as a quick test. I added a WebUI.click() with my object in it. Run the test in “chrome” but I get an error below:

Test Cases/New Test Case FAILED.

Reason:

com.kms.katalon.core.exception.StepFailedException: Unable to click on object 'Object Repository/btn_AddNewXNATServer' (Root cause: com.kms.katalon.core.webui.exception.BrowserNotOpenedException: Browser is not opened

Build info: version: '3.7.1', revision: '8a0099a', time: '2017-11-06T21:07:36.161Z'

System info: host: 'pscloughbookpro.lan', ip: 'fe80:0:0:0:cb8:9e86:178f:b64c%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.14.3', java.version: '1.8.0_181'

Driver info: driver.version: unknown)

Any help or further steps after setting up the listener would be most appreciated.

Hi,
I tried to reproduce your case, and I think you are missing an import on the test listener (your test is launching, your app is opened but cannot be interracted) :

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

Please tell me if it worked :slight_smile:

Thanks for your reply. I do have driver factory imported, so that’s not it. Below is the code for my test listener:

import static com.kms.katalon.core.checkpoint.CheckpointFactory.findCheckpoint
import static com.kms.katalon.core.testcase.TestCaseFactory.findTestCase
import static com.kms.katalon.core.testdata.TestDataFactory.findTestData
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject

import com.kms.katalon.core.checkpoint.Checkpoint as Checkpoint
import com.kms.katalon.core.model.FailureHandling as FailureHandling
import com.kms.katalon.core.testcase.TestCase as TestCase
import com.kms.katalon.core.testdata.TestData as TestData
import com.kms.katalon.core.testobject.TestObject as TestObject

import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as Mobile

import internal.GlobalVariable as GlobalVariable

import com.kms.katalon.core.annotation.BeforeTestCase
import com.kms.katalon.core.annotation.BeforeTestSuite
import com.kms.katalon.core.annotation.AfterTestCase
import com.kms.katalon.core.annotation.AfterTestSuite
import com.kms.katalon.core.context.TestCaseContext
import com.kms.katalon.core.context.TestSuiteContext

import org.junit.After
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.JUnit4
import org.openqa.selenium.By
import org.openqa.selenium.WebDriver
import org.openqa.selenium.WebElement
import org.openqa.selenium.chrome.ChromeDriver
import org.openqa.selenium.chrome.ChromeOptions
import org.openqa.selenium.remote.DesiredCapabilities
import java.util.List
import com.kms.katalon.core.webui.driver.DriverFactory


class NewTestListener {

@BeforeTestCase
def sampleBeforeTestCase(TestCaseContext testCaseContext) {

	System.setProperty("webdriver.chrome.driver",
		 "/Users/cloughbookpro/Downloads/chromedriver-v5.0.0-beta.3-mas-x64/chromedriver");

	ChromeOptions options = new ChromeOptions()
	options.setBinary("/Applications/XNAT-Desktop-Client.app")

	WebDriver driver = new ChromeDriver(options)
	DriverFactory.changeWebDriver(driver) 
   } 
}

It may have something to do with Mac OS X, with the binary parameter :

From ChromeDriver - WebDriver for Chrome - Capabilities & ChromeOptions

binary : Path to the Chrome executable to use (on Mac OS X, this should be the actual binary, not just the app. e.g., ‘/Applications/Google Chrome.app/Contents/MacOS/Google Chrome’)

I don’t know anything about Mac OS, but can you adapt your code according to this ?

Edit : please try
options.setBinary(“/Applications/YourApp.app/Contents/MacOS/YourApp”)

Ah, ok. I fixed that and added the binary for chrome. Now when I run a test case, Chrome is launched. But my electron app is not. Here is my updated code.

class NewTestListener {
	
	@BeforeTestCase
	def sampleBeforeTestCase(TestCaseContext testCaseContext) {

		System.setProperty("webdriver.chrome.driver",
			 "/Users/cloughbookpro/Software Testing/chrome alt/Google Chrome.app/Contents/MacOS/Google Chrome");
  
		ChromeOptions options = new ChromeOptions()
		options.setBinary("/Users/cloughbookpro/Software Testing/XNAT Desktop/XNAT-Desktop-Client.app/Contents/MacOS/XNAT-Desktop-Client")
  
		WebDriver driver = new ChromeDriver(options)
		DriverFactory.changeWebDriver(driver) 
	} 
}

Hi @Patrick_Clough

Can you show us the content of the console log or the log file ?

Regards !

Sure. This is a simple test case to simply click a button. Wanted to see if it worked, before I wrote anything further.

What is happening now is that I run the test case by clicking the play button and running via Chrome. Rather than my electron app running, a chrome browser comes up. Then the test fails.

Console:

SLF4J: The requested version 1.7.16 by your slf4j binding is not compatible with [1.6]
SLF4J: See http://www.slf4j.org/codes.html#version_mismatch for further details.
2019-02-19 12:58:12.463 INFO  c.k.katalon.core.main.TestCaseExecutor   - --------------------
2019-02-19 12:58:12.466 INFO  c.k.katalon.core.main.TestCaseExecutor   - START Test Cases/New Test Case
Opening in existing browser session.
[0219/125820.764781:ERROR:mach_port_broker.mm(46)] bootstrap_look_up: Unknown service name (1102)
[0219/125820.765001:ERROR:mach_port_broker.mm(46)] bootstrap_look_up: Unknown service name (1102)
[62304:775:0219/125820.773262:ERROR:field_trial_memory_mac.cc(155)] bootstrap_look_up com.google.Chrome.FieldTrialMemoryServer.1: Unknown service name (1102)
[62299:775:0219/125821.722273:ERROR:field_trial_memory_mac.cc(155)] bootstrap_look_up com.google.Chrome.FieldTrialMemoryServer.1: Unknown service name (1102)
2019-02-19 12:58:33.512 ERROR c.k.k.core.context.internal.TestHooker   - ❌ org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start.
Build info: version: '3.7.1', revision: '8a0099a', time: '2017-11-06T21:07:36.161Z'
System info: host: 'Ps-CloughBookPro.local', ip: 'fe80:0:0:0:cb8:9e86:178f:b64c%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.14.3', java.version: '1.8.0_181'
Driver info: driver.version: ChromeDriver
2019-02-19 12:58:33.635 DEBUG testcase.New Test Case                   - 1: click(findTestObject("Object Repository/btn_AddNewXNATServer"))
2019-02-19 12:58:34.330 WARN  c.k.k.c.w.h.s.WebUIScreenCaptor          - Cannot take screenshot
2019-02-19 12:58:34.351 ERROR c.k.k.core.keyword.internal.KeywordMain  - ❌ Unable to click on object 'Object Repository/btn_AddNewXNATServer' (Root cause: com.kms.katalon.core.webui.exception.BrowserNotOpenedException: Browser is not opened
Build info: version: '3.7.1', revision: '8a0099a', time: '2017-11-06T21:07:36.161Z'
System info: host: 'Ps-CloughBookPro.local', ip: 'fe80:0:0:0:cb8:9e86:178f:b64c%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.14.3', java.version: '1.8.0_181'
Driver info: driver.version: unknown)
2019-02-19 12:58:34.361 ERROR c.k.katalon.core.main.TestCaseExecutor   - ❌ click(findTestObject("Object Repository/btn_AddNewXNATServer")) FAILED.
Reason:
com.kms.katalon.core.exception.StepFailedException: Unable to click on object 'Object Repository/btn_AddNewXNATServer' (Root cause: com.kms.katalon.core.webui.exception.BrowserNotOpenedException: Browser is not opened
Build info: version: '3.7.1', revision: '8a0099a', time: '2017-11-06T21:07:36.161Z'
System info: host: 'Ps-CloughBookPro.local', ip: 'fe80:0:0:0:cb8:9e86:178f:b64c%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.14.3', java.version: '1.8.0_181'
Driver info: driver.version: unknown)
	at com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed(KeywordMain.groovy:36)
	at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.stepFailed(WebUIKeywordMain.groovy:65)
	at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.runKeyword(WebUIKeywordMain.groovy:27)
	at com.kms.katalon.core.webui.keyword.builtin.ClickKeyword.click(ClickKeyword.groovy:86)
	at com.kms.katalon.core.webui.keyword.builtin.ClickKeyword.execute(ClickKeyword.groovy:67)
	at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:53)
	at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords.click(WebUiBuiltInKeywords.groovy:616)
	at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords$click.call(Unknown Source)
	at New Test Case.run(New Test Case:16)
	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:328)
	at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:319)
	at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:298)
	at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:290)
	at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:224)
	at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:106)
	at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:97)
	at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(Unknown Source)
	at TempTestCase1550602690021.run(TempTestCase1550602690021.groovy:22)

2019-02-19 12:58:34.364 ERROR c.k.katalon.core.main.TestCaseExecutor   - ❌ Test Cases/New Test Case FAILED.
Reason:
com.kms.katalon.core.exception.StepFailedException: Unable to click on object 'Object Repository/btn_AddNewXNATServer' (Root cause: com.kms.katalon.core.webui.exception.BrowserNotOpenedException: Browser is not opened
Build info: version: '3.7.1', revision: '8a0099a', time: '2017-11-06T21:07:36.161Z'
System info: host: 'Ps-CloughBookPro.local', ip: 'fe80:0:0:0:cb8:9e86:178f:b64c%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.14.3', java.version: '1.8.0_181'
Driver info: driver.version: unknown)
	at com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed(KeywordMain.groovy:36)
	at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.stepFailed(WebUIKeywordMain.groovy:65)
	at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.runKeyword(WebUIKeywordMain.groovy:27)
	at com.kms.katalon.core.webui.keyword.builtin.ClickKeyword.click(ClickKeyword.groovy:86)
	at com.kms.katalon.core.webui.keyword.builtin.ClickKeyword.execute(ClickKeyword.groovy:67)
	at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:53)
	at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords.click(WebUiBuiltInKeywords.groovy:616)
	at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords$click.call(Unknown Source)
	at New Test Case.run(New Test Case:16)
	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:328)
	at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:319)
	at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:298)
	at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:290)
	at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:224)
	at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:106)
	at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:97)
	at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(Unknown Source)
	at TempTestCase1550602690021.run(TempTestCase1550602690021.groovy:22)

2019-02-19 12:58:34.367 INFO  c.k.katalon.core.main.TestCaseExecutor   - END Test Cases/New Test Case

Why did you changed the ChromeDriver path ? I was fine on your first post. Have you tried

@BeforeTestCase
def sampleBeforeTestCase(TestCaseContext testCaseContext) {

	System.setProperty("webdriver.chrome.driver",
		 "/Users/cloughbookpro/Downloads/chromedriver-v5.0.0-beta.3-mas-x64/chromedriver");

	ChromeOptions options = new ChromeOptions()
	options.setBinary("/Users/cloughbookpro/Software Testing/XNAT Desktop/XNAT-Desktop-Client.app/Contents/MacOS/XNAT-Desktop-Client")

	WebDriver driver = new ChromeDriver(options)
	DriverFactory.changeWebDriver(driver) 
   } 
}

Ah, yes. My mistake. I accidentally changed the chrome webdriver to the chrome application itself. I changed back to the chrome driver, and eureka! My electon app opened.

Now my issue is that the object I am attempting to click in my little script isn’t available due to the below error:

click(findTestObject("Object Repository/btn_AddNewXNATServer")) FAILED.

Reason:

com.kms.katalon.core.exception.StepFailedException: Unable to click on object 'Object Repository/btn_AddNewXNATServer' (Root cause: com.kms.katalon.core.webui.exception.BrowserNotOpenedException: Browser is not opened

So its as though Katalon doesn’t think the app is opened, but it is.

Hi @Patrick_Clough

May we see the content of the test case ? Perhaps there’s some hint there.

Regards !

Just a click of one object:

import static com.kms.katalon.core.checkpoint.CheckpointFactory.findCheckpoint

import static com.kms.katalon.core.testcase.TestCaseFactory.findTestCase

import static com.kms.katalon.core.testdata.TestDataFactory.findTestData

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

import com.kms.katalon.core.checkpoint.Checkpoint as Checkpoint

import com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords as CucumberKW

import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as Mobile

import com.kms.katalon.core.model.FailureHandling as FailureHandling

import com.kms.katalon.core.testcase.TestCase as TestCase

import com.kms.katalon.core.testdata.TestData as TestData

import com.kms.katalon.core.testobject.TestObject as TestObject

import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS

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

import internal.GlobalVariable as GlobalVariable

WebUI.click(findTestObject('Object Repository/btn_AddNewXNATServer'))

Your WebDriver is not able to communicate with your app.
Either your webDriver is not set properly, or maybe give a try with an older version (v3.1.4)

Also, here is the console output of the failed test:

   SLF4J: The requested version 1.7.16 by your slf4j binding is not compatible with [1.6]
SLF4J: See http://www.slf4j.org/codes.html#version_mismatch for further details.
2019-02-20 10:03:26.420 INFO  c.k.katalon.core.main.TestCaseExecutor   - --------------------
2019-02-20 10:03:26.423 INFO  c.k.katalon.core.main.TestCaseExecutor   - START Test Cases/New Test Case
Starting ChromeDriver 2.46.628411 (3324f4c8be9ff2f70a05a30ebc72ffb013e1a71e) on port 10580
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
/Users/cloughbookpro/Software Testing/XNAT Desktop/XNAT-Desktop-Client.app/Contents/Resources/app.asar
/Users/cloughbookpro/Software Testing/XNAT Desktop/XNAT-Desktop-Client.app/Contents/Resources/app.asar.unpacked/libs/
initialize triggered
app.ready triggered
createWindow triggered
{ width: 1200,
  height: 700,
  alwaysOnTop: false,
  show: false,
  top: 
   BrowserWindow {
     _events: 
      { blur: [Function],
        focus: [Function],
        show: [Function: visibilityChanged],
        hide: [Function: visibilityChanged],
        minimize: [Function: visibilityChanged],
        maximize: [Function: visibilityChanged],
        restore: [Function: visibilityChanged],
        'ready-to-show': [Function],
        'did-finish-load': [Function] },
     _eventsCount: 9,
     devToolsWebContents: [Getter] } }
app.ready DONE
Checking for update...
Update not available.
2019-02-20 10:04:27.876 ERROR c.k.k.core.context.internal.TestHooker   - ❌ org.openqa.selenium.WebDriverException: unknown error: DevToolsActivePort file doesn't exist
  (Driver info: chromedriver=2.46.628411 (3324f4c8be9ff2f70a05a30ebc72ffb013e1a71e),platform=Mac OS X 10.14.3 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 60.32 seconds
Build info: version: '3.7.1', revision: '8a0099a', time: '2017-11-06T21:07:36.161Z'
System info: host: 'pscloughbookpro.lan', ip: 'fe80:0:0:0:cb8:9e86:178f:b64c%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.14.3', java.version: '1.8.0_181'
Driver info: driver.version: ChromeDriver
2019-02-20 10:04:27.993 DEBUG testcase.New Test Case                   - 1: click(findTestObject("Object Repository/btn_AddNewXNATServer"))
2019-02-20 10:04:28.742 WARN  c.k.k.c.w.h.s.WebUIScreenCaptor          - Cannot take screenshot
2019-02-20 10:04:28.744 ERROR c.k.k.core.keyword.internal.KeywordMain  - ❌ Unable to click on object 'Object Repository/btn_AddNewXNATServer' (Root cause: com.kms.katalon.core.webui.exception.BrowserNotOpenedException: Browser is not opened
Build info: version: '3.7.1', revision: '8a0099a', time: '2017-11-06T21:07:36.161Z'
System info: host: 'pscloughbookpro.lan', ip: 'fe80:0:0:0:cb8:9e86:178f:b64c%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.14.3', java.version: '1.8.0_181'
Driver info: driver.version: unknown)
2019-02-20 10:04:28.751 ERROR c.k.katalon.core.main.TestCaseExecutor   - ❌ click(findTestObject("Object Repository/btn_AddNewXNATServer")) FAILED.
Reason:
com.kms.katalon.core.exception.StepFailedException: Unable to click on object 'Object Repository/btn_AddNewXNATServer' (Root cause: com.kms.katalon.core.webui.exception.BrowserNotOpenedException: Browser is not opened
Build info: version: '3.7.1', revision: '8a0099a', time: '2017-11-06T21:07:36.161Z'
System info: host: 'pscloughbookpro.lan', ip: 'fe80:0:0:0:cb8:9e86:178f:b64c%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.14.3', java.version: '1.8.0_181'
Driver info: driver.version: unknown)
	at com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed(KeywordMain.groovy:36)
	at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.stepFailed(WebUIKeywordMain.groovy:65)
	at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.runKeyword(WebUIKeywordMain.groovy:27)
	at com.kms.katalon.core.webui.keyword.builtin.ClickKeyword.click(ClickKeyword.groovy:86)
	at com.kms.katalon.core.webui.keyword.builtin.ClickKeyword.execute(ClickKeyword.groovy:67)
	at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:53)
	at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords.click(WebUiBuiltInKeywords.groovy:616)
	at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords$click.call(Unknown Source)
	at New Test Case.run(New Test Case:16)
	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:328)
	at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:319)
	at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:298)
	at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:290)
	at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:224)
	at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:106)
	at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:97)
	at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(Unknown Source)
	at TempTestCase1550678604077.run(TempTestCase1550678604077.groovy:22)

2019-02-20 10:04:28.755 ERROR c.k.katalon.core.main.TestCaseExecutor   - ❌ Test Cases/New Test Case FAILED.
Reason:
com.kms.katalon.core.exception.StepFailedException: Unable to click on object 'Object Repository/btn_AddNewXNATServer' (Root cause: com.kms.katalon.core.webui.exception.BrowserNotOpenedException: Browser is not opened
Build info: version: '3.7.1', revision: '8a0099a', time: '2017-11-06T21:07:36.161Z'
System info: host: 'pscloughbookpro.lan', ip: 'fe80:0:0:0:cb8:9e86:178f:b64c%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.14.3', java.version: '1.8.0_181'
Driver info: driver.version: unknown)
	at com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed(KeywordMain.groovy:36)
	at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.stepFailed(WebUIKeywordMain.groovy:65)
	at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.runKeyword(WebUIKeywordMain.groovy:27)
	at com.kms.katalon.core.webui.keyword.builtin.ClickKeyword.click(ClickKeyword.groovy:86)
	at com.kms.katalon.core.webui.keyword.builtin.ClickKeyword.execute(ClickKeyword.groovy:67)
	at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:53)
	at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords.click(WebUiBuiltInKeywords.groovy:616)
	at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords$click.call(Unknown Source)
	at New Test Case.run(New Test Case:16)
	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:328)
	at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:319)
	at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:298)
	at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:290)
	at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:224)
	at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:106)
	at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:97)
	at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(Unknown Source)
	at TempTestCase1550678604077.run(TempTestCase1550678604077.groovy:22)

2019-02-20 10:04:28.759 INFO  c.k.katalon.core.main.TestCaseExecutor   - END Test Cases/New Test Case

How do I change the webdriver version? Will that affect my whole system (other projects)? Other projects, (webUI testing) work ok, and I wouldn’t want to adversely affect those.

Don’t worry, it won’t affect your other tests. You’ll find the version on https://github.com/electron/electron/releases/tag/v3.1.4
Simply download it, unzip it, and replace the reference on System.setProperty(“webdriver.chrome.driver” function

If you want more informations about WebDriver : https://w3c.github.io/webdriver/
There is a WebDriver per browser : so your webUI projects are safe ^^

That did it. App launches now and it seems the driver is working properly. Now I just need it to find my object! So far, no luck. Thanks for all of your help.