针对Ruby的Selenium WebDriver安装指南

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编写,本文介绍的webdriver api也主要是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更加的平易近人老少咸宜。这个不是文本讨论的范畴,暂且打住。

require 'rubygems'
require 'selenium-webdriver'

driver = Selenium::WebDriver.for :firefox
driver.navigate.to "http://google.com"
sleep 3

element = driver.find_element(:name, 'q')
element.send_keys "Hello WebDriver!"
element.submit

puts driver.title

driver.quit

如果一切顺利的话,这几行代码将会打开firefox浏览器,然后转跳到google首页。等待3秒后在搜索框中输入Hello WebDriver并提交搜索结果至后台。然后在命令行打印出当前页面的title,并关闭ff浏览器。

如果你的代码不能顺利运行,请从如下几个方面进行检查。

  • ruby的版本是否是1.8.7以上并正确安装;
  • 代码中是否require ‘rubygems';
  • 是否正确安装了Selenium WebDriver;
  • 代码输入是否有误;

Selenium-WebDriver ruby binding的安装实际上非常的简单和快速,稍微有点ruby基础的读者应该能够顺利的自行完成。

(0)

相关推荐

  • 玩转python selenium鼠标键盘操作(ActionChains)

    用selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击.双击.点击鼠标右键.拖拽等等.而selenium给我们提供了一个类来处理这类事件--ActionChains selenium.webdriver.common.action_chains.ActionChains(driver) 这个类基本能够满足我们所有对鼠标操作的需求. 1.ActionChains基本用法 首先需要了解ActionChains的执行原理,当你调用ActionChains的方法时,不会立即执行

  • PowerShell调用Web测试工具Selenium实例

    什么是Selenium Selenium是一款著名的web应用程序测试工具,它能通过在浏览器中模拟用户的动作来完成测试,其api支持java,c#,python,ruby,php,perl,javascript这些主流编程语言和脚本语言.Selenium还支持IE,火狐,和chrome等主流浏览器. PowerShell 如何直接调用Selenium PowerShell直接调用Selenium,其实类似PowerShell调用C#方法.以IE浏览器为例,至少需要具备两个文件: 1.IEDriv

  • java selenium智能等待页面加载完成示例代码

    java selenium  智能等待页面加载完成 我们经常会碰到用selenium操作页面上某个元素的时候, 需要等待页面加载完成后, 才能操作.  否则页面上的元素不存在,会抛出异常. 或者碰到AJAX异步加载,我们需要等待元素加载完成后, 才能操作 selenium 中提供了非常简单,智能的方法,来判断元素是否存在. 阅读目录 实例要求 隐式等待 显式等待 实例要求 实例:set_timeout.html 下面的html 代码,  点击click 按钮5秒后, 页面上会出现一个红色的div

  • Selenium处理select标签的下拉框

    Selenium是一个开源的和便携式的自动化软件测试工具,用于测试Web应用程序有能力在不同的浏览器和操作系统运行.Selenium真的不是一个单一的工具,而是一套工具,帮助测试者更有效地基于Web的应用程序的自动化. 有时候我们会碰到<select></select>标签的下拉框.直接点击下拉框中的选项不一定可行.Selenium专门提供了Select类来处理下拉框. <select id="status" class="form-contro

  • java selenium 操作浏览器实例

    本篇文章介绍selenium 操作浏览器 阅读目录 浏览器最大化 前进,后退, 刷新 截图操作 模拟鼠标操作 杀掉Windows浏览器进程 浏览器最大化 前进,后退, 刷新 public static void testBrowser(WebDriver driver) throws Exception { driver.get("http://www.cnblogs.com/tankxiao"); Thread.sleep(5000); // 浏览器最大化 driver.manage

  • java selenium XPath 定位实现方法

    xpath 的定位方法, 非常强大.  使用这种方法几乎可以定位到页面上的任意元素. 阅读目录 什么是xpath xpath定位的缺点 testXpath.html 代码如下 绝对路径定位方式 使用浏览器调试工具,可以直接获取xpath语句 绝对路径的缺点 绝对路径和相对路径的区别 相对路径定位方式 使用索引号定位 使用页面属性定位 模糊定位starts-with关键字 模糊定位contains关键字 text() 函数 文本定位 什么是xpath xpath 是XML Path的简称, 由于H

  • python结合selenium获取XX省交通违章数据的实现思路及代码

    前言: 目前在研究易信公众号,想给公众号增加一个获取个人交通违章的查询菜单,通过点击返回查询数据.以下是实施过程. 一.首先,用火狐浏览器打开XX省交管网,分析页面信息: 可以看到共有4种查询种类,我只要查询违章数据,所以分析第一个电子警察信息查询就好了,用firebug分别查看车牌号码.车辆识别码.验证码输入框,可以得到id属性,分别为:carNum1.carAuthCode1.captcha1. 到这里,我们可以用selenium根据获取的id,自动填入车牌号码.车辆识别码.验证码,但验证码

  • java selenium处理Iframe中的元素示例

    java selenium  处理Iframe 中的元素 有时候我们定位元素的时候,发现怎么都定位不了. 这时候你需要查一查你要定位的元素是否在iframe里面 阅读目录 什么是iframe iframe 就是HTML 中,用于网页嵌套网页的. 一个网页可以嵌套到另一个网页中,可以嵌套很多层. selenium 中提供了进入iframe 的方法 // 进入 id 叫frameA 的 iframe dr.switchTo().frame("frameA"); // 回到主窗口 dr.sw

  • Python中使用 Selenium 实现网页截图实例

    Selenium 是一个可以让浏览器自动化地执行一系列任务的工具,常用于自动化测试.不过,也可以用来给网页截图.目前,它支持 Java.C#.Ruby 以及 Python 四种客户端语言.如果你使用 Python,则只需要在命令行里输入"sudo easy_install selenium"并回车,即可安装 selenium 的 Python 版本的客户端支持. 以 Python 为例,我们可以使用下面的脚本来给指定页面(比如我们首页)截图: # -*- coding: utf-8 -

  • java selenium操作弹出对话框示例讲解

    Web 开发人员通常需要利用JavaScript弹出对话框来给用户一些信息提示, 包括以下几种类型 阅读目录 对话框类型 测试页面 Selenium 操作对话框的代码 对话框类型 1.  警告框: 用于提示用户相关信息的验证结果, 错误或警告等 2. 提示框: 用于提示用户在当前对话框中输入数据,一般需要用户单击取消或者确认按钮 3. 确认框: 用于提示用户确认或者取消某个操作,一般需要用户单击取消或者确认按钮 测试页面 用如下页面为例进行讲解, 包括了警告框,提示框,确认框 http://si

随机推荐