您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源功能測(cè)試工具 > Selenium
菜鳥(niǎo)學(xué)自動(dòng)化測(cè)試??selenium系列全集
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/4/3 14:43:08 ] 推薦標(biāo)簽:

菜鳥(niǎo)學(xué)自動(dòng)化測(cè)試(三)----selenium 命令

關(guān)于,selenium 命令這一部分,為了便于像我一樣的菜鳥(niǎo)理解,我采用通過(guò)例子講命令的方式。邊學(xué)邊總結(jié)吧!相互學(xué)習(xí)。呵呵。

菜鳥(niǎo)Selenium 命令通常被稱為selenese,有一系列運(yùn)行測(cè)試案例所需的命令構(gòu)成。

----// Actions

Actions描述了用戶所會(huì)作出的操作。

Action 有兩種形式: action和actionAndWait, action會(huì)立即執(zhí)行,而actionAndWait會(huì)假設(shè)需要較長(zhǎng)時(shí)間才能得到該action的相響,而作出等待,open則是會(huì)自動(dòng)處理等待時(shí)間。

操作說(shuō)明:

打開(kāi)谷歌首頁(yè),輸入“selenium 環(huán)境配置”字段,點(diǎn)擊“搜索”按鈕。

命令說(shuō)明:

open
open(url)
- 在瀏覽器中打開(kāi)URL,可以接受相對(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)閉按鈕

操作說(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)吧!

這個(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è)面元素

* 文字范本匹配

上一頁(yè)1234567891011下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd