Javascript 木偶演员-移除exposeFunction暴露的函数?

Javascript 木偶演员-移除exposeFunction暴露的函数?,javascript,node.js,puppeteer,webautomation,Javascript,Node.js,Puppeteer,Webautomation,我以以下方式使用exposeFunction命令: await this.page.exposeFunction('foo', function(){ return 'bar'; }); 这可以按预期工作,并为我提供window.foo-function 如果我再次调用此代码,将出现以下错误: Error: Failed to add page binding with name foo: window['foo'] already exists! 使用page.goto()导航时,此错误甚

我以以下方式使用exposeFunction命令:

await this.page.exposeFunction('foo', function(){ return 'bar'; });
这可以按预期工作,并为我提供window.foo-function

如果我再次调用此代码,将出现以下错误:

Error: Failed to add page binding with name foo: window['foo'] already exists!
使用page.goto()导航时,此错误甚至仍然存在


是否有方法解除exposeFunction()公开的函数的绑定?

您可以更改存储在
\u pageBindings
映射中的函数。这是非常困难的,因为你会改变一个内部变量,但这是解决这个问题的唯一方法

等待这个.page.exposeFunction('foo',function(){return'bar';});
this.page.u pageBindings.set('foo',function(){return'baz';});

直接更改内部变量有什么不利之处吗?它会影响你的表演吗?抱歉,这里是初学者。@vexingCoder风险在于这不是API的一部分。因此,木偶演员可以根据需要重命名
\u页面绑定
,破坏您的代码。哦,我明白了,非常感谢。所以,如果木偶师改变了它,我就不能更新我的木偶师版本。因为它会破坏我的密码谢谢!