Watir,Web ApplicationTestinginRuby. 它是Ruby語言下,一個自動化UI測試的框架。對于Watir的測試框架,它對于ActiveX插件,JavaApplets, Flash, 或者其他的插件應(yīng)用程序基本不支持。如何確定您測試的頁面是否Watir支持,只要您在頁面中右擊出現(xiàn)View Source 選項,那么Waitr基本支持。Watir還帶有AutoIt擴展對Javascript彈出或者其他的彈出窗口。
在Watir中的對象包括Hyperlinks, Checkboxes, Buttons, Forms, Radio buttons, Selection boxes, Text fields, Frames, Images, Tables等等。我們可以使用 ie.show_all_objects來顯示頁面中的所有元素,當(dāng)我們無法確定頁面對象是否被選中時可以使用flash方法,比如 ie.text_field(:name, “test_text”).flash。以下的對象屬性對于Watir的使用非常有用。比如 name,id,index,value,URL(links),Alt,SRC(images)。
以下是Watir對于頁面的一些操作:
Hyperlinks
ie.link(:text, "link_name").click
Checkboxes
ie.checkbox(:name, “checkbox_name”, “value”).set
ie.checkbox(:name, "checkbox_name").set
ie.checkbox(:name, "checkme").clear
Radio buttons
ie.radio(:name, "clickme").set
ie.radio(:name, “radio_name”, “value”).set
ie.radio(:name, "clickme").clear
Selection boxes
ie.select_list( :name , "select_list_name").select("select_option")
ie.select_list( :name , "selectme").clearSelection
Text fields
ie.text_field(:name, "field_name").set("Watir World")
ie.text_field(:name, "typeinme").clear
HTML Buttons
ie.button(:value, "Click Me").click
Forms
ie.form(:name, "form_name").submit
ie.form(:action, "action_name").submit
Frames
ie.show_frames# show all the frames existed in the same page
ie.frame("menu").link(:text, "Click Menu Item").click# operate in frame
Images
ie.image(:name, “image_name”).click
Tables
ie.table(:id, “table_id”)
Manipulate row
row = ie.table(:index, 2)[2]
count=1
row.each do |cell|
#fill in code to do an action or verifaction
end
Manipulate cell
cell = ie.table(:index, 2)[2][2]
我們將Table看作一個頁面, 我們能在上面檢索buttons,images,links,tables等等的對象。
ie.row(:id, 'row1')
ie.cell(:id, 'cell_id')
ie.table(:index, 2)[2][2].table(:index,1)[1][1].text
ie.table(:index, 2)[1][1].button(:name, “button_name”).click
當(dāng)我們點擊按紐或者連接打開新的window,我們能使用attach去識別依靠新的window的URL或者Windowstitle。
ie2 = Watir::IE.attach(:url, 'http://mytestsite')
ie3 = Watir::IE.attach(:title, 'Test New Window')
Watir也支持正則表達式,這對測試將是非常有用的,特別是對頁面對象進行復(fù)雜驗證時。
JavaScript.彈出框比如警告窗口,系統(tǒng)安全彈出框以及其他不屬于頁面的窗口。我們得依靠AutoIt來操作了。