Selenium 设计的目的是为了自动化的操作浏览器,完成自动化 Web 测试任务。当然,Selenium 的能力不止如此,所有浏览器自动化的工作都可以考虑使用 Selenium 完成。Selenium 受大部分浏览器厂家支持如 chrome、firefox,并且在一些平台成为浏览器原生的一部分。Selenium 分为 WebDriver 和 IDE 两部分,如果想创建自动化或测试任务你需要使用 WebDriver,如果目的要记录某个 feature 或者 bug 的重现路径那么需要使用 IDE,本文主要讲述 WebDriver。
首先 Selenium 从实现原理上可以看做是一个驱动程序,为不同厂商封装了统一接口,接口下调用了不同厂商的浏览器实现,从适配器模式的角度理解
Selenium 为 adptor,chromedriver 即为其中的一个 Adaptee, 比较值得一提的是 PhantomJS,PhantomJS 是一个没有 GUI 的浏览器,能够运行 JavaScript 脚本。同时 Selenium 支持 PhantomJS 做为 Adaptee 前端,那么我们便可以结合 PhantomJS 与 Selenium 模拟抓取一些 js 代码比较多的网页,为了直观效果,本文使用 Chrome 作为前端。Selenium 支持多种开发语言,如 Java、C、Ruby 等,下文以 python 为例介绍 Selenium 的一些简单用法。
Selenium 通过 chromedriver 支持对