在面试及工作中,常会被问到或要求做Selenium自动化,你在实际的Selenium自动化中使用到过无头浏览器么,今天带小伙伴们一起了解无头浏览器
在Selenium自动化中的应用。
一
无头浏览器介绍
1
什么是无头浏览器?
不显示浏览器UI的情况下运行基于UI的浏览器测试,即不需要用户界面的浏览器。
2
无头浏览器的优点?
1)无头浏览器比真正的浏览器更快。原因在于您没有启动浏览器GUI,所以您可以绕过真正的浏览器加载CSS、JavaScript、打开和呈现HTML所花费的所有时间。
2)利用无头浏览器爬网站数据,因为您只是寻找你想要的数据,所以没有必要启动一个完整的浏览器实例,开销越少,返回结果的速度就越快。
3)无头浏览器脚本监视网络应用程序的性能。
3
无头浏览器应用场景?
1)在没有界面的机器上运行测试。
2)在一台机器上模拟多个浏览器。
3)可以在无界面的服务器或CI上运行测试,减少了外界的干扰,使自动化测试更稳定。
二
无头浏览器应用
Selenium环境配置这里不单独介绍,还没安装的小伙伴可以阅读历史文章:
selenium自动化测试-1.selenium介绍及环境安装。(戳蓝色字即可跳转)
1
PhantomJS
1) PhantomJS介绍
PhantomJS是一个无界面的、可脚本编程的WebKit浏览器引擎,其快速,原生支持各种Web标准:DOM 处理, CSS 选择器, JSON, Canvas, 和 SVG。
需要注意的是,PhantomJS已经停止更新,但本着扩展知识的原则,还是了解一下。
2) PhantomJS下载安装
① 官方下载传送门:
代码语言:javascript复制# 公众号:ITester软件测试小栈
https://phantomjs.org/download.html
根据自己的操作系统,下载相应的包。
② 下载完成后解压到指定目录即可。
3) PhantomJS应用
编写PhantomJS应用的例子:
运行结果如下:
运行过程中无界面的,但从打印的结果我们可以看出运行的过程是成功的。红色的报错,是因为PhantomJS不再更新,提醒我们使用 Chrome or Firefox的无头模式替代。
2
Chrome无头模式
PhantomJS不再更新,我们当然得拥抱新技术,接下来介绍Chrome无头浏览器的使用。
1)options模块源码
要使用chrome无头模式,我们就先导入options模块。
进入options模块,查看源码:
源码再往下翻,我们看到add_argument方法。对,这就是我们在chrome无头模式中需要用到的方法。
源码继续往下翻,发现无头模式的代码(截取了部门源码)。
当然还有很多chrome浏览器的options参数,可以翻阅源码或官方网站文档了解。
2)Chrome无头浏览器实例
了解源码之后,我们写代码so easy了,接下来直接上代码。
运行结果如下:
运行时是无界面的,从结果看,运行过程也是正确的。
当然,Firefox无头浏览器也可以实现,因为步骤差不多,在此不再介绍,感兴趣的伙伴们快去动手试试吧。
以上
That‘s all