Exposing local functions
With Puppeteer, you can not only execute code inside the browser but also make calls from the browser back to your Node app. The exposeFunction
function allows us to register Node functions inside the browser.
This is the exposeFunction
signature: page.exposeFunction(name, puppeteerFunction)
:
- The first argument is
name
. This will be the function name inside the browser. puppeteerFunction
is a function that follows the same style and functionality as all the functions we have learned about in this chapter.
This feature is perfect when it is called from a MutationObserver
.
For instance, instead of executing a function over and over, waiting for the checkout counter to change, we could create a MutationObserver
to let us know when the value has changed in the HTML Node. Let's see how the code would look:
let observer = new MutationObserver(list => console.log(list[0].target.nodeValue)); observer.observe( document...