Selenium自动化中对无头浏览器的应用

2021-08-06 12:20:17 浏览数 (1)

在面试及工作中,常会被问到或要求做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

0 人点赞