Spectron:如何测试 Electron `shell.openExternal('some url')`

Spectron: how to test Electron `shell.openExternal('some url')`

我正在为一个用 Electron 编写的应用程序编写和 E2E 测试。我需要测试一个实际上调用 shell.openExternal('link') 的按钮,其中 link 是一个外部网站。我一直在 webdriver 文档中寻找允许测试拦截此调用的东西,但它看起来根本不像 API 中存在的东西。

1) 如果确实存在这样的事情,而我在文档中遗漏了它,请用力的光明面的方式启发我,

2) 如果没有,那么 Whosebug 领域的任何人是否有奇特的解决方法?

非常感谢!

我想出了一个答案。我没有尝试拦截点击,而是在主应用程序中添加了一个 env var,这样设置后,点击会将一个条目放入日志中,而不是在浏览器中实际打开外部 link。然后我使用 spectron 中的 API 来收集渲染过程日志:https://github.com/electron-userland/spectron#clientgetrenderprocesslogs 然后我可以在日志中查找自定义字符串,我可以判断是否存在正确的文本。