'How in Playwright get in evaluate data from arguments?

How in Playwright get in evaluate data from arguments? page.evaluate: ReferenceError: d is not defined

async function testEv(d) {
  const data = await this.page.evaluate(function() {
    console.log('d from args is', d)
  })
}


Solution 1:[1]

You have to pass to the evaluate function a function that expects an argument. To avoid the confusion lets call it c, and then you pass d as a second argument to the evaluate.

async function testEv(d) {
  const data = await this.page.evaluate((c) {
    console.log('d from args is', c)
  }, d)
}

If you need to pass more than one argument you can pass an object

async function testEv(d) {
  const data = await this.page.evaluate((obj) {
    console.log('obj.foo from args is', obj.foo);
    console.log('obj.bar from args is', obj.bar);
  }, 
  {
    foo: d,
    bar: d,
  })
}

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 hardkoded