摘要:
有时候我们需要在使用firefox测试时启动firebug,这时候就可以用到下面的代码require 'rubygems'require 'selenium-webdriver' profile = Selenium::WebDriver::Firefox::Profile.newprofile.add_extension 'where/the/extensions/locate/firebug.xpi'dr = Selenium::WebDriver.for :firefox, :profile => profile这段代码首先创建了1个 阅读全文
摘要:
Table对象是自动化测试中经常需要处理的对象。由于webdriver中没有专门的table类,所以我们需要简单的封装出一个易用易扩展的Table类来帮助简化代码。module EasyWrap class EasyWrapError < StandardError;end class NotValidElementError < EasyWrapError;end class IncorrectdIndexError < EasyWrapError;end class TableBase attr_reader :e def i... 阅读全文
摘要:
webdriver里面已经没有了fire_event方法,就像世界上再也没有萨达姆,本拉登和卡扎菲一样。不过我们可以通过其他方法来实现fire_event的相似功能。考虑下面的html,当鼠标悬停到Mouse Over Here链接上时,js的mouseover事件被触发,shwo_tips()函数将被执行,隐藏的tips div会显示在页面上。<html> <head> <title>FireEvent</title> <style> .mo {color: blue;} .tips {display:none;b... 阅读全文
摘要:
Jquery是当下比较流行的1个js框架,通过使用webdriver的execute_script方法,我们可以将jquery库结合到自动化测试中去。结合jquery进行自动化测试的思想是这样的:首先将jquery的源码读到1个string中去,然后使用execute_script执行该string。执行完毕后我们就可以通过execute_script方法来调用jquery库了。下面的html代码中有一个隐藏的div,当鼠标移动到(mouseover)页面上名为Mouse Over Here的链接时,隐藏的div将会显示出来。<html> <head> <titl 阅读全文
摘要:
web的自动化测试中,我们经常会遇到这样一种情况:点击1个按钮,页面上会弹出1个iframe,这时候脚本就需要去等待iframe加载完毕才能进行后续的操作。在这种情况下,我们一般的处理思路是等待被等待对象上的某个子元素出现,当这个子元素出现时我们就认为该对象已经加载完毕,代码可以继续往下执行了。selenium-webdriver为我们提供了一个Wait类来完成类似的等待功能。下面的html代码实现了这样的一种效果:点击click按钮5秒钟后,页面上会出现一个红色的div块。我们需要写一段自动化脚本去捕获这个出现的div,然后高亮之。set_timeout.html <html> 阅读全文
摘要:
在selenium-webdriver中定位select list的方法比较简单,用id和name等属性可以很方便的将select给找出来,但是怎么去选择下拉框中的某一项呢?思路是这样的,首先定位到select list元素,然后找出该select list下所有的option,点击该option element既可,以下面的html代码为例<html> <head> <title>Select</title> </head> <body> <span>select demo</span> < 阅读全文
摘要:
在进行web前端自动化测试的过程中,Page Object设计模式可以称得上是杀人放火,居家旅行的常备武器。Page Object将测试对象及单个的测试步骤封装在每个Page对象中,以page为单位进行管理。举例来说,在没有使用Page Object模式的情况下,脚本可能是这样写的:require 'rubygems'require 'selenium-webdriver' url = 'www.soso.com'dr = Selenium::WebDriver.for :iedr.navigate.to url ua_links = dr.fi 阅读全文
摘要:
以前使用watir 1.6x 的时候处理页面javascript弹出的alert和confrim窗口时必须借助autoit工具来辅助执行,就像中国男足职业联赛中高价聘请外援一般。在selenium webdriver中,confirm和alert的处理再也不需要借助任何第三方工具了。下面的html页面上有1个名为click的button,点击该button后就会弹出1个alert窗口。<html> <head> <title>Alert</title> </head> <body> <input id = " 阅读全文
摘要:
在web自动化测试中点击一个链接然后弹出新窗口是比较司空见惯的事情。webdriver中处理弹出窗口跟处理frame差不多,以下面的html代码为例window.html<html> <head><title>Popup Window</title></head> <body> <a id = "soso" href = "http://www.soso.com/" target = "_blank">click me</a> </b 阅读全文
摘要:
在web ui自动化测试中,frame一直是令人头痛的问题,就像上班必须挤公车坐地铁一般,frame的问题总是令人气闷纠结为之黯然神伤。以前在使用watir 1.6x的时候,frame也是颇为棘手的一个问题。不但要照本宣科的进行一系列的设置,而且在进行实际代码编写的过程中会遇到各种奇奇怪怪的问题。frame就像中国男足的后防线,问题多多难以解决。selenium webdriver处理frame比较简单,这点比某些测试工具要先进一些,令人身心愉悦。以下面的html代码为例,我们看一下如何定位frame上的元素。frame.html<html> <head> <ti 阅读全文