當(dāng)前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
使用puppeteer爬 EXTJS
生活随笔
收集整理的這篇文章主要介紹了
使用puppeteer爬 EXTJS
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
(async () => {// 載入配置文件并使用JSON.parse()解析 var config = JSON.parse(fs.readFileSync('./config.json').toString());console.log("(1) Config Loaded...");// 從EXCEL獲取數(shù)據(jù)var scores= await GetDataFromXlsx("score.xlsx",true,["I"]);// 分析數(shù)據(jù)console.log(scores);let sc= [];for (s of scores) {sc.push(parseInt(s.I));}console.log(sc);var arr=sc;const browser = await puppeteer.launch({headless: false});const page = await browser.newPage();// 登錄await page.goto('http://172.16.0.7/'); await page.type("#txtZH",'xxxx');await page.type("#txtMM",'xxxxx');await page.click('#ext-gen24');await page.waitFor(1000);await page.goto('http://172.16.0.7/user/kcsjfx.aspx'); await page.waitFor(5000);//獲取第一行數(shù)據(jù),雙擊/*// 沒有效果,EXTJS還沒有解析var foo = await page.$$('#ext-gen25 > div.x-grid3-row.x-grid3-row-first > table > tbody > tr');console.log(foo);await foo.click({ clickCount: 2 }) ; */var s= await page.waitForSelector('#ext-gen25 > div.x-grid3-row.x-grid3-row-first > table > tbody > tr');var tj={"avg":avg(sc).toFixed(0).toString(),"max":max(sc).toString(),'num':arr.length.toString(),"passed":passed(arr).toString(),"passedPercent":((passed(arr)/arr.length)*100).toFixed(0).toString(),"a0":countNum(arr,0,10).toString(),"a1":countNum(arr,10,20).toString(),"a2":countNum(arr,20,30).toString(),"a3":countNum(arr,30,40).toString(),"a4":countNum(arr,40,50).toString(),"a5":countNum(arr,50,60).toString(),"a6":countNum(arr,60,70).toString(),"a7":countNum(arr,70,80).toString(),"a8":countNum(arr,80,90).toString(),"a9":countNum(arr,90,100).toString(),"b0":(countNum(arr,0,10)/arr.length*100).toFixed(0).toString(),"b1":(countNum(arr,10,20)/arr.length*100).toFixed(0).toString(),"b2":(countNum(arr,20,30)/arr.length*100).toFixed(0).toString(),"b3":(countNum(arr,30,40)/arr.length*100).toFixed(0).toString(),"b4":(countNum(arr,40,50)/arr.length*100).toFixed(0).toString(),"b5":(countNum(arr,50,60)/arr.length*100).toFixed(0).toString(),"b6":(countNum(arr,60,70)/arr.length*100).toFixed(0).toString(),"b7":(countNum(arr,70,80)/arr.length*100).toFixed(0).toString(),"b8":(countNum(arr,80,90)/arr.length*100).toFixed(0).toString(),"b9":(countNum(arr,90,100)/arr.length*100).toFixed(0).toString(),}console.log(tj);await s.click({ clickCount: 2 }) ; //console.log(avg(sc).toFixed(1));var arr=scores;await page.type("#txtPJF", tj.avg);//平均await page.type("#txtZGF", tj.max);//最高await page.type("#txtZRS", tj.num);//人數(shù)await page.type("#txtJGRS", tj.passed);//及格數(shù)await page.type("#txtJGL", tj.passedPercent);//合格率//分?jǐn)?shù)段page.$$eval("#Panel3 input[type=text]", (el,paramIn)=>{//console.paramIn;el[0].value=paramIn.tj.a0;el[1].value=paramIn.tj.a1;el[2].value=paramIn.tj.a2;el[3].value=paramIn.tj.a3;el[4].value=paramIn.tj.a4;el[5].value=paramIn.tj.a5;el[6].value=paramIn.tj.a6;el[7].value=paramIn.tj.a7;el[8].value=paramIn.tj.a8;el[9].value=paramIn.tj.a9;},{tj});/*page.$eval("#txtFSD7", (el,paramIn)=>{el.value=paramIn.tj.a7;},{paramIn});*//*相當(dāng)于兩次操作,頁面自動在空值處增加0默認(rèn)值;然后輸入2位數(shù),而輸入框作為2位的長度限制,只能錄入1位await page.type("#txtFSD0",'');await page.type("#txtFSD0",tj.a0, {delay: 1000});*///百分比page.$$eval("#Panel4 input[type=text]", (el,paramIn)=>{//console.paramIn;el[0].value=paramIn.tj.b0;el[1].value=paramIn.tj.b1;el[2].value=paramIn.tj.b2;el[3].value=paramIn.tj.b3;el[4].value=paramIn.tj.b4;el[5].value=paramIn.tj.b5;el[6].value=paramIn.tj.b6;el[7].value=paramIn.tj.b7;el[8].value=paramIn.tj.b8;el[9].value=paramIn.tj.b9;},{tj});// await browser.close();
})();
?
總結(jié)
以上是生活随笔為你收集整理的使用puppeteer爬 EXTJS的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用puppeteer自动录入成绩
- 下一篇: C#-异步Ping检查网络通断