-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathindex.js
61 lines (51 loc) · 1.51 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
const puppeteer = require('puppeteer')
const logger = require('./Logger')
// var logger = require('debug-log')('foo');
const LOCAL_SERVER = 'http://localhost:5000'
async function run() {
logger.time('打开浏览器')
const browser = await puppeteer.launch()
logger.time('打开浏览器')
logger.time('打开页面')
const page = await browser.newPage()
page.setViewport({width: 1024, height: 768}); //1290 800
await page.goto('https://www.coursera.org/browse?languages=en')
await page.screenshot({
path: 'screenshots/main-page.png'
})
logger.time('打开页面')
logger.time('加载jQuery')
// await page.addScriptTag(LOCAL_SERVER + "/jquery.min.js")
await page.addScriptTag("https://code.jquery.com/jquery-3.2.1.min.js")
logger.time('加载jQuery')
logger.time('加载页面')
await page.waitForSelector(".rc-DomainNav > a", { timeout: 2 * 1000 })
logger.time('加载页面')
const content = await page.evaluate(() => {
const data = []
$(".rc-DomainNav > a").each((index, element) => {
const $element = $(element);
const dataVal = JSON.parse($element.attr('data-click-value'))
data.push(dataVal)
console.log('dataVal', dataVal)
})
return Promise.resolve(data)
})
/*{
namespace: {
app: 'catalog',
page: 'root',
component: 'browse_left_nav',
action: 'click'
},
domainId: 'language-learning',
schema_type: 'FRONTEND',
href: '/browse/language-learning'
}*/
logger.log("\nResults:")
content.forEach(({domainId}) => {
console.log(domainId)
})
browser.close()
}
run()