1.当咱们须要获取元素内的值,与实际值作对比的时候,验证页面正确性;html
2.当咱们获取某个元素内的文本值,须要拿这个值图填补另外一个输入框的时候;chrome
<a href="#" onclick="register();return false">注册</a>
看一下这段html 代码,我如今想获得【注册】,怎么办呢?咱们能够参考puppeteer 给个人api 依葫芦画瓢 ,使用el => el.innerHTML 获取内部html 值api
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')});