菜鳥學(xué)自動化測試(三)----selenium 命令
關(guān)于,selenium 命令這一部分,為了便于像我一樣的菜鳥理解,我采用通過例子講命令的方式。邊學(xué)邊總結(jié)吧!相互學(xué)習(xí)。呵呵。
菜鳥Selenium 命令通常被稱為selenese,有一系列運(yùn)行測試案例所需的命令構(gòu)成。
----// Actions
Actions描述了用戶所會作出的操作。
Action 有兩種形式: action和actionAndWait, action會立即執(zhí)行,而actionAndWait會假設(shè)需要較長時間才能得到該action的相響,而作出等待,open則是會自動處理等待時間。
操作說明:
打開谷歌首頁,輸入“selenium 環(huán)境配置”字段,點(diǎn)擊“搜索”按鈕。
命令說明:
open
open(url)
- 在瀏覽器中打開URL,可以接受相對和路徑兩種形式
- 注意:該URL必須在與瀏覽器相同的安全限定范圍之內(nèi)
Highlight(locator)
- 暫時將指定元素的背景色改變?yōu)辄S色,有利于調(diào)試。
pause
pause(millisenconds)
- 根據(jù)指定時間暫停Selenium腳本執(zhí)行
- 常用在調(diào)試腳本或等待服務(wù)器段響應(yīng)時
type
type(inputLocator, value)
- 模擬人手的輸入過程,往指定的input中輸入值
- 也適合給復(fù)選和單選框賦值
click
click(elementLocator)
- 點(diǎn)擊連接,按鈕,復(fù)選和單選框
- 如果點(diǎn)擊后需要等待響應(yīng),則用"clickAndWait"
- 如果是需要經(jīng)過JavaScript的alert或confirm對話框后才能繼續(xù)操作,則需要調(diào)用verify或assert來告訴Selenium你期望對對話框進(jìn)行什么操作。
goBack()
模擬點(diǎn)擊瀏覽器的后退按鈕
close()
模擬點(diǎn)擊瀏覽器關(guān)閉按鈕
操作說明:
打開谷歌搜索首頁,在左上邊的選項中選擇“更多”,在下拉列表中選擇“博客”,然后在搜索欄內(nèi)輸入“蟲師”,點(diǎn)擊搜索按鈕,然后打開我的博客(通過我url的方式)
命令說明:
其實(shí)本例中并沒有出現(xiàn)新命令,但有一個問題。在搜索的結(jié)果中,標(biāo)紅的兩行作用是一樣的,都能打開我的博客。
click通過頁面的字符匹配,點(diǎn)擊鏈接,但打開的新窗口中只有地址欄;用click的方式,如果頁面發(fā)生變動,沒匹配到我想到我輸入的關(guān)鍵字,頁腳本會失敗。
open直接通過鏈接跳轉(zhuǎn),但又失去了前面搜索操作的意義。-----當(dāng)然,這里只是把它作為一個問題提出來。真實(shí)項目中,可能我們是不會遇到這種情況的。
用興趣的話將上面的例子驗證一下,算是對第一個例子的理解和加強(qiáng)吧!
這個例子錄制的是開心網(wǎng)的注冊頁面,這不是一個完整的注冊,因為后一項要求輸入驗證碼。所以,算錄制完成,也無法正常回放,這里只是為了講解幾個命令。(*^__^*) 嘻嘻……
可能通過上面的表格,你依然覺得不夠直觀。那么,看看下面的截圖呢!?
相信截圖還是很清晰的說,那根據(jù)上面的截圖講解了。。
操作說明:
打開開心網(wǎng)注冊頁面, 填寫email地址,輸入密碼,重復(fù)密碼,輸入姓名,選擇性別(男女)選擇出生年、月、日,選擇權(quán)限(都誰可以訪問我的頁面)
命令說明:
select
select(dropDownLocator, optionSpecifier)
- 根據(jù)optionSpecifier選項選擇器來選擇一個下拉菜單選項
- 如果有多于一個選擇器的時候,如在用通配符模式,如"f*b*",或者超過一個選項有相同的文本或值,則會選擇第一個匹配到的值
陌生的命令這一個啦,關(guān)于命令target部分(是id=...),我們可以通過firefox的插件firebug工具,進(jìn)行查看頁面元素,前面有講解,這里不多說了。
----//例子中沒提交的命令
下面的命令我還沒有找到合適的例子做演示,所以,先羅列出來,有時間在做演示。
fireEvent
fireEvent(elementLocatore,evenName)
模擬頁面元素事件被激活的處理動作
fireEvent textField focus
fireEvent dropDown blur
waitForCondition
waitForCondition(JavaScriptSnippet,time)
- 在限定時間內(nèi),等待一段JavaScript代碼返回true值,超時則停止等待
waitForCondition var value="/selenium.getText(""foo"); value.match(/bar/); 3000
waitForValue
waitForValue(inputLocator, value)
- 等待某input(如hidden input)被賦予某值,
- 會輪流檢測該值,所以要注意如果該值長時間一直不賦予該input該值的話,可能會導(dǎo)致阻塞
waitForValue finishIndication isfinished
store,stroreValue
store(valueToStore, variablename)
保存一個值到變量里。
該值可以由自其他變量組合而成或通過JavaScript表達(dá)式賦值給變量
store Mr John Smith fullname
store $.{title} $.{firstname} $.{suname} fullname
store javascript.{Math.round(Math.PI*100)/100} PI
storeValue inputLocator variableName
把指定的input中的值保存到變量中
storeValue userName userID
type userName $.{userID}
storeText, storeAttribute
storeText(elementLocator, variablename)
把指定元素的文本值賦予給變量
storeText currentDate expectedStartDate
verifyValue startDate $.{expectedStartDate}
storeAttribute(.{}elementLocator@attributeName,variableName.{})
把指定元素的屬性的值賦予給變量
storeAttribute input1@class classOfInput1
verifyAttribute input2@class $.{classOfInput1}
chooseCancel.., answer..
chooseCancelOnNextConfirmation()
- 當(dāng)下次JavaScript彈出confirm對話框的時候,讓selenium選擇Cancel
- 如果沒有該命令時,遇到confirm對話框Selenium默認(rèn)返回true,如手動選擇OK按鈕一樣
chooseCancelOnNextConfirmation
- 如果已經(jīng)運(yùn)行過該命令,當(dāng)下一次又有confirm對話框出現(xiàn)時,也會同樣地再次選擇Cancel
answerOnNextPrompt(answerString)
- 在下次JavaScript彈出prompt提示框時,賦予其anweerString的值,并選擇確定
answerOnNextPrompt Kangaroo
關(guān)于selenium 命令,這一部分,我學(xué)的比較仔細(xì),所以,也想講的仔細(xì)點(diǎn)。關(guān)于后面,還會說到:
* 驗證頁面元素
* 定位頁面元素
* 文字范本匹配