dappeteer
dappeteer copied to clipboard
metamask start will error when use playwright with debug
version :0.4.0 test
import {readdir} from 'fs/promises';
import path from 'path';
import {use as chaiUse} from 'chai';
import chaiAsPromised from 'chai-as-promised';
import * as dappeteer from '@chainsafe/dappeteer/dist/index';
import puppeteer from 'puppeteer';
import {Dappeteer} from "@chainsafe/dappeteer/dist/types";
import {RECOMMENDED_METAMASK_VERSION} from "@chainsafe/dappeteer/dist/index";
chaiUse(chaiAsPromised);
function getCounterNumber(contract): Promise<number> {
return contract.methods
.count()
.call()
.then((res) => {
return Number(res);
});
}
async function clickElement(page, selector): Promise<void> {
await page.bringToFront();
await page.waitForSelector(selector);
const element = await page.$(selector);
await element.click();
}
export let testContract, browser, metamask: Dappeteer, testPage;
describe('dappeteer', () => {
before(async () => {
browser = await dappeteer.launch( {
automation: "playwright",
browser: "chrome",
metaMaskVersion: RECOMMENDED_METAMASK_VERSION,
playwrightOptions:{
// args: [`--debug=true`],
}
});
metamask = await dappeteer.setupMetaMask(browser,
{
// optional, else it will use a default seed
seed: 'pioneer casual canoe gorilla embrace width fiction bounce spy exhibit another dog',
password: 'password1234',
});
testPage = await browser.newPage();
await testPage.goto('https://metamask.github.io/test-dapp/');
// output version
const directory = path.resolve(__dirname, '..', 'metamask');
const files = await readdir(directory);
console.log(`::set-output name=version::${files.pop().replace(/_/g, '.')}`);
});
it("de", async () => {
console.log("dd")
})
after(async () => {
// close browser
await browser.close();
});
});
package.json
"scripts": {
"test": "PWDEBUG=1 mocha"
},
will cause error, so should refresh when metamask web error
playwright debug doc: https://playwright.dev/docs/debug#pwdebug
aftrer refresh by handle ,script works fine