zoukankan      html  css  js  c++  java
  • 【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')});

  • 相关阅读:
    crystal report 用存储过程的问题。
    新的开始—2014
    C#基础(二)——C#中的构造函数
    C#基础(一)——C#中反斜杠/n与/r的区别
    Html基础(一)
    yield关键字, default关键字, 别名关键字
    让 wpf tabcontrol 延缓初始化每个tab item content
    MVC,MVP,MVVM(补充)
    Focus scope in WPF
    Wpf ItemsControl 开启UI Virtualization 的条件
  • 原文地址:https://www.cnblogs.com/totoro-cat/p/11315500.html
Copyright © 2011-2022 走看看