最近再作瀏覽器的自動化,首頁是定製化的,是經過extension(擴展)實現的,因爲經過puppeteer默認是以無參(即首次以乾淨的環境)運行的,致使登陸頁沒法正常顯示,首先想固然是直接找擴展crx插件,結果是以失敗了結,開始覺得是調的方式方法不正確,最後詢問幾個大蝦,都一致認爲是在userdata下的擴展。以下兩張圖的對比html
const puppeteer = require('puppeteer'); //導入模塊 const path = require('path'); (async () => { let username = 'tester02'; //需求根據不一樣用戶修改 const ext='C:/Users/tester02/AppData/Local/AllMobilize/Enterplorer/User Data/Default/Extensions'; const exepath = 'C:/Users/' + username + '/AppData/Local/Axxx/Enterplorer/Application/enterplorer.exe'; const userData = 'C:/Users/' + username + '/AppData/Local/Axxx/Enterplorer/User Data'; const newtabEx = path.join(ext,"milhmifoljmifighlanebdlekdjhbibd/1.3.2_0/"); const newtabEx2 = path.join(ext,"ahejmjlfdnkngmajdfanadcgmdmgahda/2.2.0_0"); const newtabEx3 = path.join(ext,"bkcbnbbmeifnhooabnknahjpbfblbjfb/1.0.15_0"); const newtabEx4 = path.join(ext,"pgigkojhmdneillbbpcajchbggkphhjp/2.5_0"); console.log(newtabEx1) // const pathToExtension = path.resolve(ext); --disable-extensions-except= ,`--load-extension=${newtabEx1}`.`--custom-launcher-page=${newtabEx1}`, const browser = await puppeteer.launch({ executablePath:exepath, ignoreDefaultArgs:true, ignoreHTTPSErrors:true, headless:false, slowMo:20, userDataDir: userData, args : ['--no-sandbox', '--window-size=1366,850',`--disable-extensions-except=${newtabEx},${newtabEx2},${newtabEx3},${newtabEx4}`] //主要就是這一句容許例外 }); const page = await browser.newPage(); page.setViewport({'width': 1366, 'height': 768}); await page.waitFor(2000); await page.goto('chrome-extension://milhmifoljmifighlanebdlekdjhbibd/newtab/Home.html');//這一句打開擴展插件 await page.click("#server-setting"); await page.type('#domain',"124.193.66.66:30080"); await page.click('#img_arrow'); await page.click('#domain_protocal_change>li:nth-child(2)'); await page.click('#next-btn'); await page.waitFor(5000); await browser.close(); })();
方法1、打開sources默認打開當前的路徑chrome
方法2、console>命令行輸入location瀏覽器