无头浏览器介绍和对比

无头浏览器广泛用于自动化测试,

  • PhantomJS浏览器官方已停止维护.

  • Playwright 原生支持 Python,而且支持 Google Chrome/Firefox/Safari 三大浏览器

  • puppeteer是由谷歌的Chrome团队在维护.
    pyppeteer 是非官方 Python 版本的 Puppeteer 库,浏览器自动化库,由日本工程师开发。

参考:https://www.jianshu.com/p/bb6a5aae82f5

selenium

Selenium是最广泛使用的开源Web UI(用户界面)自动化测试套件之一。它最初由杰森·哈金斯(Jason Huggins)于2004年开发,作为Thought Works的内部工具。Selenium支持跨不同浏览器,平台和编程语言的自动化。

优点

支持多款主流浏览器,提供了功能丰富的API 接口

缺点

  • 速度太慢、对版本配置要求严苛,最麻烦是经常要更新对应的驱动。

  • 保护机制不允许跨域 cookies 保存,登录的时候必须先打开网页然后后加载 cookies 再刷新的方式很不友好

Puppeteer

Puppeteer 是 Google 基于 Node.js 开发的工具,调用 Chrome 的 API,通过 JavaScript 代码来操纵 Chrome 完成一些操作,用于网络爬虫、Web 程序自动测试等,其 API 极其完善,功能非常强大。

pyppeteer

Pyppeteer 是一款非常高效的 web 自动化测试工具,是 Puppeteer 的 Python 版本。

pyppeteer 使用了 Python 异步协程库 asyncio,可整合 Scrapy 进行分布式爬虫。

优点
  • 安装配置的便利性和运行效率方面都要远胜 selenium
  • 支持 asyncio 异步协程,对于并发比较友好
缺点
  • 编程语言只能用javascript
  • 支持的浏览器比较单一,只能用chromium
  • 是第三方的,好久没有更新了,bug 也不少,Pyppeteer 所依赖的 Puppeteer 的原生 JS 版本,本身就很不稳定
使用

Pyppeteer 接受字典和关键字

playwright

简介

Microsoft 于2020 年 1 月 31 日发布Playwright的第一个公共版本时。

playwright-python,是一款基于python的自动化测试工具,可以通过录制功能自动生成测试脚本;
Playwright是一个强大的Python库,仅用一个API即可自动执行Chromium、Firefox、WebKit(Safari )等主流浏览器自动化操作,并同时支持以无头模式、有头模式运行;

优点

  • 跨浏览器,支持Chrome、Firefox、WebKit;
  • 跨系统,支持Windows、Mac、Linux;
  • 跨语言,支持Python、Java、JS;
  • 可用于移动端。

自动等待元素加载

selenium playwright puppeteer性能比较

在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
无头浏览器指的是没有图形界面的浏览器,可以在后台运行并进行网页自动化操作。在Node.js中,可以使用Puppeteer库来实现无头浏览器功能。 Puppeteer是一个由Google开发的用于控制Chrome或Chromium浏览器的Node.js库。它提供了一组API,可以模拟用户在浏览器中进行的各种操作,例如页面导航、表单提交、截图等。 要使用Puppeteer,首先需要安装它。可以通过运行以下命令来安装: ``` npm install puppeteer ``` 安装完成后,可以使用以下代码来创建一个基本的无头浏览器实例: ```javascript const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch(); const page = await browser.newPage(); // 在这里执行一些操作,如页面导航、表单提交等 await browser.close(); })(); ``` 在这个例子中,我们使用`puppeteer.launch()`方法来启动一个浏览器实例,并使用`browser.newPage()`方法创建一个新的页面。然后,可以在`page`对象上执行各种操作。 例如,可以使用`page.goto(url)`方法导航到指定的网页,使用`page.type(selector, text)`方法填写表单字段,使用`page.click(selector)`方法点击页面元素,使用`page.screenshot(options)`方法截取页面截图等等。 最后,使用`browser.close()`方法关闭浏览器实例。 这只是Puppeteer的一些基本用法,还有更多高级功能可以探索。你可以查阅Puppeteer的官方文档以获取更详细的信息和示例代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值