puppeteer去除webdriver标记问题+打包

去除webdriver的正确写法

await page.evaluateOnNewDocument('const newProto = navigator.__proto__;delete newProto.webdriver;navigator.__proto__ = newProto;');

去除webdriver的错误写法

await page.evaluateOnNewDocument(() => {
            const newProto = navigator.__proto__;
            delete newProto.webdriver;
            navigator.__proto__ = newProto;
        });

两种方法用node xxx.js 命令都可以正常的去除标记,但是如果打包成EXE文件去执行的话,下面这种代码就会出错,虽然可以正常打包,但是在执行的时候就会发现webdriver返回的居然是true,去除标记的代码变成了

 

() => {
            [native code]
        }

  

 

[native code] 意思已经很明确了:是 native 的代码实现的 built-in 函数,而不是 JavaScript 代码

所以写法就要改成第一种写法。

打包用pkg 打包,可以打三个平台的包,最终就一个exe文件,挺方便的。

 

posted @ 2021-06-30 21:04  洋大大  阅读(455)  评论(0编辑  收藏  举报