专注于武汉中小企业服务解决方案提供商

电脑维修、布线、安防监控、数据恢复、采购、回收

所属分类 > 家电维修 > 正文

Headless Chrome 入门

编辑:rootadmin

整理分享Headless Chrome 入门 ,希望有所帮助,仅作参考,欢迎阅读内容。

内容相关其他词:,内容如对您有帮助,希望把内容链接给更多的朋友!

在Chrome 中开始搭载HeadlessChrome。这是一种在无需显示的环境下运行Chrome浏览器的方式。从本质上来说,就是不用chrome浏览器来运行Chrome的功能!它将Chromium和Blink渲染引擎提供的所有现代Web平台的功能都带入了命令行。--EricBidelman本文导航-摘要……%-开启无需显示headless模式(命令行界面)……%-命令行的功能……%-打印DOM……%-创建一个PDF……%-截图……%-REPL模式(read-eval-printloop)……%-在没有浏览器界面的情况下调试Chrome……%-运用编程模式(Node)……%-Puppeteer库API……%-CRI库……%-检索有关页面的信息……%-运用Selenium、WebDriver和ChromeDriver……%-运用ChromeDriver……%-运用WebDriverIO……%-更多资源……%-常见问题……%编译自:  在Chrome 中开始搭载HeadlessChrome[1]。这是一种在无需显示headless的环境下运行Chrome浏览器的方式。从本质上来说,就是不用chrome浏览器来运行Chrome的功能!它将Chromium和Blink渲染引擎提供的所有现代Web平台的功能都带入了命令行。它有什么用?  无需显示headless的浏览器对于自动化测验和不需要可视化UI界面的服务器环境是一个很好的工具。例如,你可能需要对真实的网页运行一些测验,创建一个PDF,或者只是检查浏览器如何呈现URL。注意:Mac和Linux上的Chrome都可以运行无需显示模式。对Win的支持[2]将在Chrome中提供。要检查你运用的Chrome版本,请在浏览器中打开  开启无需显示headless模式最简单的方式是从命令行打开Chrome二进制文件。如果你已经安装了Chrome以上的版本,请运用--headless标志启动Chrome:chrome\--headless\#RunsChromeinheadles*ode.--disable-gpu\#Temporarilyneededfornow.--remote-debugging-port=  chrome二进制文件应该指向你安装Chrome的位置。确切的位置会因平台不一样而不一样。当前我在Mac上*作,所以我为安装的每个版本的Chrome都创建了方便运用的别名。  如果您运用Chrome的稳定版,并且无法获得测验版,我建议您运用chrome-canary版本:aliaschrome="/Applications/Google\Chrome.app/Contents/MacOS/Google\Chrome"aliaschrome-canary="/Applications/Google\Chrome\Canary.app/Contents/MacOS/Google\Chrome\Canary"aliaschromium="/Applications/Chromium.app/Contents/MacOS/Chromium"  在这里[3]下载ChromeCannary。命令行的功能  在某些情况下,你可能不需要以脚本编程的方式[4]*作HeadlessChrome。可以运用一些有用的命令行标志[5]来执行常见的任务。打印DOM--dump-dom标志将打印document.body.innerHTML到标准输出:chrome--headless--disable-gpu--dump-  要捕获页面的屏幕截图,请运用--screenshot标志:chrome--headless--disable-gpu--  运用--screenshot标志运行HeadlessChrome将在当前工作目录中生成一个名为screenshot.png的文件。如果你正在寻求整个页面的截图,那么会涉及到很多事情。来自DavidSchnurr的一篇很棒的博文已经介绍了这一内容。请查看运用headlessChrome作为自动截屏工具[6]。REPL模式(read-eval-printloop)  --repl标志可以使HeadlessChrome运行在一个你可以运用浏览器评估JS表达式的模式下。执行下面的命令:$chrome--headless--disable-gpu--  当你运用--remote-debugging-port=运行Chrome时,它会启动一个支持DevTools协议[7]的实例。该协议用于与Chrome进行通信,并且驱动HeadlessChrome浏览器实例。它也是一个相似Sublime、VSCode和Node的工具,可用于使用程序的远程调试。#协同效应  由于你没有浏览器用户界面可用来查看网页,请在另一个浏览器中输入  从这里,你就可以像往常一样运用熟悉的DevTools来检查、调试和调整页面了。如果你以编程方式运用HeadlessChrome,这个页面也是一个功能强大的调试工具,用于查看所有通过网络与浏览器交互的原始DevTools协议命令。运用编程模式(Node)Puppeteer库API  Puppeteer[8]是一个由Chrome团队开发的Node库。它提供了一个高层次的API来控制无需显示版(或完全版)的Chrome。它与其他自动化测验库,如Phantom和NightmareJS相相似,但是只适用于最新版本的Chrome。  除此之外,Puppeteer还可用于轻松截取屏幕截图,创建PDF,页面间导航以及获得有关这些页面的信息。如果你想快速地自动化进行浏览器测验,我建议运用该库。它隐藏了DevTools协议的复杂性,并可以处理诸如启动Chrome调试实例等繁冗的任务。安装:yarnaddpuppeteer例子-打印用户代理:constpuppeteer=require('puppeteer');(async()=>{constbrowser=awaitpuppeteer.launch();console.log(awaitbrowser.version());browser.close();})();例子-获得页面的屏幕截图:constpuppeteer=require('puppeteer');(async()=>{constbrowser=awaitpuppeteer.launch();constpage=awaitbrowser.newPage();awaitpage.goto('  查看Puppeteer的文档[9],了解完整API的更多信息。CRI库  chrome-remote-interface[]是一个比PuppeteerAPI更低层次的库。如果你想要更接近原始信息和更直接地运用DevTools协议[]的话,我推荐运用它。启动Chrome  chrome-remote-interface不会为你启动Chrome,所以你要自己启动它。  在前面的CLI章节中,我们运用--headless--remote-debugging-port=手动启动了Chrome[]。但是,要想做到完全自动化测验,你可能希望从你的使用程序中启动Chrome。  其中一种方式是运用child_process:constexecFile=require('child_process').execFile;functionlaunchHeadlessChrome(*,callback){//AssumingMacOSx.constCHROME='/Applications/Google\Chrome.app/Contents/MacOS/Google\Chrome';execFile(CHROME,['--headless','--disable-gpu','--remote-debugging-port=',*],callback);}launchHeadlessChrome('  但是如果你想要在多个平台上运行可移植的搞定方案,事情会变得很棘手。请注意Chrome的硬编码路径:运用ChromeLauncher  Lighthouse[]是一个令人称奇的网络使用的质量测验工具。Lighthouse内部开发了一个强大的用于启动Chrome的模块,现在已经被提取出来单独运用。chrome-launcherNPM模块[]可以找到Chrome的安装位置,设置调试实例,启动浏览器和在程序运行完之后将其*。它最好的一点是可以跨平台工作,感谢Node!  默认情况下,chrome-launcher会尝试启动ChromeCanary(如果已经安装),但是你也可以更改它,手动选择运用的Chrome版本。要想运用它,首先从npm安装:yarnaddchrome-launcher  例子-运用chrome-launcher启动HeadlessChrome:constchromeLauncher=require('chrome-launcher');//Optional:setloggingleveloflaunchertoseeitsoutput.//Installitusing:yarnaddlighthouse-logger//constlog=require('lighthouse-logger');//log.setLevel('*');/***LaunchesadebugginginstanceofChrome.*@param{boolean=}headlessTrue(default)launchesChromeinheadles*ode.*FalselaunchesafullversionofChrome.*@return{Promise}*/functionlaunchChrome(headless=true){returnchromeLauncher.launch({//port:,//Uncommenttoforceaspecificportofyourchoice.chromeFlags:['--window-size=,','--disable-gpu',headless?'--headless':'']});}launchChrome().then(chrome=>{console.log(`Chromedebuggableonport:${chrome.port}`);...//chrome.kill();});  运行这个脚本没有做太多的事情,但你应该能在任务管理器中看到启动了一个Chrome的实例,它加载了页面about:blank。记住,它不会有任何的浏览器界面,我们是无需显示的。  为了控制浏览器,我们需要DevTools协议!检索有关页面的信息警告:DevTools协议可以做一些有趣的事情,但是起初可能有点令人生畏。我建议先花点时间浏览DevTools协议查看器[]。然后,转到chrome-remote-interface的API文档,看看它是如何包装原始协议的。我们来安装该库:yarnaddchrome-remote-interface例子-打印用户代理:constCDP=require('chrome-remote-interface');...launchChrome().then(asyncchrome=>{constversion=awaitCDP.Version({port:chrome.port});console.log(version['User-Agent']);});  结果是相似这样的东西:HeadlessChrome/.0..0。例子-检查网站是否有Web使用程序清单[]:constCDP=require('chrome-remote-interface');...(asyncfunction(){constchrome=awaitlaunchChrome();constprotocol=awaitCDP({port:chrome.port});//ExtracttheDevToolsprotocoldomainsweneedandenablethem.//SeeAPIdocs:

标签: Headless Chrome 入门


本文链接地址:https://www.iopcc.com/jiadian/37597.html转载请保留说明!

上一篇:查看手机已连接的wifi密码的简单方法 (查看手机已连接的wifi历史纪录)

下一篇:个人对Go的错误处理有哪些不满,我是如何处理的方法 (个人对工作错误的态度与认识)

推荐内容:

单相电机原理分类,单相交流电机原理图 (单相电机工作原理动画演示)

单相电机原理分类,单相交流电机原理图 (单相电机工作原理动画演示)

机起动方式,单相交流电机原理图,电动机静止与启动时离心开关的功能说明。V交流单相电机起动方式第一种,分相 ...

用VIPER12A代换PN8124F修复美的超薄电磁炉 (pn8034用viper12a什么代换)

用VIPER12A代换PN8124F修复美的超薄电磁炉 (pn8034用viper12a什么代换)

任何反应。拆机检查,保险管未熔断。在路检测整流桥堆引脚间正反向阻值正常,5uF电容、谐振电容、抗干扰电容均 ...

松下NN-652型微波炉开机后在自动烹调作业下10秒钟后显示“88:88”字样 (松下nd21)

松下NN-652型微波炉开机后在自动烹调作业下10秒钟后显示“88:88”字样 (松下nd21)

电路损坏,致使蒸气传感器线圈断路,更换蒸气传感器后【故障】排除。友情提示,文章来自互联网收集,欢迎你到 ...

外媒:韩国将推出5G云计算商业机器人 (韩国将要消失)

外媒:韩国将推出5G云计算商业机器人 (韩国将要消失)

elecom)和LG电子(LGElectronics)宣告,计划联合开发与5G云平台相连的商业机器人。5G机器人将被用于检测异常情况,并 ...

高通首发第六代手机WiFi芯片:网速翻番,为骁龙855铺路 (高通6g)

高通首发第六代手机WiFi芯片:网速翻番,为骁龙855铺路 (高通6g)

品准备的.axWi-Fi搞定方案AtherosWCN。在高通首发第六代定位器WiFi芯片WCN上,首次实现了对2.4GHz和5GHz的整合,5GHz的最高 ...

分享*依莱克斯K【空调】KFR-72LW/BSK【空调】维修故障代码 (依莱克斯官网)

分享*依莱克斯K【空调】KFR-72LW/BSK【空调】维修故障代码 (依莱克斯官网)

故障】;δ1过流;δ2防冷风【故障】;δ3相序错;δ4缺相、断相;δ5低压保护;δ6高压保护;δ7室外传感器【故障】 ...

Win10相机麦克风权限被关闭如何维修?相机麦克风权限被关闭怎么修理 (电脑相机麦克风怎么打开)

Win10相机麦克风权限被关闭如何维修?相机麦克风权限被关闭怎么修理 (电脑相机麦克风怎么打开)

到一些权限被关闭的情况,例如相机麦克风权限被关闭,而很多用户不清楚要如何去解决这个问题,其实*作起来还是 ...

Win11如何提升磁盘性能?Win11系统开启磁盘高性能的方法 (win11 提升)

Win11如何提升磁盘性能?Win11系统开启磁盘高性能的方法 (win11 提升)

盘性能越高,电脑进行读写的速度越快,运行*越不卡、开机也更快。本期教程小编就带大家来了解Win*开启磁盘高性能 ...

win10隐藏任务栏图标教程 (win10隐藏任务栏快捷键)

win10隐藏任务栏图标教程 (win10隐藏任务栏快捷键)

致右下角的任务栏图标太多影响观感,那么win如何隐藏任务栏图标呢,其实只要打开任务栏设置就可以了。win如何隐 ...

海信电视机指示灯亮不开机检修思路一例 (海信电视机指示灯亮一下就暗了)

海信电视机指示灯亮不开机检修思路一例 (海信电视机指示灯亮一下就暗了)

开机,打开后盖,测量V电压正常,测量行驱动电压为2V很低,这样低的电压都是高压包短路的表现,因为处理器检测 ...

Copyright © 2023 武汉电脑维修 All Rights Reserved.

鄂ICP备2023003026号

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢!邮箱: opceo@qq.com