去除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文件,挺方便的。