代碼: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.comSearch_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 nameputs " 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.rbBeginning 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.2Successfully uninstalled watir-4.0.2-x86-mingw32C:\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天的事情,加油!