当前位置: 首页 > 后端技术 > Node.js

Puppeteer系列步进日志—3—启用支持插件

时间:2023-04-03 15:41:12 Node.js

在使用puppeteer自动化的过程中,你会发现实际启用的chrome往往会自动禁用插件功能。如果我们想在自动化测试的过程中使用一些常用的插件来提高效率(惰性),那是行不通的。其实还是有解决办法的。今天我们就来解释一下这个问题。问题一:为什么puppeteer刚启动时插件功能被禁用了?官方没有发现这个问题,个人猜测是:性能。为了提高puppeteer打开速度更快,这方面是有考虑的。问题2:它是如何被禁用的?首先,我们需要回到【Puppeteer系列步进日志-2-去掉自动化提示】()看看。开头提到了chrome命令行,大家可以回头看看。然后我们会发现,在lanucher.js中,有一个默认的启动参数叫做:--disable-extensions这个参数不用解释,名字就很清楚了。但是我们必须挖掘一下,看看彼得的列表中是否有任何解释。perterlist里面的list解释很简单,就是这个意思。但是我们发现下面还有一个参数--disable-extensions-except看解释:禁用逗号分隔列表中指定的以外的扩展。如果不想打开,但又想加载插件,可以用这个,这也是看文档的意外收获。问题三:如何指定插件?刚才我们已经解决了插件功能被关闭的问题,那么接下来就是加载插件了。先说个题外话,如何把现在安装在chrome中的商店的插件取出来:地址栏:chrome://version/然后看:个人数据路径。在电脑上打开这个路径,找到Extensions文件夹,里面有所有Google插件的安装包,具体名称需要根据插件ID查看。然后,接下来,我们先获取自己的插件路径(绝对路径,或者node解析的路径),开始加载。话不多说,代码:constbrowser=awaitpuppeteer.launch({...args:[`--disable-extensions-except=${插件路径1},${插件路径2},${插件路径3}...`]});这很容易解决问题。其他陷阱:您可能会遇到插件加载问题。这是因为插件文件夹中可能存在一些杂乱的文件。这个可以参考谷歌插件开发文档,内容尽量保持干净。windows下可能还有隐藏文件。如果实在删不掉,可以尝试新建一个文件夹,然后复制出来。如果遇到其他问题,可以在评论底部联系我,我们一起学习如何解决这个坑。