Web自动化,Selenium和无头浏览器更配呦

中元节快到了,没见过无头女shi,总要见见无头家族的她吧!

无头浏览器是何方神圣?

通常,我们了解一样事物可以从三个维度去探索,是什么,为什么,怎么做?

何谓无头浏览器

从鸟语维基上我们可以了解到如下:

Headless browsers provide automated control of a web page in an environment similar to popular web browsers, but are executed via a command-line interface or using network communication. They are particularly useful for testing web pages as they are able to render and understand HTML the same way a browser would, including styling elements such as page layout, colour, font selection and execution of JavaScript and AJAX which are usually not available when using other testing methods.

翻译成人话就是:无头浏览器即没有GUI的浏览器,但能像普通浏览器一样可以呈现页面元素,包括样式、页面布局、颜色,巴拉巴拉等等其他,只是我们看不见,就像无头女shi。想想就很诡异,逃~

无头浏览器又有哪些呢?

  • Chrome
  • Firefox
  • PhantomJS 已不再维护
  • HtmlUnit

etc.

你没看错,Chrome还有无头模式,版本狂魔狠起来连自己的头都砍。

为什么要捣鼓无头浏览器

从鸟语维基和谷歌可以了解到:

  • 为了在现代浏览器上做自动化测试
  • 网页截图
  • 爬虫
  • DDOS

etc.

如何使用无头浏览器

下述无头浏览器均代指为Chrome

详情参见–>Getting Started with Headless Chrome

自动化测试中如何使用无头浏览器

  1. Selenium中的使用

    详情参见–>Selenium Github Wiki

  2. Seldom中的使用

    博主选用这个Selenium的二次封装的库作为演示主要有两个原因:

    • 这个库比官方库好用
    • 这个库比官方库好用

      项目地址(虫师大佬的项目):Seldom

      首先根据项目文档创建测试工程,开启无头浏览器模式,只需要添加一个参数

      接着直接运行即可,具体执行的操作则是在浏览器中打开百度,搜索Seldom并验证,使用无头浏览器的效果见下面的视频。

      可以看到,在整个执行测试的过程中,均没有浏览器的身影,可真是无头啊!

      博主在断言处,预期值给了一个错误值,即使在浏览器没有打开的情况下,报告中也能对报错的部分进行截图。

      普通浏览器正常执行测试的流程见如下视频。我们看到,期间Seldom会打开浏览器并执行相关操作。

无头浏览器的优势

  • 占用资源少
  • 耗时少
  • 方便容器化集成
圈住圈玖酱 wechat
♉微信扫码关注公众号,有好玩的呦♉
☛看官,求打赏☚