java - BrowserStackLocal.exe 从 Java 执行时会创建 2 个进程

标签 java selenium process automation browserstack

我正在运行本地 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 处理登录过程的方式,而且这是不可避免的。

关于java - BrowserStackLocal.exe 从 Java 执行时会创建 2 个进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24186985/

相关文章:

selenium - 如何避免 WebDriver 在等待 Google Ads 或 Google Analytics 加载时卡住?

linux - 进程数是否受 RAM 大小的限制?

java - 在 Java 中用流 api 替换多个 FOR 循环的最佳方法

java - 何时使用 : Java 8+ interface default method, 与抽象方法

java - Java SE 是一个框架吗?

selenium - “sendKeys”在 Selenium WebDriver 中不起作用

java - GWT错误: 'com.google.gwt.widgetideas.client.FastTree$DefaultResources' (did you forget to inherit a required module?)

python - 如何关闭 Selenium 打开的所有窗口?

c - popen() 替代方案

java - 使用Java按顺序运行命令行命令