一、先來看一個小DEMO
通過上一篇博文《Web自動化測試框架Watir(基於Ruby) - 第1章 Windows下安裝與部署》的介紹,我們已經有了完整Watir運行環境,現在我們可以來試用一下Watir,來對其進一步了解;
圖1-1 測試腳本:測試百度搜索
我們現在使用Watir來實現一個“百度搜索框測試”的自動測試,
代碼如下:
1 #encoding: utf-8
2 #測試百度搜索
3 require 'watir'
4 puts "打開瀏覽器"
5 browser = Watir::Browser.new 6 sleep 2 #延時2秒執行下一行
7 puts "進入百度首頁"
8 browser.goto 'http://www.baidu.com/'
9 sleep 2
10 puts "搜索“淘寶”"
11 browser.text_field(:name => 'wd').set '淘寶'
12 browser.button(:value => '百度一下').click 13 sleep 2
14 puts "搜索“騰訊”"
15 browser.text_field(:name => 'wd').set '騰訊'
16 browser.button(:value => '百度一下').click 17 sleep 2
18 puts "搜索“新浪微博”"
19 browser.text_field(:name => 'wd').set '新浪微博'
20 browser.button(:value => '百度一下').click 21 sleep 2
22 puts "搜索“博客園”"
23 browser.text_field(:name => 'wd').set '博客園'
24 browser.button(:value => '百度一下').click 25 sleep 2
26 puts "搜索“Google”"
27 browser.text_field(:name => 'wd').set 'Google'
28 browser.button(:value => '百度一下').click 29 puts "腳本運行完畢!"
圖1-2 命令行輸出情況
輸入命令:ruby testBaidu2.rb
如果運行沒有問題的話,運行腳本的過程中,IE瀏覽器會自動打開,自動進入百度頁面,然后自動搜索“淘寶”,得到搜素結果等等等,並在命令行輸出如圖1-2的輸出字符串。
二、頁面對象的各種測試方法
1 文本框: 2 <INPUT id="email" name="_fmu.u._0.e" value="" />
3 方法1: ie.text_field(:id,'email').set("文本內容") 4 方法2: ie.text_field(:name, 'email').set("文本內容") 5 方法3: ie.text_field(:name,"email").clear 6
7
8 下拉框: 9 <SELECT name="cert_no">
10 <OPTION value="身份證">身份證</OPTION>
11 </SELECT>
12 方法1: ie.select_list(:name,"cert_no").select("身份證") 13 方法2: ie.select_list(:name,"cert_no").clearSelection 14
15
16 超鏈接: 17 <a href = "http://www.google.cn/">google</a>
18 方法1:ie.link(:text,"google").click 19 方法2:ie.link(:url,"http://www.google.cn/").click 20
21
22
23 復選框: 24 <input type = "checkbox" name = "checkme" value = "1">
25 方法1: ie.checkbox(:name,"checkme").set 26 方法2: ie.checkbox(:name,"checkme").clear 27 方法3: values = ie.checkbox(:name,"checkme").value 28 <input type = "checkbox" name = "checkme" value = "2">
29 #多個同名的復選框處理 30 方法1: ie.checkbox(:name,"checkme","2").set 31 方法2: ie.checkbox(:name,"checkme","2").clear 32
33
34 單選框: 35 <input type = "radio" name = "clickme" id = "1">
36 方法1: ie.radio(:name, "clickme").set 37 方法2: ie.radio(:name, "clickme").clear 38
39
40 一般按鈕: 41 <input type = "button" name = "clickme" value = "Click Me">
42 方法1: ie.button(:value, "Click Me").click 43 方法2: ie.button(:name,"clickme").click 44
45
46 submit按鈕: 47 <form action = "submit" name = "submitform" method = "post">
48 <input type = "submit" value = "Submit"></input>
49 </form>
50 方法: ie.button(:value."Submit").click 51
52
53 圖片按鈕: 54 <form action ="submit" name = "doitform" method = "post">
55 <input type = "image" src = "images/doit.gif" name = "doit">
56 </form>
57 方法:ie.button(:name, "doit").click 58
59
60 Form中無按鈕: 61 <form action = "login" name = "loginform" method = "get">
62 <input name = "username" type = "text"></input>
63 </form>
64 方法1:ie.form(:name,"loginform").submit 65 方法2:ie.form(:action,"login").submit 66
67
68 獲取隱含對象值: 69 <INPUT type=hidden value="您的Email" name="field1">
70 方法:values = ie.hidden(:name,'field1').value 71
72
73 獲取窗口對象: 74 #根據URL獲取 75 方法1: ie2 = Watir::IE.attach(:url,'http://www.google.cn/') 76 #根據窗口標題獲取 77 方法2: ie3 = Watir::IE.attach(:title,'Google') 78 #正則表達式匹配獲取 79 方法3: ie4 = Watir::IE.attach(:title, /google.cn/) 80
81
82 URL編碼: 83 require 'cgi' 84 string = "URL編碼" 85 string = CGI::escape(string) 86 puts string # 轉換結果: URL%B1%E0%C2%EB 87
88
89 URL解碼: 90 require 'cgi' 91 string = "URL%BD%E2%C2%EB" 92 string = CGI::unescape(string) 93 puts string # 轉換結果:URL解碼
如上代碼為Watir的常用的API接口函數,這里就不每個都進行測試,大家有興趣可以自己嘗試着去使用。
三、本章總結
通過本章內容,可以初步的應用Watir對Web頁面進行各種測試。
轉載須知:
請尊重本人知識產權和勞動成果,本文可自由轉載,請注明出處:
博客網址:http://www.cnblogs.com/zs8861/
聯系郵箱:117711668@qq.com
歡迎交流!