《老鸟python 系列》视频上线了,全网稀缺资源,涵盖python人工智能教程,爬虫教程,web教程,数据分析教程以及界面库和服务器教程,以及各个方向的主流实用项目,手把手带你从零开始进阶高手之路!点击 链接 查看详情

无头浏览器

阅读:173345560    分享到

我们在通过 selenium 运行自动化测试时,必须要启动浏览器,浏览器的启动与关闭必然会影响执行效率,而且还会干扰你做其它事情(本机运行的话)。

那能不能把自动化测试的运行放在后台?当然可以!

  • htmlunit 项目可以模拟浏览器运行,是一个没有界面的浏览器,运行速度快。
  • PhantomJS 是一个基于 webkit 的 JavaScript API。它使用 QtWebKit 作为它核心浏览器的功能,使用 webkit 来编译解释执行 JavaScript 代码。任何你可以在基于 webkit 浏览器做的事情,它都能做到。
  • Chrome-headless 模式,Google 自己出的无头浏览器模式。

htmlunit 在Selenium 下面,我都没跑通过一个 baidu 的 demo, 因为它不打开 UI 界面,所以,你也不知道它后台是如何渲染页面的。 弃之!

PhantomJS 非常不错,因为是使用的 QtWebKit 浏览器内核渲染页面,基本可以和真正浏览器保持一致。

Chrome-headless 模式, Google 针对 Chrome 浏览器新增加的一种模式,可以让你不打开UI界面的情况下使用 Chrome 浏览器,所以运行效果与 Chrome 保持完美一致。PhantomJS作者说,你这么搞我失业了啊!

和我们平时写的可视化操控浏览器代码,只需要多加上三句代码,即可变成无头浏览器。

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--headless')
driver = webdriver.Chrome(chrome_options=chrome_options)

...

如果以上内容对您有帮助,请老板用微信扫一下赞赏码,赞赏后加微信号 birdpython 领取免费视频。


登录后评论

user_image
王若枫
2020年1月7日 03:58 回复

想请教下有没做过性能测试,8G电脑能同时多开多少个独立页面。


user_image
吉人
2019年7月9日 11:17 回复

headless chrome在大规模爬取数据的时候,还会存在内存爆炸的问题啊,怎么看你这篇文章的意思,headless chrome效果还要比phantomjs好?


user_image
nekocode
2018年8月20日 05:41 回复

正好想学习动态网页爬虫


user_image
砍掉重练
2018年8月19日 12:01 回复

想知道他有什么缺点?


user_image
一个人
2018年6月3日 18:36 回复

这样在Linux也能用chrome了吧