我正在运行本地BrowerStack测试,为此我必须实例化与本地服务器和BrowserStack的连接。可以在here中找到此类测试的说明。

我正在尝试将过程声明为变量

Process serverConnection = new ProcessBuilder("C:\\Users\\folder\\BrowserStackLocal.exe","**Password**", serverURL + ",80").start();


查看任务管理器,我看到此行创建了两个BrowserStackLocal.exe进程,我认为这是由于它们如何管理登录。是否可以引用第二个BrowserStackLocal.exe进程?

在清理中,我打电话

serverConnection.destroy();


但这仅结束了其中一个过程。现在我也打电话

Runtime.getRuntime().exec("taskkill /F /IM BrowserStackLocal.exe");


它成功结束了另一个实例,但是我更希望保留一个引用并调用.destroy()。

任何有关如何完成此操作的建议将不胜感激。

编辑:我几乎可以确定,这两个过程的原因是登录功能,因为当我输入错误的密码时,只会打开一个窗口。第二个过程似乎是根据CPU使用率进行所有计算的过程。

编辑2:对BrowserStackLocal的进一步测试确认这是登录过程,它创建了一个附加过程。解决方案可以确定一种从第一个流程跟踪该第二个流程的实例的方法。

编辑3:进程似乎是链接的,因为当我从任务管理器中退出其中一个时,有时另一个会自动关闭。

最佳答案

事实证明,这是BrowserStack处理登录过程的方式,这是不可避免的。

10-02 03:18