http://newtours.demoaut.com/ 這個網站將會用來作為我們測試的網址。
通過錄制來創建一個腳本
讓我們來用最普遍的方法——錄制來創建一個腳本。然后,我們將會用回放的功能來執行錄制的腳本。
第一步
- 打開Firefox和Selenium IDE。
- 在Base URL里面輸入 http://newtours.demoaut.com/。
- 點擊錄制按鈕。使之處於下圖的狀態。

第二步
- 在Firefox,訪問該網址。 Firefox會加載該頁面。
第三步
- 在網頁的空白處右擊鼠標,打開菜單欄。
- 顯示所有可用的命令(Show all available Commands)>assertTitle exact:Welcome: Mercury Tours

然后編輯器面板就出來了兩條命令。如下圖。

第四步
- 在"用戶名(user name)"的文本框內輸入"invalidUN"。
- 在"密碼(password)"的文本框內輸入"invalidPW"。
兩個命令會添加進來

第五步
點Sign-In按鈕,Firefox會跳轉到新的頁面。

第六步
按"錄制按鈕",使之處於彈出狀態以停止錄制。
第七步
這就錄制好了,隨后我們點文件菜單,選擇"保存測試用例(Save Test Case)"。當然,你可以使用快捷的 Ctrl+S。
第八步
- 選擇你要存放的地方,並給它起個名字 "Invalid_login"。
- 點保存

第九步
這個case保存成了HTML格式。

第十步
回到Selenium IDE里,點回放按鈕,執行整個腳本。 Selenium IDE會准確無誤地把剛才的腳本跑一遍。

如果人一直做自己不喜歡的事情,那怎么會開心起來呢?你覺得累是因為你覺得不開心,你不開心是你騙不了自己的心。明天再寫。今天寫了三分之一了。果然我就學習那么一會兒就不想學習了。這是不可以的。所以我繼續學習了。回家好好玩,在這好好學。
Selenium 命令介紹 — Selenese
Selenese命令最多兩個參數:target和value(目標和值)
有的參數是不必要的。具體的看命令需要幾個參數。
看所有的Selenese 命令,點擊這里。
三種命令
| 動作類 |
這些是直接跟頁面上元素打交道的命令。 比如“單擊(click)”是一個模仿用戶點擊行為的命令。“輸入(type)”是模仿用戶向文本框中輸入文字的命令,文本框中會顯示你的輸入。這是一個雙向的命令。 |
| 訪問類 |
訪問類命令允許我們存儲變量的值。 比如:“存儲標題(storeTitle)”命令完成了讀取頁面標題並存入一個變量中的任務。這個命令跟頁面上元素並無交互。 |
| 斷言類 |
用來判斷是否符合判定條件 三種類型的斷言
|
Assert和Verify比較


常用的命令
| 命令名稱 |
命令參數個數 |
解釋 |
| open |
0 - 2 |
根據URL打開一個頁面。 |
| click/clickAndWait |
1 |
點擊一個元素。 |
| type/typeKeys |
2 |
輸入一串字符。 |
| verifyTitle/assertTitle |
1 |
比較實際的標題和期待的結果是否一致。 |
| verifyTextPresent |
1 |
檢查是否某個預期的值在頁面上出現了。 |
| verifyElementPresent |
1 |
檢查頁面是有某個元素。 |
| verifyTable |
2 |
比較表格里的內容和預期值。 |
| waitForPageToLoad |
1 |
等頁面全部加載好了再繼續執行。 |
| waitForElementPresent |
1 |
等頁面上某個元素出現后再繼續執行。 |
用firebug手動創建一個腳本
上一個是你操作一遍,IDE記錄下來你做了哪些操作,並生成一條條命令。這次要自己輸入所有命令。用Firebug。
第一步
先把錄制的按鈕松開,那個紅的。

第二步
點編輯器里面最上面空行的部分。

輸入open在command(命令)框並按回車。

第三步
- 打開Firefox,訪問http://newtours.demoaut.com/, 打開firebug
- 在IDE 編輯器面板,選擇第二行的位置,輸入命令"assertTitle"。
- 使之自動完成命令。

第四步
在Firebug中,展開<head>標簽來看<title>標簽
點擊<title>標簽,復制里面的值然后把值粘貼到Target框框里(assertTitle)在Selenium IDE中。

第五步
- 創建第三條命令。點擊第三個空白的行,在命令輸入框輸入“type”。
- 在Firebug中,點“inspect”按鈕。
- 在網頁中點擊USER NAME的文本框。而Firebug會自動找到文本框對應的html元素。

第六步
我們發現User Name沒有ID,但是有一個Name屬性。因此我們可以通過NAME來定位它。
復制NAME 的值,並且粘貼到IDE中的Target框里。

在Target框里,在userName前面加上“name=”,來告訴IDE應該通過NAME屬性來找一個值為userName的元素。

同理,輸入type,來為password輸入值。
第八步
第四條命令,在command里輸入"clickAndWait"。
然后鼠標inspect Sign-in這個按鈕。復制其中name屬性的值,貼在target中。

第九步
跟前面一樣,保存測試case。
使用“查找(find)”按鈕
IDE中的查找按鈕用來幫我們確認按照我們的限制條件,能否找到正確的UI 元素。
讓我們用之前創建的 Invalid_login case來看看如何使用。點擊一下第三個命令。

然后點擊查找,網頁上的對應元素會標黃。highlight。

這說明了IDE是可以檢測和正確找到該元素的。如果“find”按鈕高亮了其他元素,或是根本沒有找到元素,那么說明你腳本出了問題。
執行命令
你可以不執行整個腳本,而去執行某一條命令。點擊你想執行的命令所在行,點擊菜單欄“Actions>Execute this command”或者使用快捷鍵X。
第一步
確認你的瀏覽器打開了要測試的網站。點擊你想執行的命令。在這里,我們點擊 type|userName|invalidUN"
第二步
按鍵“x”
第三步
我們看到主頁上用戶名的文本框里出現“invalidUN”

這樣執行命令是否成功跟當前頁面顯示什么有很大關系。也就是說,你在google的主頁執行這個,命令會因為找不到目標元素而使得整個case掛掉。
設置起始點
起始點告訴了IDE下次執行從哪條命令開始。它的快捷鍵是S(start)。

在每個測試腳本中,只能有一個起始點。起始點跟單步執行類似,很依賴當前頁面的顯示內容。頁面如果沒有起始點涉及的元素,那么case還是會掛。
設置斷點
斷點標識了IDE在執行腳本過程中會在哪里自動停下。快捷鍵是“B”。

黃色高亮的語句表示在當前步等待。IDE在當前步暫停執行case。在單個的測試腳本中可以有多個斷點。
步進
這個命令使我們在斷點后繼續單步執行case。讓我們看斷點中的例子。
點“step”前case在斷點處暫停了。
點擊“step”后,IDE會執行斷點所在行的語句,並在下一行停下了。
記住,step命令每次執行一句,不管那行有沒有斷點。這也是step命令的優點,每執行完一條命令,讓我們可以觀察它的執行結果。

在代碼試圖下使用其他格式時的注意事項
Selenium IDE只適應HTML,其他的格式還處於試驗階段,並不穩定。所以並不建議在代碼視圖中以HTML格式以外的語言來創建或者編輯測試用例。下面是一些bug。因為我們已經不用1.9.1的,bug略。
建議我們使用菜單中的"導出為”命令來轉換格式,而不是直接在代碼視圖里操作。
總結
終於等到你,還好我沒放棄。。。
醉了,看這點東西我活活拖了多久,懶癌晚期。。。好多條。。。
- 測試腳本可以通過錄制生成,或者手動輸入命令,傳入參數。
- 在手動寫測試腳本的時候,可以用firebug去定位元素。
- 查找按鈕用了檢查命令是否可以找到正確的元素。
- 表格視圖以表格形式展示測試腳本,代碼視圖是以HTML格式顯示case的。
- 在代碼視圖里,以HTML之外的語言格式顯示的功能並不是很好用。
- 別在代碼試圖里以其他語言修改腳本。可以用導出命令代替。
- 參數有時候並不是必需的,取決於命令的具體要求。
- 有三種命令 Action 直接操作元素/Accessors讀取元素屬性並保存進一個變量/Assertions 比較實際值和預期值
- Assertions也有三種類型,Assert不等就是錯誤的,立刻終止執行/Verify不等也還繼續執行其他的/WaitFor等timeout前,某個特定條件滿足,timeout了,還不滿足,掛。
- 最常用的命令有:open, click/clickAndWait,type/typeKeys, verifyTitle/assertTitle, verifyTextPresent, verifyElementPresent, verifyTable, waitForPageToLoad, waitForElementPresent
終於翻譯完了。
