干货!一文搞定无头浏览器的概念以及在selenium中的应用

这篇具有很好参考价值的文章主要介绍了干货!一文搞定无头浏览器的概念以及在selenium中的应用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

干货!一文搞定无头浏览器的概念以及在selenium中的应用

 

无头浏览器

无头浏览器,即 Headless Browser,是一种没有界面的浏览器。它拥有完整的浏览器内核,包括 JavaScript 解析引擎、渲染引擎等。与普通浏览器最大的不同是,无头浏览器执行过程中看不到运行的界面,但是我们依然可以用 GUI 测试框架的截图功能截取它执行中的页面。在这里强调一下,好多文章说无头浏览器不做渲染,其实这个说法是不准确的,如果无头浏览器不做渲染,那么怎么进行截图呢?可能有人又要说,如果无头浏览器都做渲染的话,那速度又怎么保障呢?个人观点,应该是在需要截屏的时候才进行页面元素的渲染!如果这个观点不对,欢迎留言讨论。这里总结一下浏览器如何渲染网页,简单的说浏览器的渲染机制可以分为五步:

第一步:解析html,构建DOM树

第二步:解析CSS,生成CSSOM树

第三步:合并dom树和css规则树,生成render渲染树

第四步:根据render渲染树进行布局

第五步:调用GPU对渲染树进行绘制,合成图层,显示在屏幕上

在这里就可以看出,当无头浏览器不做渲染时,速度显然会提升很多!

无头浏览器的主要应用场景

无头浏览器主要应用在: GUI 自动化测试、页面监控、网络爬虫以及没有桌面的linux系统中。在这里我们重点说一下 GUI 自动化测试,在 GUI 测试过程中,使用无头浏览器的好处主要体现在以下几个方面:

测试执行速度更快。 无头浏览器无需加载 CSS 以及渲染页面,在测试用例的执行速度上有很大的优势。

减少对测试执行的干扰。 可以减少操作系统以及其他软件(比如杀毒软件等)不可预期的弹出框,对浏览器测试的干扰。

一台机器上同时运行不同厂商的无头浏览器(无头浏览器占用内存资源,要比正常浏览器小),实现测试用例的并发执行。

无头浏览器缺点

1. 不能完全模拟真实的用户行为

2. 不便于调试(各个浏览器的开发者工具)

主流的无头浏览器概述

Chrome Headless,Chrome从59版本开始支持

Firefox Headless,Firefox从56版本开始支持

PhantomJS,使用JavaScript编写的无头浏览器,能够支持Windows, macOS, Linux

Splash,使用Python编写的无头浏览器,使用WebKit作为引擎

HtmlUnit,使用Java编写的无头浏览器,使用Rhino engine作为引擎

无头浏览器在selenium中的应用

在我们测试同学的实际工作中,大概率使用无头浏览器的场景就是通过selenium 进行自动化测试了,在这里默认同学们已经了解了selenium的安装和使用方法,所以直接上通过python实现调用无头浏览器的代码

import time
from selenium import webdriver
options = webdriver.ChromeOptions()
options.set_headless()
driver = webdriver.Chrome(chrome_options=options)
driver.get('https://www.baidu.com/')
time.sleep(3)
print(driver.page_source)
driver.close()

其实,selenium在chrome中实现headless非常的简单,只需要下面两句代码即可

options.set_headless()

driver = webdriver.Chrome(chrome_options=options)

上面的代码,实测可以正常运行!原创不易,如果文章帮到了你,劳烦点赞转发!文章来源地址https://www.toymoban.com/news/detail-411291.html

到了这里,关于干货!一文搞定无头浏览器的概念以及在selenium中的应用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于QWebEngine实现无头浏览器

    无头浏览器( Headless Browser )是一种没有图形用户界面(GUI)的浏览器。它通过在内存中渲染页面,然后将结果发送回请求它的用户或程序来实现对网页的访问,而不会在屏幕上显示网页。这种方式使得无头浏览器不仅适用于网络爬虫和测试等自动化任务,而且还能够更安全

    2024年02月09日
    浏览(53)
  • 无头浏览器puppeteer自动调用Dapp交易

    自动化调用dapp的方法一种是直接调用合约的方法进行交易,另一种是用无头浏览器通过操作dapp页面进行自动化交易。用到了puppeteer和@chainsafe/dappeteer两个库; puppeteer:无头浏览器 @chainsafe/dappeteer: 是封装好的在无头浏览器操作MataMask插件的库 以下是示例代码

    2024年02月17日
    浏览(44)
  • Linux无头浏览器的自动化测试实现

    Linux 下如何利用无头浏览器执行web自动化的用例?本文以centos 7为例,安装chrome、利用Python + conda +selenium简单演示执行自动化。 安装chrome浏览器 安装chromedriver Linux安装好Python环境-conda 设置Chrome为无头浏览模式(只在后台内存中执行、无浏览器页面) 准备测试用例 执行用例

    2024年02月15日
    浏览(48)
  • Python + Playwright 无头浏览器Chrome找不到元素

    用Python + Playwright调试时,发现不用无头浏览器(即 headless=False )代码能够运行成功,但是一用无头浏览器时(即 headless=True )就会报错,提示找不到元素。换成Firefox浏览器又不会有这个问题,有可能是因为网站有一个前段反爬虫手段。(同理,如果大家使用 playwright codege

    2024年02月16日
    浏览(50)
  • Python Headless Chrome(无头谷歌浏览器)

    在我们使用Selenium驱动ChromeDriver时,可以弹出谷歌浏览器,模拟人为操作谷歌浏览器,这就是自动化测试。虽然很厉害,但是也有一个很现实的问题,因为是要真实加载完整网页,导致效率低。在自动化测试时,我们其实只需要知道是测试完成还是未完成,至于能否看到完整

    2024年02月05日
    浏览(61)
  • selenium基本使用、无头浏览器(chrome、FireFox)、搜索标签

    这个模块:既能发请求,又能解析,还能执行js selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行 JavaScript代码的问题 selenium 会做web方向的自动化测试 appnium 会做 app方向的自动化测试 selenium 可以操作浏览器,模拟人的 行为 下载浏览器驱动

    2024年02月04日
    浏览(69)
  • Selenium 无头浏览器被知乎限制访问的解决方案

    我尝试使用如下代码爬取知乎的有关内容,出现知乎安全验证界面: 添加启动参数 在网上的许多文章中,反复提到了如下三行代码,然而我将他们加入代码后没有什么效果: JavaScript特殊全局变量 有一些文章提到,通过 WebDriver 启动的网页会存在一些特殊的 JS 变量,这些变

    2024年02月14日
    浏览(50)
  • 『python爬虫』24. selenium之无头浏览器-后台静默运行(保姆级图文)

    欢迎关注 『python爬虫』 专栏,持续更新中 欢迎关注 『python爬虫』 专栏,持续更新中 一般性的selenium会打开浏览器页面,展示图形化页面给我们看,我们都应该知道命令行式的程序肯定比这种渲染图形化界面的程序快速高效。为了一定程度上缓解selenium慢的问题,我们可以采

    2024年02月07日
    浏览(123)
  • 没想到还有这种骚操作~如何使用Golang实现无头浏览器截图?

    在Web开发中,有时需要对网页进行截图,以便进行页面预览、测试等操作。 而使用无头浏览器来实现截图功能,可以避免手动操作的繁琐和不稳定性。 这篇文章将介绍: 使用Golang进行无头浏览器的截图,轻松实现页面预览、测试和模拟用户操作。 这篇文章发完,有朋友在朋

    2024年02月05日
    浏览(52)
  • 针对于selenium的一些常规配置(防检测,无头,保留自己浏览器的登录信息等)

    在使用selenium的时候有时候会受到网站的检测导致我们的程序被迫中止,因此我们需要给selenium添加一些浏览器特征来防止被网站检测到**(1-4为防检测配置)**. 在给selenium添加参数的时候,我们可以使用add_argument selenium添加user-agent参数 去除 “Chrome正受到自动化测试软件的控制”

    2024年02月12日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包