How to automate metamask ? (using puppeteer or others)

170 views Asked by At

I want to automate a website. I've started to automate a page but when I have to approve with metamask, I can't. I'm using puppeteer and I've seen a repo: dappeteer But it doesn't work for me

Do I have to use this repo to do what I want? Or do you have a better solution?

Some details about the error I have on dappeteer

To Reproduce

Try this code for reproduce

import dotenv from 'dotenv'
dotenv.config()

import dappeteer from '@chainsafe/dappeteer';

console.log('dappeteer: ', dappeteer)

function sleep(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

async function main() {

  let browser;
  let metamask;

  browser = await dappeteer.launch({
    headless: false,
    metaMaskVersion: "v11.0.0",
    defaultViewport: null,
    automation: "puppeteer",
  })

  metamask = await dappeteer.setupMetaMask(browser, {
    seed: process.env.SEED,
    password: process.env.PASSWORD
  })
}

main();

Logs

/home/lucrypto/Documents/code/scroll-automate/node_modules/@chainsafe/dappeteer/dist/puppeteer/page.js:73
        return new elements_1.DPuppeteerElementHandle((await this.page.waitForXPath(xpath, opts)));
                                                                       ^

TypeError: this.page.waitForXPath is not a function
    at DPupeteerPage.waitForXPath (/home/lucrypto/Documents/code/scroll-automate/node_modules/@chainsafe/dappeteer/dist/puppeteer/page.js:73:72)
    at getElementByContent (/home/lucrypto/Documents/code/scroll-automate/node_modules/@chainsafe/dappeteer/dist/helpers/selectors.js:5:71)
    at clickOnElement (/home/lucrypto/Documents/code/scroll-automate/node_modules/@chainsafe/dappeteer/dist/helpers/actions.js:51:45)
    at importAccount (/home/lucrypto/Documents/code/scroll-automate/node_modules/@chainsafe/dappeteer/dist/setup/setupActions.js:41:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async Object.setupMetaMask (/home/lucrypto/Documents/code/scroll-automate/node_modules/@chainsafe/dappeteer/dist/setup/setupMetaMask.js:33:9)
    at async file:///home/lucrypto/Documents/code/scroll-automate/src/index.js:25:18
Expected behavior

I want to automate metamask, and for that i would like to use this repo But if you have a better solution, im clearly open for any suggestion !

System:

  • OS: Ubuntu
  • OS version Ubuntu 20.04.6 LTS
  • NodeJs version : v20.10.0
  • dappeteer version 5.2.1
  • puppeteer version 22.0.0

Thanks in advance for your help !

0

There are 0 answers