作者:zzxxbb112
時間:2011/11/8 版權所有,侵權必究。
出處:http://blog.csdn.net/zzxxbb112
本章主要簡單介紹下Watir在自動化測試過程中的對象識別,其實所有自動化測試工具的識別原理都是如出一轍的,我們知道QTP的識別原理是預期封裝對象鑑別屬性(對象庫)與實際封裝對象鑑別屬性(Spy)一致,那麼對象即可識別,通俗的形容就是隻要工具中描述的關鍵屬性與實際對象的關鍵屬性一致,那麼對象即可被成功識別。那麼在Watir其實也是一樣,我們只需要通過描述正確無誤的對象屬性即可成功識別測試對象。
應用實例:
打開RadRails,新建一個項目,在腳本視圖中輸入以下代碼
#引用watir包
require "watir"
#實例化Watir模塊的IE類,打開IE瀏覽器
ie = Watir::IE.new
#跳轉頁面爲IQuickTest領先技術博客首頁
ie.goto("blog.csdn.net/zzxxbb112")
#獲取到郵件訂閱文本框對象
edit = ie.text_field(:name,"email")
#判斷文本框對象是否存在
if edit.exist?()
#輸入郵箱地址
edit.set("[email protected]")
#高亮文本框
edit.flash
#打印結果
puts "email訂閱文本框存在"
end
分析:
可能你會一下子看到那麼多代碼會頭暈,別急,我會一步步的解釋每一行的意思。
#引用watir包
require "watir"
解析:主要的作用是導入Watir包,這樣我們才能去試用watir庫中的函數和類。注意引用方式爲Require#實例化Watir模塊的IE類,打開IE瀏覽器
ie = Watir::IE.new
解析:這一步的作用主要是實例化IE瀏覽器,執行完此步驟後系統會自動打開IE瀏覽器#跳轉頁面爲IQuickTest領先技術博客首頁
ie.goto("blog.csdn.net/zzxxbb112")
解析:這一步很簡單,就是跳轉到相應的網頁地址#獲取到郵件訂閱文本框對象
edit = ie.text_field(:name,"email")
解析:這一步是關鍵,Watir的對象識別主要就是靠它,當我們需要去識別一個對象時,首先需要去確認此對象的類型,這裏我們使用IQuickTest博客首頁的郵箱訂閱文本框作爲例子,如圖那麼這裏我們已經確認了對象類型爲文本框,在Watir中文本框類型識別方法爲text_field, 接着可以看到後面跟了:name,"email",這裏的意思就代表需要去查找文本框的name屬性值爲email,如果匹配,則找到,否則對象識別失敗。
#判斷文本框對象是否存在
if edit.exist?()
#輸入郵箱地址
edit.set("[email protected]")
#高亮文本框
edit.flash
#打印結果
puts "email訂閱文本框存在"
end
解析:exist?()方法代表判斷對象是否存在,這個從字面上就能看出來,若存在則輸入郵箱地址,並高亮,最後打印結果。那麼每一句的解析之後,相信你應該已經對本段代碼有一定了解了。那麼我們現在就來執行一下。
如圖,在需要執行的腳本區中點擊右鍵選擇Run As下的Ruby Application,即可執行。
但是執行後你會發現程序報了錯
invalid multibyte char (US-ASCII)
解析:其實原因很簡單,就是因爲我們在腳本中存在中文,需要轉碼成utf-8解決方案:首行加入
#coding: UTF-8
如圖成功在文本框中輸入了郵件地址
並且在console中打印了相關內容
那麼這樣一個簡單的控制文本框的流程就完畢了,但是細心的朋友又會問一個問題了:究竟是如何知道這個文本框的name屬性值爲email的,其實很簡單,一種最土的方式就是查看網頁的源代碼,如下圖紅色區域
但是你會發現如果對象很多,這樣一個個找是不是特別累,這裏作者提供給大家幾個方案:
1.安裝IE dev tools(微軟官方有下載)
針對IE8以下瀏覽器,IE8開始自帶,在瀏覽器中只需按下F12或者在菜單中打開
接着點擊紅色區域的箭頭,當抓去訂閱文本框時,工具會自動定位到對應的html位置
2. Chrome瀏覽器的Dev tools
只要你使用google的Chrome瀏覽器,只需按下快捷鍵Ctrl + Shift + i 即可激活工具
接着點擊抓去按鈕
原理其實一樣,抓去了對象之後即可自動定位到html了。
總結:
本次課程的內容就到這裏了,這次的東西相對比較多,講了的文本框對象的識別以及對象識別屬性的獲取,那麼下次我們會詳細講解包括文本框在內的所有常用對象控件類型的操作。
Rss訂閱IQuickTest(關於如何訂閱?)