appium/java-client

Could not start a new session. Response code 400. Message: Bad capabilities. appium 8.3.0

Luka7711 opened this issue · 6 comments

Description

Starting winapp driver session fails after we upgraded Selenium to 4.8.1 and appium to 8.3.0. I am trying to launch windows desktop application.
I followed documentation: appium migrate 7 -> 8

public void winAppInitialization() {
	if (winAppSession != null && winAppSession.getSessionId() != null) {
		return;
	}
	try {
		BaseOptions capabilities = new BaseOptions();
		capabilities.setCapability("app", appLocation);

		AppiumServiceBuilder serviceBuilder = new AppiumServiceBuilder();
		serviceBuilder.withCapabilities(capabilities).usingAnyFreePort().withTimeout(Duration.ofSeconds(10));
		AppiumDriverLocalService appiumDriverLocalService = AppiumDriverLocalService.buildService(serviceBuilder);

		appiumDriverLocalService.start();

		WindowsDriver driver = new WindowsDriver(new URL("http://localhost:" + appiumDriverLocalService.getUrl().getPort() + "/wd/hub"), capabilities);
		driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

	} catch (Exception e) {
		throw new InitializationException("Error at initializing win app driver, win driver location: "
				+ winDriverURL + " and app location: " + appLocation);
	}
}

Error

org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 400. Message: Bad capabilities. Specify either app or appTopLevelWindow to create a session Build info: version: '4.8.1', revision: '8ebccac989' System info: os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_391' Driver info: io.appium.java_client.windows.WindowsDriver Command: [null, newSession {capabilities=[{platformName=WINDOWS, appium:deviceName=WindowsPC, appium:automationName=Windows, appium:app=C:\Program Files (x86)\Trizetto\Facets\System\Bin\ceraexe0.exe}], desiredCapabilities=Capabilities {appium:app: C:\Program Files (x86)\Triz..., appium:automationName: Windows, appium:deviceName: WindowsPC, platformName: WINDOWS}}] Capabilities {appium:app: C:\Program Files (x86)\Triz..., appium:automationName: Windows, appium:deviceName: WindowsPC, platformName: WINDOWS}

Please provide the full Appium server log

@mykola-mokhnach I've updated Initilaization class where I start appium server first and then starting winapp driver. Here's logs:

io.appium.java_client.service.local.AppiumServerHasNotBeenStartedLocallyException: The local appium server has not been started. The given Node.js executable: C:\Program Files\nodejs\node.exe Arguments: [C:\Users\0029031\AppData\Roaming\npm\node_modules\appium\build\lib\main.js, --port, 8490, --address, 0.0.0.0, --default-capabilities, {"appium:app":"C:\Program Files (x86)\Trizetto\Facets\System\Bin\ceraexe0.exe"}]
Process output: usage: main.js server [-h] [--address ADDRESS] [--allow-cors]
[--allow-insecure ALLOW_INSECURE]
[--base-path BASE_PATH]
[--callback-address CALLBACK_ADDRESS]
[--callback-port CALLBACK_PORT] [--debug-log-spacing]
[--default-capabilities DEFAULT_CAPABILITIES]
[--deny-insecure DENY_INSECURE]
[--keep-alive-timeout KEEP_ALIVE_TIMEOUT]
[--local-timezone] [--log LOG]
[--log-filters LOG_FILTERS] [--log-level LOG_LEVEL]
[--log-no-colors] [--log-timestamp]
[--plugins-import-chunk-size PLUGINS_IMPORT_CHUNK_SIZE]
[--drivers-import-chunk-size DRIVERS_IMPORT_CHUNK_SIZE]
[--long-stacktrace] [--no-perms-check]
[--nodeconfig NODECONFIG] [--port PORT]
[--relaxed-security] [--session-override]
[--strict-caps] [--tmp TMP] [--trace-dir TRACE_DIR]
[--use-drivers USE_DRIVERS] [--use-plugins USE_PLUGINS]
[--webhook WEBHOOK] [--ssl-cert-path SSL_CERT_PATH]
[--ssl-key-path SSL_KEY_PATH] [--shell]
[--show-build-info] [--show-config]
[--config CONFIGFILE]

main.js server: error: argument --default-capabilities/-dc: invalid json value: '{appium:app:C:\\Program'

Unfortunately I cannot help without the full server log

How about this, it's not helpful either?

io.appium.java_client.service.local.AppiumServerHasNotBeenStartedLocallyException: The local appium server has not been started. The given Node.js executable: C:\Program Files\nodejs\node.exe Arguments: [C:\Users\0029031\AppData\Roaming\npm\node_modules\appium\build\lib\main.js, --port, 8490, --address, 0.0.0.0, --default-capabilities, {"appium:app":"C:\Program Files (x86)\Trizetto\Facets\System\Bin\ceraexe0.exe"}]
Process output: usage: main.js server [-h] [--address ADDRESS] [--allow-cors]
[--allow-insecure ALLOW_INSECURE]
[--base-path BASE_PATH]
[--callback-address CALLBACK_ADDRESS]
[--callback-port CALLBACK_PORT] [--debug-log-spacing]
[--default-capabilities DEFAULT_CAPABILITIES]
[--deny-insecure DENY_INSECURE]
[--keep-alive-timeout KEEP_ALIVE_TIMEOUT]
[--local-timezone] [--log LOG]
[--log-filters LOG_FILTERS] [--log-level LOG_LEVEL]
[--log-no-colors] [--log-timestamp]
[--plugins-import-chunk-size PLUGINS_IMPORT_CHUNK_SIZE]
[--drivers-import-chunk-size DRIVERS_IMPORT_CHUNK_SIZE]
[--long-stacktrace] [--no-perms-check]
[--nodeconfig NODECONFIG] [--port PORT]
[--relaxed-security] [--session-override]
[--strict-caps] [--tmp TMP] [--trace-dir TRACE_DIR]
[--use-drivers USE_DRIVERS] [--use-plugins USE_PLUGINS]
[--webhook WEBHOOK] [--ssl-cert-path SSL_CERT_PATH]
[--ssl-key-path SSL_KEY_PATH] [--shell]
[--show-build-info] [--show-config]
[--config CONFIGFILE]

main.js server: error: argument --default-capabilities/-dc: invalid json value: '{appium:app:C:\Program'

This looks like an error from an older client version. Consider using the most recent one as we don't backport fixes to older releases.