Skip to content

Appium with Java: Selenium 4.11.0 Appium 8.6.0 , Could not start a new session. Response code 400. Message: Missing command parameter: appId  #2202

Open

Description

@johanrosabal

Description

I'm trying to run a simple test with java maven project, I already have installed winAppDriver, but I'm getting the following Error on WinAppDriver

`HTTP/1.1 400 Bad Request
Content-Length: 96
Content-Type: application/json

{"status":100,"value":{"error":"invalid argument","message":"Missing command parameter: appId"}}

==========================================
POST /session HTTP/1.1
Accept: /
Content-Length: 352
Content-Type: application/json; charset=utf-8
Host: 127.0.0.1:4723
User-Agent: appium/8.6.0 (selenium/4.13.0 (java windows))
X-Idempotency-Key: 4a972c32-fbeb-45f0-9cc2-5163d237b6af

HTTP/1.1 400 Bad Request
Content-Length: 96
Content-Type: application/json`

Environment

  • Java client build version or git revision if you use some snapshot: 4.11.0
  • Appium server version or git revision if you use some snapshot: 8.6.0
  • Desktop OS/version used to run Appium if necessary: Desktop Windows

Details

I use this link https://github.com/appium/java-client?tab=readme-ov-file#compatibility-matrix for the compatibility Issues,
I don't understand the "appId" parameters,

Code To Reproduce Issue [ Good To Have ]

`import io.appium.java_client.windows.WindowsDriver;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

import java.net.MalformedURLException;
import java.net.URL;
import java.time.Duration;
// https://github.com/appium/java-client?tab=readme-ov-file#compatibility-matrix
public class CalculatorTest {
private WindowsDriver driver;
@BeforeClass
public void setup() throws MalformedURLException {

    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability("app", "C:\\Windows\\System32\\notepad.exe");
    capabilities.setCapability("platformName", "Windows");
    capabilities.setCapability("deviceName", "WindowsPC");
    capabilities.setCapability("automationName", "Windows");
    driver = new WindowsDriver(new URL("http://127.0.0.1:4723/"), capabilities);
    driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(2));
}

@Test
public void writeTest() {
    // Find the text area element and write "This is a test"
    WebElement editField = driver.findElement(By.id("Edit"));
    editField.sendKeys("This is a test");

    // Save the file
    driver.findElement(By.id("File")).click();
    driver.findElement(By.id("Save As...")).click();

    // Enter the file name
    WebElement fileNameField = driver.findElement(By.id("Edit"));
    fileNameField.sendKeys("testfile.txt");

    // Click the Save button
    driver.findElement(By.id("Save")).click();
}

@AfterClass
public void tearDown() {
    if (driver != null) {
        driver.quit();
    }
}

}
`

Exception Stacktraces

this is the Log Error:
org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 400. Message: Missing command parameter: appId Host info: host: 'DESKTOP-4NSBAV2', ip: '192.168.56.1' Build info: version: '4.13.0', revision: 'ba948ece5b*' System info: os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '11.0.15' Driver info: io.appium.java_client.windows.WindowsDriver Command: [null, newSession {capabilities=[{appium:app=C:\Windows\System32\notepad.exe, appium:automationName=Windows, appium:deviceName=WindowsPC, platformName=windows}], desiredCapabilities=Capabilities {app: C:\Windows\System32\notepad..., automationName: Windows, deviceName: WindowsPC, platformName: windows}}] Capabilities {app: C:\Windows\System32\notepad..., automationName: Windows, deviceName: WindowsPC, platformName: windows}

Activity

  1. itkhanz commented on Jul 20, 2024

    @itkhanz
    Contributor

    This seems to be similar to following:-

    Try initializing driver as below and see whether it resolved the issue:-

        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("app", "C:\\Windows\\System32\\notepad.exe");
        capabilities.setCapability("platformName", "Windows");
        capabilities.setCapability("deviceName", "WindowsPC");
        capabilities.setCapability("automationName", "Windows");
        
        //driver = new WindowsDriver(new URL("http://127.0.0.1:4723/"), capabilities);
    
        HttpCommandExecutor exec = new HttpCommandExecutor(new URL("http://127.0.0.1:4723/"));
        driver  = new WindowsDriver(exec, capabilities);

    I am not sure what is the underlying root cause, but I am guessing this happens because Appium changes "app" to "appium:app" and WinAppDriver is expecting "app" as WinAppDriver is not W3C Complaint.

  2. lucasandre22 commented on Jul 22, 2024

    @lucasandre22

    Hey @johanrosabal, complementing the @itkhanz response, this error may occur when you try to run WinAppDriver with Appium java and Selenium 4.
    Make sure to use the appium-windows-driver in order to make WinAppDriver compatible with Selenium 4 and consequently, W3C standards.

  3. johanrosabal commented on Jul 22, 2024

    @johanrosabal
    Author
  4. lucasandre22 commented on Jul 22, 2024

    @lucasandre22

    Take a look at the compatibility matrix of Appium Java Client and Selenium Client in Java.
    For example, you can use Appium 9.2.3 and Selenium 4.21.0.
    The problem is, if you are using Selenium 4 and Appium, you would need to use appium-windows-driver which is a proxy over WinAppDriver in order to support Selenium 4 commands.

  5. johanrosabal commented on Jul 22, 2024

    @johanrosabal
    Author
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions