|
|
@@ -1,6 +1,6 @@
|
|
|
const Puppeteer = require('puppeteer');
|
|
|
const sleep = (ms) => { return new Promise((resolve) => { setTimeout(resolve, ms) }) };
|
|
|
-const { components, unit} = require(process.cwd() + '/config.js');
|
|
|
+const { components, unit } = require(process.cwd() + '/config.js');
|
|
|
const fs = require('fs');
|
|
|
// main
|
|
|
(async () => {
|
|
|
@@ -10,6 +10,7 @@ const fs = require('fs');
|
|
|
const browser = await Puppeteer.launch({
|
|
|
headless: true,
|
|
|
timeout: 0,
|
|
|
+ devtools: false,
|
|
|
executablePath: process.cwd() + '/chrome/chrome.exe'
|
|
|
});
|
|
|
// 打开naive 官网
|
|
|
@@ -26,35 +27,42 @@ const fs = require('fs');
|
|
|
await sleep(1000)
|
|
|
const objs = {}
|
|
|
for (let zd = 0; zd < newArr.length; zd++) {
|
|
|
- const cname = newArr[zd]
|
|
|
- const values = await new Promise(async (resolve, reject) => {
|
|
|
- const input = await page.$('.n-popover__content>.n-space>div:nth-child(3) input');
|
|
|
- await input.click({ clickCount: 2 }); // 双击清空
|
|
|
- await input.type(cname, { delay: 100 });
|
|
|
- await page.$$eval('.n-popover__content>.n-space', (divs) => divs[0].children[2].children[0].children[0].children[0].children[0].blur())
|
|
|
- const keys = await page.$$eval('.n-collapse-item--left-arrow-placement', async (divs,unit) => {
|
|
|
- const obj = {}
|
|
|
- for (let k = 0; k < divs.length; k++) {
|
|
|
- const child = divs[k];
|
|
|
- child.children[0].children[0].click()
|
|
|
- await new Promise((resolve) => { setTimeout(resolve, 1000) })
|
|
|
- const list = child.children[1].children[0].children[0].children
|
|
|
- for (let j = 0; j < list.length; j++) {
|
|
|
- const es = list[j];
|
|
|
- const key = es.children[0].textContent
|
|
|
- const value = es.children[1].children[0].children[0].children[0].getAttribute('placeholder')
|
|
|
- if (value && value.includes('px')) {
|
|
|
- const arr = value.split(' ')
|
|
|
- const newValue = arr.map(el => el.includes('px') ? el = parseInt(el) / unit + 'rem' : el)
|
|
|
- obj[key] = newValue.join(' ')
|
|
|
+ const cname = newArr[zd];
|
|
|
+ const input = await page.$('.n-popover__content>.n-space>div:nth-child(3) input');
|
|
|
+ await input.click({ clickCount: 2 }); // 双击清空
|
|
|
+ await input.type(cname, { delay: 100 });
|
|
|
+ await page.keyboard.press('Enter');
|
|
|
+ const keys = await page.$$eval('.n-collapse-item--left-arrow-placement', async (divs, prams) => {
|
|
|
+ const obj = {}
|
|
|
+ for (let k = 0; k < divs.length; k++) {
|
|
|
+ const child = divs[k];
|
|
|
+ const clickDiv = child.children[0].children[0];
|
|
|
+ const { unit, cname } = prams;
|
|
|
+ try {
|
|
|
+ if (cname === clickDiv.textContent) {
|
|
|
+ clickDiv.click();
|
|
|
+ await new Promise((resolve) => { setTimeout(resolve, 1000) });
|
|
|
+ const list = child.children[1].children[0].children[0].children;
|
|
|
+ for (let j = 0; j < list.length; j++) {
|
|
|
+ const es = list[j];
|
|
|
+ const key = es.children[0].textContent;
|
|
|
+ const value = es.children[1].children[0].children[0].children[0].getAttribute('placeholder');
|
|
|
+ if (value && value.includes('px')) {
|
|
|
+ const arr = value.split(' ');
|
|
|
+ const newValue = arr.map(el => el.includes('px') ? el = parseInt(el) / unit + 'rem' : el);
|
|
|
+ obj[key] = newValue.join(' ');
|
|
|
+ }
|
|
|
}
|
|
|
+ clickDiv.click();
|
|
|
}
|
|
|
+ } catch (error) {
|
|
|
+ continue
|
|
|
}
|
|
|
- return obj
|
|
|
- },unit)
|
|
|
- resolve(keys)
|
|
|
- })
|
|
|
- objs[cname] = values
|
|
|
+ }
|
|
|
+ return obj
|
|
|
+ }, { unit: unit, cname: cname })
|
|
|
+ if (!Object.keys(keys).length) continue
|
|
|
+ objs[cname] = keys;
|
|
|
}
|
|
|
// 输出json 数据
|
|
|
const jsonContent = JSON.stringify(objs);
|