在执行过程中,spectron打开两个空白的终端窗口。第一个窗口是我想要的应用程序,其他窗口看起来像终端,里面没有任何东西。
当前,我使用focus()聚焦到第一个窗口。
Github问题链接:https://github.com/electron/spectron/issues/60
有人知道发生了什么吗?是ChromeDriver问题吗?
答案 0 :(得分:0)
我遇到了同样的问题(为了澄清,仅在Windows上)。
显然是作为workaround for Spectron on Windows引入的:
用go编写的启动器二进制文件经常被标记为木马或病毒。一个简单的蝙蝠文件应该看起来更加无害。有关问题以及此bat文件,请参见#93。
不幸的是,使用.bat
文件的结果是unavoidable spawning of these extra empty consoles。
唯一已知的解决方法是像您提到的那样使用.focus()
。
答案 1 :(得分:0)
也许重做launcher.bat以使用启动命令? 像这样:
Start "" "%SPECTRON_NODE_PATH%" "%SPECTRON_LAUNCHER_PATH%" %*
只盯着它。
不确定是否要管理退出失败代码,但是IIRC不会遗留shell。 全面披露,我没有这个应用程序,这是一个直接的答案。希望对您有所帮助。
答案 2 :(得分:0)
focus()与setAlwaysOnTop(true)的组合会有所帮助。
chaiAsPromised.transferPromiseness = app.transferPromiseness;
return app.start().then( async () => {
await app.browserWindow.focus();
await app.browserWindow.setAlwaysOnTop(true);
});
});