selenium+chrome的安装和使用

Web的辅助工具,主流的有selenium、phantomjs以及puppeteer这三者,本节课程就来详细的介绍一下它们的优势和短板。

1. Selenium

Selenium是一款开源的自动化测试工具,很多编程语言,Python语言也支持。而且支持非常多的浏览器,例如Chrome、Firefox等。

Selenium 测试直接在浏览器中运行,就像真实用户所做的一样。Selenium 测试可以在 Windows、Linux 和 MacOS上的 Chrome和 Firefox 中运行。其他测试工具都不能覆盖如此多的平台。使用 Selenium 和在浏览器中运行测试还有很多其他好处。

Selenium完全开源,对商业用户也没有任何限制,支持分布式,拥有成熟的社区与学习文档

优势:
  • Selenium开源,文档多,长期维护更新。
  • 跨平台,支持Windows、MacOS、Linux
  • Selenium直接驱动浏览器,支持chrome、firefox等大部分浏览器。
  • Selenium开源,操作简单,轻松实现复杂操作。
  • 支持Web移动网页的测试。
劣势:
  • 安装略麻烦,需要Selenium库、浏览器【例如Chrome】以及浏览器的驱动程序。
  • 加载慢,因为是驱动浏览器,所以会加载页面内容,例如图片、字体、静态资源css js文件等。
  • Selenium驱动的浏览器特征明显,爬虫使用Selenium容易被封。

2. phantomjs

PhantomJS是一个基于webkit的JavaScript API。

它使用QtWebKit作为它核心浏览器的功能,使用webkit来编译解释执行JavaScript代码。任何你可以在基于webkit浏览器做的事情,它都能做到。

它不仅是个隐形的浏览器,提供了诸如CSS选择器、支持Web标准、DOM操作、JSON、HTML5、Canvas、SVG等,同时也提供了处理文件I/O的操作,从而使你可以向操作系统读写文件等。

PhantomJS的用处可谓非常广泛,诸如网络监测、网页截屏、无需浏览器的 Web 测试、页面访问自动化等。

优势:
  • 没有界面,网站加载到内存并执行页面上的JavaScript,所以运行起来比完整的浏览器更高效。
劣势:
  • 只支持JS语言
  • 不支持flash,没法处理视频网站的测试。
  • 暴露的底层api太少。
  • 目前已经停止开发。

3. Puppeteer

Puppeteer 是 Chrome 开发团队在 2017 年发布的一个 Node.js 包,用来模拟 Chrome 浏览器的运行。

Puppeteer 是 Node.js 工具引擎,提供了一系列 API,通过 Chrome DevTools Protocol 协议控制 Chromium/Chrome 浏览器的行为。

默认情况下是以 headless 启动 Chrome 的,也可以通过参数控制启动有界面的 Chrome。

Puppeteer 默认绑定最新的 Chromium 版本,使用时自动下载,也可以自己设置不同版本的绑定。

优势:
  • 在无界面的环境中运行 Chrome。
  • 通过命令行或者程序语言操作 Chrome。
  • 自身是nodejs库,所以支持js语法。
  • python有库支持Puppeteer,库名Pyppeteer,本质是Puppeteer的python语法接口
劣势:
  • puppeteer本质是通过开发者接口操作chromium浏览器。
  • chrome虽然优秀但同样问题不少,puppeteer也就跟着会有些小毛病。
  • 国内安装puppeteer,由于自动下载chromium的问题,很容易出错。

版权声明:
作者:hyzsj0106
链接:https://www.cxywy.com/?p=712
来源:程序员无垠
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
< <上一篇
下一篇>>
文章目录
关闭
目 录