Start WinAppDriver Programmatically Java

Profile picture for user devraj

You can launch WinAppDriver programmatically in Java using several ways. Two approach we will discuss today ProcessBuilder and RunTime Class:

Method 1: Launch WinAppDriver using Process Builder

Process builder is a class used to create operating system processes.

// WinAppDriver path
String winAppDriverPath = "C:\\Program Files (x86)\\Windows Application Driver\\WinAppDriver.exe"; 

// Process provides control of native processes started by ProcessBuilder.start and Runtime.exec
Process p;
	
// Launch WinAppDriver
public void launchWinAppDriver() throws IOException
{
    // List containing the WinAppDriver path and its arguments
    // This list will be accepted by ProcessBuilder
     List<String> command = new ArrayList<String>();
    
    // Add Path for WinAppDriver
    command.add(winAppDriverPath);
    
    // Port for WinAppDriver
    command.add("8888");
    
    
    // inheritIO - Sets the source and destination for subprocess standard I/O to be the same as those of the current Java process.
    ProcessBuilder builder = new ProcessBuilder(command).inheritIO();

    // Start method creates a new process instance 
    p = builder.start();	
}
	
// Terminate WinAppDriver Process
public void close()
{
    p.destroy();
}	

Method 2: Launch WinAppDriver using Run Time Class

String winAppDriverPath = "C:\\Program Files (x86)\\Windows Application Driver\\WinAppDriver.exe";

@Test
public void LaunchRuntime() throws IOException
{
    Runtime.getRuntime().exec(winAppDriverPath);
}