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

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