我通过以下方式使用暴露函数命令:
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()公开的功能?
答案 0 :(得分:0)
您可以更改存储在_pageBindings
映射中的功能。这很麻烦,因为您可以更改内部变量,但这是解决此问题的唯一方法。
await this.page.exposeFunction('foo', function(){ return 'bar'; });
this.page._pageBindings.set('foo', function(){ return 'baz'; });