3

在开始测试执行之前,我必须手动启动这个 WinAppDriver.exe。

我想在开始执行测试用例时自动执行此任务,它应该启动此 exe,完成后将关闭它。

我用下面的代码在Java中尝试过,但我没有成功:

Runtime runTime = Runtime.getRuntime();

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

Process process = runTime.exec(executablePath);

注意:我需要使用“以管理员身份运行”来运行它

4

3 回答 3

2

我建议使用 Java 中的 ProcessBuilder 类,因为它建议在 Java 5 之后使用它来启动/创建进程。下面的代码将启动 WinAppDriver.exe :

String command = "C:\Users\Administrator\WinAppDriver\WinAppDriverTool\WinAppDriver.exe";
ProcessBuilder builder = new ProcessBuilder(command).inheritIO();
startWinAppDriver = builder.start();

希望这可以帮助。

于 2020-02-10T10:28:18.680 回答
1

两者都为我工作,而无需以 Admin 身份凝视 eclipse。

 Runtime.getRuntime().exec("C:\\Program Files (x86)\\Windows Application Driver\\WinAppDriver.exe");

还有 Sukhangad singh 的回答。

 String command = "C:\\Program Files (x86)\\Windows Application Driver\\WinAppDriver.exe";
    ProcessBuilder builder = new ProcessBuilder(command).inheritIO();
    builder.start();
于 2020-02-19T06:26:14.410 回答
0

上面的答案是正确的,但是如果您想在特定端口上运行 winapp 驱动程序,那么在这种情况下您将需要使用它

   String command = "C:\\Program Files (x86)\\Windows Application Driver\\WinAppDriver.exe";
                List<String> commands = new ArrayList<String>();
                commands.add(command);
                commands.add("8888");
                ProcessBuilder builder = new ProcessBuilder(commands).inheritIO();
                Process p=builder.start();
                p.destroy();

在这里,我们可以将所有参数传递到列表中,并将此列表对象传递到 ProcessBuilder 中。

默认网址:http: //127.0.0.1 :4723

在我们的例子中 URL:http: //127.0.0.1 :8888

于 2022-02-10T08:03:13.107 回答