(一)快速开始
Selenium 1.x 时代已经远去,它理应躺在历史的角落里,靠着壁炉烤着火,抽着旱烟,在袅 袅的升起的青烟中回忆那曾经属于自己的美好时代。 不过事实却并非如此,现今原本早应退役的 selenium 1.x 却还是多数人坚定的选择,究其 原因不过是 1.x 时代遗留下了大量的
文档,代码,教程让人们误以为 1.x 还是这个年代的主 流,还应该光鲜亮丽在前台演出属于它的美好。长江后浪推前浪,最为前浪的 selenium 1.x 的宿命应该是死在沙滩上。 好了,直入主题,由于开源社区不再维护 selenium 1.x 再加之更为先进的 selenium 2.0 确 实有不少优势之初可以完全取代 1.x,在这里笔者会花一些笔墨,若干篇幅,争取深入浅出 的讲解 selenium 2.0 的一些基本知识,常用方法和高级扩展,但由于笔者水平和时间精力 等确实有限,文中应该避免不了谬误和臆断之处,还望众位读者多多海涵。 本文中所以代码和示例均由 Ruby 编写,本文介绍的 webdriverapi 也主要是 ruby binding。 所以首先请确保 ruby 语言在开发环境上正确安装。 教程的第一节从 selenium 2.0 和 webdriver 关系说起。 Selenium 2.0 和 webdriver 之间有什么关系,有什么不可告人的秘密?说来话长,但也简 单。Selenium 2.0 其实就是 webdriver。就像张飞就是张翼德,关羽就是关云长一样,叫法 不同但内容却是一样的。
安装 selenium webdriver
? ?
安装 ruby1.8.7 或 1.9.2。注意 selenium-webdriver 只支持 1.8.7 以上的 ruby 版本; 使用 gem 安装 selenium-webdriver;打开命令行,输入下列代码完成安装。注意,如果你 的开发环境需要 http proxy 的话,请注意在 gem 命令中加入--http_proxy 参数; gem install selenium-webdriver [--http_proxy]
?
在命令行中输入 gem list, 如果 selenium-webdriver 正确安装, 则其应该出现在结果
列表里。 在文本写作时,selenium webdriver 的最新版本应该是 2.2.0; gem list selenium-webdriver
?
安装 firefox。本文使用 firefox 作为测试浏览器进行讲解,所以请确保开发环境上正确安装 了 firefox。由于 firefox 版本更新较快,我们只需要选择 1 个稳定版本安装既可,本文中笔者 使用的版本是 FF 5.0;
简单的 google test
下面我们写几行代码在初次感受一下 webdriver 的魅力,好吧,说老实话原生的 selenium webdriver 并没有什么独特的魅力,相反到是 watir-webdriver 更加的平易近人老少咸宜。这 个不是文本讨论的范畴,暂且打住。
view plain
1. require 'rubygems' 2. require 'selenium-
webdriver' 3. 4. driver = Selenium::WebDriver.for :firefox 5. driver.navigate.to "google" 6. sleep 3 7. 8. element = driver.find_element(:name, 'q') 9. element.send_keys "Hello WebDriver!" 10. element.submit 11. 12. puts driver.title 13.
14. driver.quit
如果一切顺利的话,这几行代码将会打开 firefox 浏览器,然后转跳到 google 首页。等待 3 秒后在搜索框中输入 Hello WebDriver 并提交搜索结果至后台。然后在命令行打印出当前页 面的 title,并关闭 ff 浏览器。 如果你的代码不能顺利运行,请从如下几个方面进行检查。
? ? ? ?
ruby 的版本是否是 1.8.7 以上并正确安装; 代码中是否 require 'rubygems'; 是否正确安装了 Selenium WebDriver; 代码输入是否有误; Selenium-WebDriver ruby binding 的安装实际上非常的简单和快速,稍微有点 ruby 基础的 读者应该能够顺利的自行完成。 下一节将介绍 webdriver 的启动和关闭,欢迎继续关注。
(2)浏览器的简单操作
上一讲我们介绍了如何部署 selenium 2.0 的开发环境, 这一讲我们将介绍如何使用 selenium 提供给我们的接口进行浏览器的简单操作。 本文将先介绍适合初级用户的一些
常用方法, 然后将对一些高级用法和实现源码进行稍微深 入一些的分析。
如何打开一个测试浏