webdriver简介
webdriver,又称selenium 2.0,是selenium公司推出的一款自动化测试利器。它支持市场上几乎所有的浏览器,ie,firefox,chrome,safari等,还支持移动终端设备。
由于最近的工作涉及webdriver,所以就从google code上拉下了所有源代码,对firefox模块的实现进行了学习和探索。
webdriver架构
webdriver采用了典型的"C-S"结构,对firefox模块来说,client端是firefox driver,server端是webdriver自己开发的一个firefox extension。
firefox driver
FirefoxDriver是RemoteWebDriver的一个子类,它还包含了一个LazyCommandExecutor。
FirefoxDriver在启动时遵循以下步骤。
- 创建FirefoxBinary和FirefoxProfile对象,webdriver提供了足够的API来对新创建的FirefoxBinary和FirefoxProfile进行自定义,例如指定Firefox的路径,指定Firefox的Profile,更改Profile的preference等等。
- 建立NewProfileExtensionConnection,启动Firefox。
- 用HttpCommandExecutor对象开启一个新的session。
webdriver的架构图如下图所示: