diff --git a/example2.js b/example2.js index 5ebe102..e448cb5 100644 --- a/example2.js +++ b/example2.js @@ -1,21 +1,13 @@ import { launch } from 'puppeteer'; import 'dotenv/config.js' +import { setLocalStorage } from './utils/userUtils.js'; (async () => { const browser = await launch({ headless: true, args: [`--window-size=1920,1080`], defaultViewport: { width: 1920, height: 1080 } }); const page = await browser.newPage(); - await page.goto('https://dev-dmp.meiguanjia.net/login'); - await page.locator('#userName input').fill(process.env.ACCOUNT); - await page.locator('#passWord input').fill(process.env.PASSWORD); - await page.locator('[type="submit"]').click(); - - await page.waitForSelector('.arco-modal', { visible: true }); - await page.locator('.arco-list-content:first-child .role_box').click(); - - await page.waitForSelector('.arco-message .arco-message-content', { visible: true }); - const arcoMessage = await page.$eval('.arco-message .arco-message-content', node => node.innerHTML); - console.log(arcoMessage); - + setLocalStorage(page, 'user.json'); + await page.goto('https://dev-dmp.meiguanjia.net/report/businessData'); + await page.waitForSelector('.menu-list-second'); const childElements = await page.$$('.menu-list-second .menu-list-second-item'); await new Promise(r => setTimeout(r, 1000)); diff --git a/uselogin.js b/uselogin.js index 8ac89fe..e9316c7 100644 --- a/uselogin.js +++ b/uselogin.js @@ -2,24 +2,15 @@ import { launch } from 'puppeteer'; import fs from 'fs'; import 'dotenv/config.js'; +import { setLocalStorage } from './utils/userUtils.js'; + (async () => { const browser = await launch({ headless: false, devtools: true, args: [`--window-size=1920,1080`], defaultViewport: { width: 1920, height: 1080 } }); const page = await browser.newPage(); await page.goto('https://dev-dmp.meiguanjia.net/login'); - const file = 'user.json';//获取file - const outputLocalStorge = fs.readFileSync(file, 'utf-8'); - let localStorageTest = JSON.parse(outputLocalStorge); + await setLocalStorage(page, 'user.json'); - - // 设置页面的localStorage - await page.evaluateOnNewDocument(localStorageTest => { - localStorage.clear(); - localStorage.setItem('merchant_access_token', localStorageTest.merchant_access_token); - localStorage.setItem('merchant_refresh_token', localStorageTest.merchant_refresh_token); - localStorage.setItem('merchant_login_data', localStorageTest.merchant_login_data); - localStorage.setItem('merchant_metadata_data', localStorageTest.merchant_metadata_data); - }, localStorageTest); await page.goto('https://dev-dmp.meiguanjia.net/report/businessData'); await browser.close(); diff --git a/utils/userUtils.js b/utils/userUtils.js new file mode 100644 index 0000000..b44783c --- /dev/null +++ b/utils/userUtils.js @@ -0,0 +1,20 @@ +import fs from 'fs'; + +/** + * 设置页面的LocalStorage + * @param {*} page + * @param {String} file 用户信息 + */ +export async function setLocalStorage(page, file) { + const outputLocalStorge = fs.readFileSync(file, 'utf-8'); + let localStorageTest = JSON.parse(outputLocalStorge); + + // 设置页面的localStorage + await page.evaluateOnNewDocument(localStorageTest => { + localStorage.clear(); + localStorage.setItem('merchant_access_token', localStorageTest.merchant_access_token); + localStorage.setItem('merchant_refresh_token', localStorageTest.merchant_refresh_token); + localStorage.setItem('merchant_login_data', localStorageTest.merchant_login_data); + localStorage.setItem('merchant_metadata_data', localStorageTest.merchant_metadata_data); + }, localStorageTest); +} \ No newline at end of file