watir基本語法大全

 1 1.使用Watir工具,需要在腳本中加上
  2 require 'watir'
  3 2.創建一個IE的測試實例
  4 ie = Watir::IE.new
  5 或者在創建的同時直接轉到頁面
  6 ie = Watir::IE.start("http://mytestsite")
  7 Watir使用start方法同時創建一個瀏覽器實例並轉到一個頁面。
  8 3.頁面導航
  9 ie.goto("http://mytestsite")
 10 4.操縱Web頁面對象
 11 4.1超鏈接
 12 4.1.1使用Text屬性點擊超鏈接
 13 ie.link(:text , "Pickaxe").click
 14 對應的HTML代碼爲:
 15 <a href="http://pragmaticprogrammer.com/titles/ruby/">Pickaxe</a>
 16 4.1.2使用URL屬性點擊超鏈接
 17 ie.link(:url , "http://pragmaticprogrammer.com/titles/ruby/").click
 18 對應的HTML代碼爲:
 19 <a href="http://pragmaticprogrammer.com/titles/ruby/">Test Site</a>
 20 4.2複選框
 21 4.2.1使用name屬性設置複選框 
 22 ie.checkbox(:name, "checkme").set
 23 4.2.2使用name屬性清除複選框
 24 ie.checkbox(:name, "checkme").clear
 25 4.2.3使用name和value屬性設置複選框
 26 ie.checkbox(:name, "checkme""1").set
 27 4.2.4使用name和value屬性清除複選框
 28 ie.checkbox(:name, "checkme""1").clear
 29 對應的HTML代碼爲:
 30 <input type = "checkbox" name = "checkme" value = "1">
 31 4.3單選框
 32 4.3.1使用name屬性設置單選框
 33 ie.radio(:name, "clickme").set
 34 4.3.2使用name屬性清除單選框
 35 ie.radio(:name, "clickme").clear
 36 4.3.3使用name和id屬性設置單選框
 37 ie.radio(:name, "clickme""1").set
 38 4.3.4使用name和id屬性清除單選框
 39 ie.radio(:name, "clickme""1").clear
 40 對應的HTML代碼爲:
 41 <input type = "radio" name = "clickme" id = "1"> 
 42 4.4下拉框
 43 4.4.1使用name屬性和值來設置下拉框
 44 ie.select_list( :name , "selectme").select("is fun")
 45 4.4.2使用name屬性和值來清除下拉框
 46 ie.select_list( :name , "selectme").clearSelection 
 47 對應的HTML代碼爲:
 48 <select name = "selectme" > <option name=1> <option name=2>Web Testing <option name=3>in Ruby <option name=4>is fun </select>
 49 4.5在Web頁面中輸入數據
 50 4.5.1使用文本輸入框的那麼屬性設置輸入內容
 51 ie.text_field(:name, "typeinme").set("Watir World")
 52 4.5.2清空文本輸入框
 53 ie.text_field(:name, "typeinme").clear
 54 對應的HTML代碼爲:
 55 <input type = "text" name = "typeinme" >
 56 4.6從Web頁面上提交數據
 57 4.6.1按鈕
 58 4.6.1.1通過值或標題屬性點擊按鈕
 59 ie.button(:value, "Click Me").click
 60 4.6.1.2通過name屬性點擊按鈕
 61 ie.button(:name, "clickme").click
 62 對應的HTML代碼爲:
 63 <input type = "button" name = "clickme" value = "Click Me">
 64 
 65 4.6.2表單
 66 4.6.2.1表單中的按鈕
 67 使用value或標題屬性
 68 ie.button(:value, "Submit").click
 69 對應的HTML代碼爲:
 70 <form action = "submit" name = "submitform" method="post"><input type = "submit" value = "Submit"></input></form>
 71 4.6.2.2表單中的圖片按鈕
 72 使用那麼屬性
 73 ie.button(:name, "doit").click
 74 對應的HTML代碼爲:
 75 <form action = "submit" name = "doitform" method="post"><input type="image" src = "images/doit.gif" name = "doit"></form>
 76 4.6.2.3沒有按鈕的表單
 77 Watir can submit a form by identifying it by its name, action and method attributes.
 78 可以通過name、action以及method屬性來提交表單
 79 ie.form(:name, "loginform").submit
 80 ie.form(:action, "login").submit
 81 對應的HTML代碼爲:
 82 <form action = "login" name = "loginform" method="get"><input name="username" type="text"></input></form>
 83 4.6.3框架
 84 ie.show_frames可以打印出當前頁面框架的數量和名稱
 85 Watir允許通過名稱屬性來訪問框架,如ie.frame("menu")
 86 如果要訪問menu框架中的一個超鏈接,可以ie.frame("menu").link(:text, "Click Menu Item").click
 87 4.6.4嵌套框架
 88 ie.frame("frame1").frame(:name, "nested_frame")
 89 4.6.5新窗口
 90 一些Web應用會彈出新窗口或打開一個新窗口,可以使用attach方法來訪問並控制新窗口。通過標示新窗口的URL或者title來訪問。
 91 ie2 = Watir::IE.attach(:url, 'http://mytestsite')
 92 ie3 = Watir::IE.attach(:title, 'Test New Window')
 93 也可以使用正則表達式
 94 ie4 = Watir::IE.attach(:title, /Test New/)
 95 注意:不要把新窗口分配到你的ie變量,最好給新窗口一個不同的名字
 96 5.驗證結果
 97 比較好的方法是在測試案例中假如驗證點
 98 5.1對象存在
 99 使用Watir方法contains_text
100 ie.contains_text("Reached test verification point."
101 if ie.contains_text("Reached test verification point."
102   puts: "Test passed. Page contains the text: Reached test verification point."
103 else
104   puts: "Test failed! Page didn't contain text: Reached test verification point."
105 end
106 5.2使用test::unit Assertions
107 5.2.1需要test::unit
108 require 'test/unit'
109 5.2.2創建測試實例
110 class TC_myTest < Test::Unit::TestCase
111   fill in Test Case methods here
112 end 
113 5.2.3創建測試用例方法
114 在測試類中,需要聲明象下面的方法:
115 def test_myTestCase
116   fill in method body with Watir code and assertion here
117 end
118 方法必須以test開頭,ruby會隨機運行測試案例,如果需要順序執行,需要在test後加上字母或數字來強迫它順序執行,比如“test_a_mytest”
119 定義測試方法的類:
120 class TC_myTest < Test::Unit::TestCase
121   def test_ myTestCase
122     Watir code and assertion here
123   end
124   def test_anotherTestCase
125     Watir code and assertion here
126   end
127   def test_aTestCase
128     Watir code and assertion here
129   end
130 end 
131 5.2.4使用Assertions
132 Watir通過在一個asert覆寫Watir方法支持assertions。
133 assert(ie.contains_text("Reached test verification point.")
134 5.2.5Setup and Teardown
135 def setup
136   fill in code that will run before every test case here
137 end
138 def teardown
139   fill in code that will run after every test case here
140 end
141 6.Tips and Tricks
142 Running Tests With the Browser Not Visible
143 Run the tests with a "-b" option if you don't want the browser to be visible. ex. myTest.rb -b

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章