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);
}