Selenium的界面
白色:還未執行
淺青色:動作成功
深青色:判斷成功
淺粉紅色:判斷失敗,但不影響測試案例的運行
深粉紅色:判斷失敗,且測試案例無法正常運行
Command 存在的命令
Action
命令 |
接口 |
備注 |
Open |
open(url) |
在瀏覽器中打開URL |
Click |
click(elementLocator) |
點擊鏈接、按鈕、復選框、單選框 |
Type |
type(inputLocator, value) |
往input中輸入值,也適合給復選和單選框賦值 |
Select |
select(dropDownLocator, optionSpecifier) |
選擇下拉菜單選項 |
goBack |
goBack() |
點擊瀏覽器后退按鈕 |
close |
close() |
點擊瀏覽器關閉按鈕 |
SelectWindow |
selectWindow(windowId) |
選擇一個彈出窗口,所有命令都會轉到那個窗口執行 |
pause |
pause(millisenconds) |
根據指定時間暫停腳本的執行 |
fireEvent |
fireEvent(elementLocatore,evenName) |
模擬頁面元素事件被激活的處理過程 |
waitForCondition |
waitForCondition(JavaScriptSnippet,time) |
在規定的時間內,等待一段javascript代碼返回true值,超時則停止等待 |
waitForValue |
waitForValue(inputLocator, value) |
等待input被賦予某值 |
Store |
store(valueToStore, variablename) |
保存一個值到變量里 |
storeText |
storeText(elementLocator, variablename) |
把指定元素的文本值賦給變量 |
storeAttribute |
storeAttribute(.{ }elementLocator@attributeName,variableName.{ }) |
將指定元素的屬性值賦給變量 |
chooseCancelOnNextConfirmation |
chooseCancelOnNextConfirmation() |
如果彈出確認對話框,腳本選擇Cancel,沒有此命令,腳本默認選擇OK |
answerOnNextPrompt(answerString) |
answerOnNextPrompt(answerString) |
在下次JavaScript 彈出prompt 提示框時,賦予其anweerString 的值,並選擇確定 |
Assertions
存在assert和verify兩種模式,assert失敗,則退出測試,verify失敗,測試會繼續運行。
命令 |
接口 |
備注 |
assertLocation |
assertLocation(relativeLocation) |
判斷當前是在正確頁面 |
assertTitle |
assertTitle(titlePattern) |
檢查當前頁面的title是否正確 |
assertValue |
assertValue(inputLocator, valuePattern) |
檢查Input的值是否正確 |
assertSelected |
assertSelected(selectLocator, optionSpecifier) |
檢查select下拉框的選項是否和assertSelected一致 |
assertSelectOptions |
assertSelectOptions(selectLocator, optionLabelList) |
檢查select下拉框的選項是否和optionLabelList一致 |
assertText |
assertText(elementLocator,textPattern) |
檢查指定元素的文本 |
assertTextPresent |
assertTextPresent(text) |
檢查當前顯示的頁面上是否出現指定的文本 |
assertTextNotPresent |
assertTextNotPresent(text) |
檢查當前顯示的頁面上是否沒有出現指定的文本 |
assertElementPresent |
assertElementPresent(elementLocator) |
檢查當前顯示的頁面上是否沒有出現指定的文本 |
assertAttribute |
assertAttribute.{ }elementLocator@attributeName.{}, ValuePattern) |
檢查指定元素的屬性值 |
assertVisible |
assertVisible(elementLocator) |
檢查指定的元素是否可視 |
assertNotVisible |
assertNotVisible(elementLocator) |
檢查指定的元素不可視 |
assertEditable |
assertEditable(inputLocator) |
檢查指定的input是否可以編輯 |
assertNotEditable |
assertNotEditable(inputLocator) |
檢查指定的input是否不可以編輯 |
assertAlert |
assertAlert(messagePattern) |
檢查是否彈出帶指定message的alert對話框 |
assertConfirmation |
assertConfirmation(messagePattern) |
檢查是否彈出帶指定message的Confirmation對話框 |
assertPrompt |
assertPrompt(messagePattern) |
檢查是否彈出帶指定message的Prompt對話框 |
如何獲取Target
Id定位
Id=loginForm 定位頁面元素Form
Name定位
Name=continue value=Login
Identifier定位
當不能識別為其他的定位方式后,默認情況下為identifier的定位方式
Identifier=username
Xpath定位
Xpath是xml的查詢語言,html可以認為是xml的一種實現。使用xpath定位的原因是,你可能沒有合適的id和name特性來定位元素。通過xpath,你可以使用絕對地址(不推薦)或者相對地址來定位元素。
Xpath的開頭是一個斜線(/)代表這是絕對路徑,絕對路徑是從html開始的。開頭是2個斜線(//)代表這是相對路徑。
Xpath=/html/body/form[1] 獲取表格,xpath沒有0的下標
//form[1](3) html中的第3個form元素
Xpath=//form[@id=’loginForm’] id為’loginForm’的元素
Xpath=//form[input^@name=’username’] 定位form,且它有name為’username’的input子元素
Xpath=//input[@name=’username’] input元素且name為‘username’
Xpath=//input[@name=’continue’][@type=’button’]
鏈接文字定位
通過鏈接文字來定位超鏈接
Link=Continue 定位頁面元素連接文字為Continue