木偶-删除由ExposureFunction公开的功能?

时间:2019-12-02 11:16:41

标签: puppeteer

我通过以下方式使用暴露函数命令:

await this.page.exposeFunction('foo', function(){ return 'bar'; });

这按预期工作,并提供了window.foo功能。

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

Error: Failed to add page binding with name foo: window['foo'] already exists!

使用page.goto()导航时,该错误甚至仍然存在。

有没有办法解除由ExposureFunction()公开的功能?

1 个答案:

答案 0 :(得分:0)

您可以更改存储在_pageBindings映射中的功能。这很麻烦,因为您可以更改内部变量,但这是解决此问题的唯一方法。

await this.page.exposeFunction('foo', function(){ return 'bar'; }); 
this.page._pageBindings.set('foo', function(){ return 'baz'; });