node.js - Spectron:如何测试Electron `shell.openExternal('一些url')`

标签 node.js automated-tests electron spectron

我正在为用Electron编写的应用程序编写E2E测试。我需要测试一个有效调用shell.openExternal('link')的按钮,其中link是外部网站。我一直在Webdriver文档中寻找允许测试拦截此调用的内容,但看起来根本不像API中那样。

1)如果确实存在这样的问题,我在文档中错过了它,请以力量的一面启发我,

2)如果没有,那么stackoverflow领域中的任何人都可以解决这个问题吗?

非常感谢!

最佳答案

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

关于node.js - Spectron:如何测试Electron `shell.openExternal('一些url')`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58926344/

相关文章:

angularjs - Protractor 中有 before() 函数吗?

javascript - Electron - TypeError : core. require is not a function

node.js - pm2 列表未显示重启、用户和正常运行时间列

arrays - 在有希望的数组中推送到数组在 promise 之外是空的

java - 使用 Selenium Java 测试用例调用 CLICK 时获取 "org.openqa.selenium.ElementClickInterceptedException"

Selenium WebDriver - 同时按下和单击 C#

javascript - 使用 React Router v4 在身份验证后导航到页面

macos - 有什么方法可以在macOS上显示仅 “Select folder”对话框吗?

Javascript 对象属性 Console.log

node.js - 通过 Socket.IO 向所有关注者发送消息