【PUPPETEER】初探之獲取元素文本值(三)


一、知識點

  1. page.$eval(selector, pageFunction[, ...args])

  2. page.$$eval(selector, pageFunction[, ...args])

  3. innerHTML

二、場景

  1.當我們需要獲取元素內的值,與實際值做對比的時候,驗證頁面正確性;

  2.當我們獲取某個元素內的文本值,需要拿這個值圖填補另一個輸入框的時候;

三、獲取單個文本內容實例

<a href="#" onclick="register();return false">注冊</a>

看一下這段html 代碼,我現在想得到【注冊】,怎么辦呢?我們可以參考puppeteer 給我的api 依葫蘆畫瓢 ,使用el => el.innerHTML  獲取內部html 值

const puppeteer = require('puppeteer');
(async () => {
    const brower = await puppeteer.launch({
        executablePath:'D:\\wangxiao\\chrome-win\\chrome-win\\chrome.exe',
        headless:false
    });
    const page = await brower.newPage();
    await page.goto('https://www.cnblogs.com/');
    let res = await page.$eval('#span_userinfo a:nth-child(2)',el => el.innerHTML);
    console.log(res);
    //await brower.close();
})().catch(error =>{console.log('error')});

 

四、獲取多個元素文本內容

 使用page.$$eval(selector, pageFunction[, ...args])  獲取返回是數組,我現在想獲取每個標題,發現他的class的父級別是一樣的,所有元素可以寫成‘.post_nav_block li a’

 

const puppeteer = require('puppeteer');
(async () => {
    const brower = await puppeteer.launch({
        executablePath:'D:\\wangxiao\\chrome-win\\chrome-win\\chrome.exe',
        headless:false
    });
    const page = await brower.newPage();
    await page.goto('https://www.cnblogs.com/');
    let res = await page.$$eval('.post_nav_block li a',el => el.map(el => el.innerHTML));
    console.log(res);
    await brower.close();
})().catch(error =>{console.log('error')});

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM