(async () => {
// 载入配置文件并使用JSON.parse()解析
var config = JSON.parse(fs.readFileSync('./config.json').toString());
console.log("(1) Config Loaded...");
// 从EXCEL获取数据
var scores= await GetDataFromXlsx("score.xlsx",true,["I"]);
// 分析数据
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);
//获取第一行数据,双击
/*
// 没有效果,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);//人数
await page.type("#txtJGRS", tj.passed);//及格数
await page.type("#txtJGL", tj.passedPercent);//合格率
//分数段
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});
*/
/*
相当于两次操作,页面自动在空值处增加0默认值;然后输入2位数,而输入框作为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();
})();