使用puppeteer获取innerText

时间:2018-03-04 11:30:22

标签: javascript node.js puppeteer

通过访问此url,写下以下脚本以自动获取电线。

以下代码出现问题:

  1. 非常慢
  2. 无法在结果页面上获取p.ng-binding的文字

    const browser = await puppeteer.launch({ headless: false, timeout: 1000000 });
    
    let page = await browser.newPage();
        page.setDefaultNavigationTimeout(1000000)
        await page.goto('https://pokedex100.com/?d=dcgrtr4WmaRvW', { waitUntil: "domcontentloaded" });
        await page.waitForSelector('input[id="register-email"]', { timeout: 1000000 });
        await page.type('input[id="register-email"]', "my_email_id")
        await page.type('input[id="register-password"]', "my_login_password")
        await page.click('button[class="btn btn-primary"]')
        await page.waitForSelector('button[class="primary"]', { timeout: 1000000 })
        await page.click('button[class="primary"]')
    
        page = await browser.newPage(); // See justification below
        page.waitFor(5000)
        page.setDefaultNavigationTimeout(1000000)
        await page.goto('https://pokedex100.com/?d=dcgrtr4WmaRvW', { waitUntil: "domcontentloaded" })
        await page.waitForSelector('p[class="ng-binding"]', { timeout: 1000000 }).then(async cords => {
        //let cord = await page.$('p[class="ng-binding"]')
        console.log("target")
        console.log(page.target)
        page.$eval('p[class="ng-binding"]', element => {
            console.log("element.innerHTML")
            console.log(element.innerHTML)
            console.log(element.textContent)
            console.log(element.nodeName + ' ' + element.nodeValue)
        })
    })
    
  3. 我使用的原因page = browser.newPage()是因为,我观察到,页面加载到目标上需要时间,但是当我打开新窗口时加载速度会更快。

0 个答案:

没有答案