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

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
