electron应用调试
electron简介
教程很细很详细了,操作也很简单,可参考官方开发文档
个人理解来说,electron就是一个把html打包成桌面应用的框架,其内置了一个Chromium可以加载各种网页,以及可以在index.js
和preload.js
中执行nodejs代码。
因为是基于浏览器的应用,如果要对其进行测试,那么难免会对JS进行调试,因此本文的核心也是:怎么样才能对electron应用的js进行调试呢?
对electron应用调试
控制台
浏览器按F12可以直接打开控制台,在electron应用中,如果开发者没有做限制,也可以按快捷键打开,Windows上是Ctrl + Shift + I
,Mac上是 Cmd + Option + I
开源工具
使用GitHub的开源工具debugtron:Debug in-production Electron based app
选择APP后如下:
调试主进程
调试渲染的页面:
使用chrome的inspect
上面开源工具有时候获取的应用不全,手动写路径也启动不了的话,可以试试这个办法;手动开启debug模式然后用chrome://inspect
去注入检查
调试主进程
如果要调试main.js
,应用启动时增加参数 --inspect=9222
然后在chrome中输入 chrome://inspect
点击inspect
,就可以对主进程下断点调试了
调试渲染页面
应用启动时增加参数 --remote-debugging-port=9222
然后在chrome中输入 chrome://inspect
点击 inspect
即可
调试技巧
如何快速定位到功能代码
和正常调试网站上的JS代码一样,之前没有记录过,这里一起总结下;思路主要分为2个方向:
- 通过具体的操作和变化下断点
- 搜关键词
第2个方法比较简单粗暴,但有时候可能也定位不到,因此这里着重介绍一下第1个方法
在chrome中,除了我们手动下的断点外,还提供了一些特殊的断点,比如发起xhr请求、点击了鼠标、按下了键盘等等,来辅助快速定位到逻辑代码。
此外,还可以通过html的变化下断点,操作方式如下:
这样当页面对应的html属性发生变化时,就会自动下断点到对应的执行代码中。在通过分析堆栈就可以找到一些上层的封装方法,方便我们测试调用。
问答
Q:出现The tab is inactive
无法选中怎么办?
A:再次选中应用即可。