3

Headless Brower | news view

 3 years ago
source link: https://zsqk.github.io/news/2020-05-11-headless-brower.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

news view

Headless Brower

Headless Brower 直译为中文是无头浏览器。其中的无头是指没有图形界面的意思。也就是通过代码来控制与浏览器的交互。比如捕获页面内容加载完成事件,执行按钮的点击事件,执行键盘输入,表单提交等。

Headless Chrome

Chrome 59 版本开始,Chrome 浏览器加入了 Headless 运行模式。除了没有图形界面以外,在 Headless 模式下可以实现 Chrome 浏览器的所有功能。

此外,Chrome 团队开发了 Chrome 开发工具协议,简称 CDP(Chrome DevTools Protocol)。该协议提供了很多有用的功能 API,比如在 DOM,调试器和网络方面等。Chrome 浏览器中的开发者工具正是使用了该协议实现其功能。

Chrome 开发工具协议使得 Headless Chrome 的功能更加强大。

Headless Chrome 库

一些第三方代码库提供了更加方便的使用 Headless Chrome 功能的方法。

Chromedp 是使用 Golang 语言实现的一种更加简单快速的方式驱动支持 Chrome DevTools 协议浏览器的方式,无需外部依赖。

Selenium 是用于测试 Web 应用程序用户界面的常用框架。同时也支持所有基于 Web 的管理任务自动化。支持的语言有 Java,Python,C#,Ruby,Javascript 和 Kotlin。

puppeteer 是使用 Node 语言实现的 Web 应用自动化测试工具。是 Google Chrome 团队官方的 Headless Chrome 工具。

Headless Chrome 库应用场景

  • 页面自动化测试
    可以通过 Headless Chrome 直接测试页面中的内容和交互。而不仅限于代码测试。
  • 爬虫
    对于某些不会直接显示在 HTML 节点中的内容,例如页面成功加载后再通过 AJAX 与后端服务器请求的内容或单页应用,可以使用 Headless Chrome 来获取。
  • 保存页面副本
    可以通过代码自动将需要的页面保存为图片或 PDF 文件

总之,Chrome 浏览器能够实现的功能在 Headless 模式中都可以实现。加入程序使得我们可以实现更多更强大的功能。

- DevTools

- Chrome

This site is open source. Improve this page.

Recommend

  • 8

    news view 看 GitHub 很少会看个人页. 知道 Arctic Code Vault Contributor 这件事还是在社区中. 社区中大多数人都有, 我也不例...

  • 5

    news view 多设备开发时, 代码如何同步, 常用偏好如何同步, 怎么方便地进行切换. 这是个课题. 我大概有两种思路: 远程开发机. 编辑器同步设置. ...

  • 4
    • zsqk.github.io 3 years ago
    • Cache

    Deno | news view

    news view DENO 一个 JavaScript/TypeScript 的运行时 deno在5月13日发布1.0版本,经过简单的了解做一个简单的介绍。 Deno简介 deno官网对deno的定义如题,是一...

  • 13
    • zsqk.github.io 3 years ago
    • Cache

    HTTP/3 | news view

    news view HTTP3 是 HTTP 协议的最新版本。从诞生之初,HTTP 就是交换超文本文档的首选应用层协议。 多年来,为了跟上互联网的发展,以及 WWW 上交换的内容种类增加,HTTP 进行了几次重大升...

  • 3
    • zsqk.github.io 3 years ago
    • Cache

    Js Function | news view

    news view JS的几个常用方法 如果数组所有元素满足函数条件,则返回true。调用时,如果省略第二个参数,则默认传递布尔值。 const all = (arr, fn = B...

  • 7
    • zsqk.github.io 3 years ago
    • Cache

    Node Npm Cnpm Yarn Pnpm | news view

    news view node依赖管理 Node的依赖管理工具 使用一个名为package.json的文件,用户可以通过npm install –save命令把项目里所有...

  • 14
    • zsqk.github.io 3 years ago
    • Cache

    Next 50 Years | news view

    news view 《未来 50 年》读书总结 《未来 50 年》是一部文集,许多前沿领域的科学家们展望未来 50 年的科学成就和可能有所突破的技术领域。本书正是他们的思考汇聚而成。...

  • 62
    • zsqk.github.io 3 years ago
    • Cache

    closure | news view

    news view 函数和对其周围状态(lexical environment,词法环境)的引用捆绑在一起构成闭包(closure)。也就是说,闭包可以让你从内部函数访问外部函数作用域。在 JavaScript 中,每当函...

  • 6
    • zsqk.github.io 3 years ago
    • Cache

    Node | news view

    news view Node.js事件 什么是事件轮询 事件循环是 Node.js 处理非阻塞 I/O 操作的机制——尽管 JavaScript 是单线程处理的——当有可能的时候,它们会把操作转移到系...

  • 5
    • zsqk.github.io 3 years ago
    • Cache

    Cloudwatch | news view

    news view 什么是CloudWatch Amazon CloudWatch 实时监控您的 Amazon Web Services (AWS) 资源以及您在 AWS 中运行的应用程序。 可以使用 CloudWatch 收集和跟踪指标,这些指标是...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK