-----使用技术手段解决问题,坚信注重每一个细节,把熟悉的做到一种极致,一定会有创新出现。-----

ruby+watir--百度搜索示例

代码:URL、搜索内容、文本验证点都做成了变量;打开IE后,输入www.baidu.com,输入搜索内容“watir”,点击submit,查询出结果后,使用文本验证点Content去验证百度服务器返回内容。

#-------------------------------------------------------------# 
# Demo test for the Watir controller. 
# 
# Simple Google test written by Jonathan Kohl 10/10/04. 
# Purpose: to demonstrate the following Watir functionality: 
# * entering text into a text field, 
# * clicking a button, 
# * checking to see if a page contains text. 
# Test will search Google for the "pickaxe" Ruby book. 
#-------------------------------------------------------------# 
# the Watir controller 
#require "rubygems"
require "watir" 
#require "watir-classic"
# set a variable 
test_site = "http://www.baidu.com/"   #search URL  google.com
Search_name = "watir"   #search name 
Content = "download.csdn.net"   #search results 
#open the IE browser 
ie = Watir::IE.new
# print some comments 
puts "Beginning of test: Google search." 
puts " Step 1: go to the test site: " + test_site 
ie.goto test_site 
puts " Step 2: enter 'watir' in the search text field." 
#ie.text_field(:name, "wd").set "watir"      # "q" is the name of the search field 
ie.text_field(:name, "wd").set Search_name     #search name
puts " Step 3: click the 'baidu submit' button." 
ie.button(:type, "submit").click    # "submit" is the type of the Search button 
puts " Expected Result:" 
puts " A Google page with results should be shown. '#{Content} ' should be high on the list." 
puts " Actual Result:" 
if ie.text.include? "#{Content}" 
puts " Test Passed. Found the test string: '#{Content} '.Actual Results match Expected Results." 
else 
puts " Test Failed! Could not find: '#{Content} '." 
end 
puts " End of test: Google search."
puts " Last Step Close IE!!"
ie.close

上面脚本是从http://www.51autotest.com论坛上找到的,代码中默认是google搜索,我改回百度的啦。  另外代码结尾中没有加入IE关闭的代码,要完善一些,要加入的ie.close。

返回结果:

>ruby baidu.rb
Beginning of test: Google search.
 Step 1: go to the test site: http://www.baidu.com/
 Step 2: enter 'watir' in the search text field.
 Step 3: click the 'baidu submit' button.
 Expected Result:
 A Google page with results should be shown. 'download.csdn.net ' should be high on the list.
 Actual Result:
 Test Passed. Found the test string: 'download.csdn.net '.Actual Results match Expected Results.
 End of test: Google search.
 Last Step Close IE!!
>Exit code: 0

一开始运行上面脚本时,提示:“ruby Watir::IE (NameError)”的错误,然后再脚本中增加require "rubygems"和require "watir-classic",问题虽然解决,但是出现了其他的错误。最后通过gem list命令查看各个的版本号,发现watir、commonwatir、watir-classic、win32-process的版本高较高。

解决:

watir版本和commonwatir的版本要一致,都降低到3.0.0
watir-classic版本降低到3.0.0
win32-process版本降低到0.6.6

示例:

C:\ruby>gem uninstall watir -v 4.0.2
Successfully uninstalled watir-4.0.2-x86-mingw32

C:\ruby>gem install watir -v 3.0.0

gem uninstall watir-classic -v 3.3.0

gem install watir-classic -v 3.0.0


gem uninstall win32-process -v 0.7.0

gem install win32-process -v 0.6.6

看样子学习ruby+watir+webdriver并非1天2天的事情,加油!

posted @ 2012-11-22 17:37  ZhuQue  阅读(1331)  评论(0编辑  收藏  举报
多年性能测试、测试管理经验,专注银行、支付、电商行业,倾向于性能、安全、 监控、调优、模型、管理等方向的研究。
使用技术手段解决问题,坚信注重每一个细节,把熟悉的做到一种极致,一定会有创新出现。