码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【测试开发】node.js下使用 puppeteer 构建截图方案(2/2)


    node.js下使用 puppeteer 构建截图方案

    author: jwensh
    date: 2022.11.05
    源码: https://github.com/gitjayzhen/tool-web-screenshot
    如果使用 python:传送门 python pyppeteer

    文章目录

    • node.js下使用 puppeteer 构建截图方案
      • 1. 脚本实现
      • 2. 使用 Node.js 在常规测试中
        • 2.1 Instatll Node.js and npm in window or linux
        • 2.2 How to Learn Node.js
        • 2.3 使用node来完成日常的测试需要

    1. 脚本实现

    • Css selecto的调用方式

      node spec-selector.js -t ios  -m css -k div%5bid*%3d%22sogou_vr_70019705%22%5d -u http%3a%2f%2f10.144.13.224%2fweb%2fsearchList.jsp%3fkeyword%3d%25E6%25B8%25B8%25E8%25AE%25B0%26pid%3d -n jayzhen
      
      • 1
      node spec-selector.js –t android –m css –k div%5bid*%3d%22sogou_vr_30010097%22%5d -u https%3a%2f%2fwap.sogou.com%2fweb%2fsearchList.jsp%3fs_from%3dpcsearch%26keyword%3diccup -n jwensh
      
      • 1
    • PC 卡片的调用方式:

      node spec-selector.js -t pc -m uncss -k sogou_vr_30010097  -u https%3a%2f%2fwww.sogou.com%2fweb%3fquery%3diccup -n jwensh
      
      • 1

    参数说明(主用5个参数):
    -t:指的是浏览器访问的方式ios、android、pc(小写,不用引号包裹);
    -m:指定-k内容的定位方式是css selector还是非css selector;
    -k:元素定位的值(数据库读取出来的状态下,再一次url_encode,避免特殊字符导致命令行解析出错);
    -u:访问的url(数据库读取出来的状态下,再一次url_encode,避免特殊字符导致命令行解析出错);
    -n:截图后的文件命名(只用写名字即可,后缀无需添加,也可指定路径,如: …/path/jwensh, jwensh是截图的文件名)

    命令参数设置了强相关检验,如果没有都传就不执行截图操作;

    注意:

    1. -m 参数与-k的对应,按照约定 -m 为uncss的时候,-k是pc的vrid,截图规则是找到该元素的爷爷层级元素,进行截图,这里querySelector只取用第一个元素;

    1. -m css的时候需要时一个完整的css selector的内容,如:div[id*="sogou_vr_30010097"]

    2. 关于脚本执行结果标记:

      • 0 正常
      • 1 页面打不开,超时等
      • 2 我的python部分执行异常 比如puppeteer崩了
      • 3 js执行整体出错,或者是命令行参数异常
      • 4 页面无法正常解析,或者截图失败等

    2. 使用 Node.js 在常规测试中

    2.1 Instatll Node.js and npm in window or linux

    • 可以参考 linux安装pupputeer示例

    注意

    • 安装要区别全局和非全局之分
    • 要了解安装 –save和–save-dev的区别
    • 要了解如何卸载多余的插件
    • 如何使用package.josn文件组织项目内容

    2.2 How to Learn Node.js

    • Node.js v10.16.3 Documentation (查询基础api使用方式)

    • MDN web doc (最新的js使用方案)

    • ECMAScript 6 入门 (知道怎么写)

    • npm 插件查找 (需要什么去找)

    2.3 使用node来完成日常的测试需要

    • 使用cypress来完成UI自动化测试
    • 使用puppeteer来完成UI检测和截图
    • 使用postman来完成接口测试的断言
  • 相关阅读:
    MyBatis Binding
    网络安全(黑客)从零开始的自学指南(第一章)
    专利申请流程,申请专利去哪
    C#中的委托
    Docker compose
    858. Prim算法求最小生成树
    C++:list?自己模拟实现!
    齐岳定制:荧光素标记纤维五糖Cellopentaose;FITC-Cellopentaose;FITC-纤维五糖
    抽象类和抽象方法
    QT采用共享内存方式实现进程间通信
  • 原文地址:https://blog.csdn.net/u013948858/article/details/127701771
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号