--- title: Commands List tags: Rapi Document Chinese --- <style> table thead { display: none; } table tr { margin: 1.5rem 0; display: grid !important; border-radius: 10px; border: 1px solid #cdcdcd !important; box-shadow: 0 1px 3px rgba(0,0,0,0.2), 0 1px 1px rgba(0,0,0,0.14), 0 2px 1px -1px rgba(0,0,0,0.12); } table tr td:before { font-weight: bold; } table th, table td { width: auto; max-width: 100%; flex-wrap: wrap; border: none !important; word-break: normal; } table tr td:nth-child(1) { display: flex; align-items: center; justify-content: center; border-bottom: 1px solid #cdcdcd !important; text-align: center; } table tr td:nth-child(2):before { content: "目標(Target): "; } table tr td:nth-child(3):before { content: "值(Value): "; } table tr td:nth-child(4):before { content: "說明: "; } code { overflow-wrap: anywhere; } @-moz-document url-prefix() { li { margin-left: 20px; } } @media (min-width: 955px) { table tr { grid-template-columns: minmax(300px, 1fr) 10fr; grid-template-rows: auto auto auto; } table tr td:nth-child(1) { border-bottom: none !important; border-right: 1px solid #cdcdcd !important; grid-row: span 3; } #doc.markdown-body.container-fluid, .ui-infobar, .document-footer { margin-right: 0; max-width: unset; margin-left: calc(50vw - 388px); } #ui-toc-affix { /* left: 20px !important; */ width: auto !important; } } </style> # 指令列表 點擊[這裡](https://sideex.github.io/example/example_testsuites/all_example.zip)下載所有範例 **錄製時自動產生的指令** * **[滑鼠事件類](#subtype_錄製時自動產生的指令_滑鼠事件類)** [clickAt](#cmd_clickAt), [doubleClickAt](#cmd_doubleClickAt), [mouseDownAt](#cmd_mouseDownAt), [mouseMoveAt](#cmd_mouseMoveAt), [mouseOut](#cmd_mouseOut), [mouseOver](#cmd_mouseOver), [mouseUpAt](#cmd_mouseUpAt), [dragAndDrop](#cmd_dragAndDrop), [dragAndDropToObject](#cmd_dragAndDropToObject), [changeCaretPosition](#cmd_changeCaretPosition), [scrollWheel](#cmd_scrollWheel), [rightClickAt](#cmd_rightClickAt), [blur](#cmd_blur) * **[鍵盤輸入事件類](#subtype_錄製時自動產生的指令_鍵盤輸入事件類)** [sendKeys](#cmd_sendKeys), [submit](#cmd_submit), [type](#cmd_type), [editContent](#cmd_editContent), [addSelection](#cmd_addSelection), [removeSelection](#cmd_removeSelection), [select](#cmd_select) * **[提示類](#subtype_錄製時自動產生的指令_提示類)** [assertAlert](#cmd_assertAlert), [assertConfirmation](#cmd_assertConfirmation), [chooseOkOnNextConfirmation](#cmd_chooseOkOnNextConfirmation), [chooseCancelOnNextConfirmation](#cmd_chooseCancelOnNextConfirmation), [assertPrompt](#cmd_assertPrompt), [answerOnNextPrompt](#cmd_answerOnNextPrompt), [chooseCancelOnNextPrompt](#cmd_chooseCancelOnNextPrompt) * **[其他](#subtype_錄製時自動產生的指令_其他)** [open](#cmd_open), [setViewportSize](#cmd_setViewportSize), [selectWindow](#cmd_selectWindow), [selectFrame](#cmd_selectFrame), [close](#cmd_close), [onsubmit](#cmd_onsubmit), [setCSS](#cmd_setCSS), [scrollTo](#cmd_scrollTo) **在網頁上按右鍵產生的指令** * **[Assert驗證類](#subtype_在網頁上按右鍵產生的指令_Assert驗證類)** [assertText](#cmd_assertText), [assertTextRegex](#cmd_assertTextRegex), [assertTitle](#cmd_assertTitle), [assertValue](#cmd_assertValue), [assertVisibility](#cmd_assertVisibility), [assertTooltip](#cmd_assertTooltip), [assertIsPassword](#cmd_assertIsPassword), ~~[assertElement](#cmd_assertElement)~~, [assertPresence](#cmd_assertPresence) * **[Assert Not驗證類](#subtype_在網頁上按右鍵產生的指令_Assert驗證類)** [assertNotText](#cmd_assertNotText), [assertTextNotRegex](#cmd_assertTextNotRegex), [assertNotTitle](#cmd_assertNotTitle), [assertNotValue](#cmd_assertNotValue), [assertNotVisibility](#cmd_assertNotVisibility), [assertNotTooltip](#cmd_assertNotTooltip), [assertNotIsPassword](#cmd_assertNotIsPassword), [assertNotPresence](#cmd_assertNotPresence) * **[Verify驗證類](#subtype_在網頁上按右鍵產生的指令_Verify驗證類)** [verifyText](#cmd_verifyText), [verifyTextRegex](#cmd_verifyTextRegex), [verifyTitle](#cmd_verifyTitle), [verifyValue](#cmd_verifyValue), [verifyVisibility](#cmd_verifyVisibility), [verifyTooltip](#cmd_verifyTooltip), [verifyIsPassword](#cmd_verifyIsPassword), ~~[verifyElement](#cmd_verifyElement)~~, [verifyPresence](#cmd_verifyPresence) * **[Verify Not驗證類](#subtype_在網頁上按右鍵產生的指令_Verify驗證類)** [verifyNotText](#cmd_verifyNotText), [verifyTextNotRegex](#cmd_verifyTextNotRegex), [verifyNotTitle](#cmd_verifyNotTitle), [verifyNotValue](#cmd_verifyNotValue), [verifyNotVisibility](#cmd_verifyNotVisibility), [verifyNotTooltip](#cmd_verifyNotTooltip), [verifyNotIsPassword](#cmd_verifyNotIsPassword), [verifyNotPresence](#cmd_verifyNotPresence) * **[變數儲存類](#subtype_在網頁上按右鍵產生的指令_變數儲存類)** [store](#cmd_store), [storeGlobalVar](#cmd_storeGlobalVar), [storeEval](#cmd_storeEval), [storeText](#cmd_storeText), [storeTitle](#cmd_storeTitle), [storeValue](#cmd_storeValue), [storeTooltip](#cmd_storeTooltip), [storeIsVisible](#cmd_storeIsVisible), [storeElement](#cmd_storeElement) * **[等待類](#subtype_在網頁上按右鍵產生的指令_等待類)** [waitForElementPresent](#cmd_waitForElementPresent), [waitForElementNotPresent](#cmd_waitForElementNotPresent), [waitForElementVisible](#cmd_waitForElementVisible), [waitForElementNotVisible](#cmd_waitForElementNotVisible) * **[其他](#subtype_在網頁上按右鍵產生的指令_其他)** [captureScreen](#cmd_captureScreen) **可手動鍵入的指令** * **[流程控制類](#subtype_可手動鍵入的指令_流程控制類)** [IF](#cmd_IF), [ELSE](#cmd_ELSE), [WHILE](#cmd_WHILE), [TRY](#cmd_TRY), [CATCH](#cmd_CATCH), [END](#cmd_END), [INCLUDE](#cmd_INCLUDE), [COMMENT](#cmd_COMMENT) * **[Assert驗證類](#subtype_可手動鍵入的指令_Assert驗證類)** [assertCSS](#cmd_assertCSS), [assertURL](#cmd_assertURL) * **[Verify驗證類](#subtype_可手動鍵入的指令_Verify驗證類)** [verifyCSS](#cmd_verifyCSS), [verifyURL](#cmd_verifyURL) * **[其他](#subtype_可手動鍵入的指令_其他)** [setWindowSize](#cmd_setWindowSize), [clearCookie](#cmd_clearCookie), [setCookie](#cmd_setCookie), [echo](#cmd_echo), [pause](#cmd_pause), [setSpeed](#cmd_setSpeed), [runScript](#cmd_runScript), [uploadFileFromURL](#cmd_uploadFileFromURL), [storeElements](#cmd_storeElements) --- # 錄製時自動產生的指令 ## <span id="subtype_錄製時自動產生的指令_滑鼠事件類">滑鼠事件類</span> 指令(Command) | 目標(Target) | 值(Value) | 說明 -|-|-|- [<span id="cmd_clickAt">clickAt</span>](https://sideex.github.io/example/example_testsuites/clickAt_example.zip) | A locator | 作用於目標元素上的x,y座標。例如:`10,10`。若無填入座標則代表一個單純的點擊 | 滑鼠點擊目標元素 [<span id="cmd_doubleClickAt">doubleClickAt</span>](https://sideex.github.io/example/example_testsuites/doubleClickAt_example.zip) | A locator | 作用於目標元素上的x,y座標。例如:`10,10`。若無填入座標則代表一個單純的雙點擊 | 雙點擊目標元素 <span id="cmd_mouseDownAt">mouseDownAt</span> | A locator | 作用於目標元素上的x,y座標。例如:`10,10` | 向目標元素送出一個mouseDown事件 <span id="cmd_mouseMoveAt">mouseMoveAt</span> | A locator | 包含一連串滑鼠移動的JSON字串 | 向目標元素送出一連串的mouseMove事件。Value欄位值例如:`{\"Movements\":[{\"TD\":8,\"OX\":-2,\"OY\":0},{\"TD\":16,\"OX\":-4,\"OY\":1},{\"TD\":16,\"OX\":-5,\"OY\":1}]}`,TD為與前一個Movement的時間間隔,OX與OY為與前一個Movement座標的位移。<li>基本上,一連串的mouseMoveAt指令前會是一個mouseDownAt指令,而每個指令的第一個Movement的OX與OY值是相對於前一個指令的最後一個Movement的座標</li><li>如果一連串的mouseMoveAt指令前無mouseDownAt指令,則每個指令的第一個Movement的OX與OY值將是相對於整個網頁的`0,0`座標</li> [<span id="cmd_mouseOut">mouseOut</span>](https://sideex.github.io/example/example_testsuites/mouseOver&mouseOut_example.zip) | A locator | N/A | 向Target元素送出一個mouseOut事件 [<span id="cmd_mouseOver">mouseOver</span>](https://sideex.github.io/example/example_testsuites/mouseOver&mouseOut_example.zip) | A locator | 作用於目標元素上的x,y座標。例如:`10,10` | 向Target元素送出一個mouseOver事件 <span id="cmd_mouseUpAt">mouseUpAt</span> | A locator | 作用於目標元素上的x,y座標。例如:`10,10` | 向Target元素送出一個mouseUp事件 [<span id="cmd_dragAndDrop">dragAndDrop</span>](https://sideex.github.io/example/example_testsuites/dragAndDrop_example.zip) | A locator (被拖曳的元素) | 包含滑鼠起始位置與一連串移動的JSON字串 | 拖曳元素並放置於特定座標。例如:`{"StartPoint":{"X":92,"Y":31},"Movements":[{"TD":8,"OX":-2,"OY":0},{"TD":16,"OX":-4,"OY":1},{"TD":16,"OX":-5,"OY":1}]}`,TD為與前一個Movement的時間間隔,OX與OY為與前一個Movement座標的位移 [<span id="cmd_dragAndDropToObject">dragAndDropToObject</span>](https://sideex.github.io/example/example_testsuites/dragAndDropToObject_example.zip) | A locator (被拖曳的元素) | A locator (放置的目標元素) | 拖曳元素並放置於某特定目標元素 [<span id="cmd_changeCaretPosition">changeCaretPosition</span>](https://sideex.github.io/example/example_testsuites/changeCaretPosition_example.zip) | A locator (Content-Editable目標元素) | `{"N":節點順序,"O":文字位移}` | 於一個Rich Text Editor內移動游標位置,例如:`{"N":0,"O":5}`,代表移動游標至第0個節點(Node)的第5個字後 <span id="cmd_scrollWheel">scrollWheel</span> | A locator | 一個JSON字串,包含滑鼠滾輪作用起始位置與一連串的滾輪事件 | 在目標元素上滾動滑鼠滾輪。例如 `{\"StartPoint\":{\"X\":92,\"Y\":31},\"Delta\":[{\"TD\":0,\"X\":0,\"Y\":-100,\"Z\":0,\"M\":0},{\"TD\":8,\"X\":0,\"Y\":-100,\"Z\":0,\"M\":0},{\"TD\":6,\"X\":0,\"Y\":100,\"Z\":0,\"M\":0}`,TD為與前一個Movement的時間間隔,X、Y、Z與M分別為DeltaX、DeltaY、DeltaZ以及滾輪事件的deltaMode [<span id="cmd_rightClickAt">rightClickAt</span>](https://sideex.github.io/example/example_testsuites/rightClickAt_example.zip) | A locator | 目標元素上的x,y座標(例如`10,10`) | 於目標元素上按右鍵 [<span id="cmd_blur">blur</span>](https://sideex.github.io/example/example_testsuites/blur_example.zip) | A locator | N/A | 讓目標元素失去焦點 ## <span id="subtype_錄製時自動產生的指令_鍵盤輸入事件類">鍵盤輸入事件類</span> 指令(Command) | 目標(Target) | 值(Value) | 說明 -|-|-|- [<span id="cmd_sendKeys">sendKeys</span>](https://sideex.github.io/example/example_testsuites/sendkeys_example.zip) | A locator | 一個字串或一個特殊鍵擊(例如`${KEY_DOWN}`) | 鍵入一個字串或一個特殊鍵擊至目標元素,目標元素須為下列型態之一:`text`、`password`、`email`、`url`、`search`、`tel`與`number`。特殊鍵擊可為下列型態之一:`${KEY_BACKSPACE}, ${KEY_ENTER}`、`${KEY_ENTER_NOPRESS}`、`${KEY_LEFT}`、`${KEY_UP}`、`${KEY_RIGHT}`與`${KEY_DOWN}` [<span id="cmd_submit">submit</span>](https://sideex.github.io/example/example_testsuites/submit_example.zip) | A locator (表單元素) | N/A | 送出表單。建議使用錄製功能來自動產生此指令 [<span id="cmd_type">type</span>](https://sideex.github.io/example/example_testsuites/type_example.zip) | A locator | 字串 | 更改目標元素的值。目標元素須為下列型態之一:`color`、`date`、`datetime-local`、`month`、`range`、`time`與`week`. [<span id="cmd_editContent">editContent</span>](https://sideex.github.io/example/example_testsuites/editContent_example.zip) | A locator (Content-Editable目標元素) | 字串 | 將字串填入一個Content-Editable目標元素(其屬性`contenteditable="true"`) [<span id="cmd_addSelection">addSelection</span>](https://sideex.github.io/example/example_testsuites/addSelection_example.zip) | A locator (多選選單) | `label=選項值` | 於多選選單中新增一個選項選擇 [<span id="cmd_removeSelection">removeSelection</span>](https://sideex.github.io/example/example_testsuites/removeSelection_example.zip) | A locator (多選選單) | `label=選項值` | 於多選選單中移除一個選項選擇 [<span id="cmd_select">select</span>](https://sideex.github.io/example/example_testsuites/select_example.zip) | A locator (單選下拉式選單) | `label=選項值` | 於單選下拉式選單上選擇一個選項 ## <span id="subtype_錄製時自動產生的指令_提示類">提示類</span> 指令(Command) | 目標(Target) | 值(Value) | 說明 -|-|-|- [<span id="cmd_assertAlert">assertAlert</span>](https://sideex.github.io/example/example_testsuites/assertAlert_example.zip) | Alert視窗上預期的文字 | N/A | 驗證Alert視窗上的文字是否符合預期 [<span id="cmd_assertConfirmation">assertConfirmation</span>](https://sideex.github.io/example/example_testsuites/assertConfirmation_example.zip) | Confirmation視窗上預期的文字 | N/A | 驗證Confirmation視窗上的文字是否符合預期 [<span id="cmd_chooseOkOnNextConfirmation">chooseOkOnNextConfirmation</span>](https://sideex.github.io/example/example_testsuites/chooseOkOnNextConfirmation_example.zip) | N/A | N/A | 在Confirmation視窗上選擇`Ok`。建議使用錄製功能來自動產生此指令 [<span id="cmd_chooseCancelOnNextConfirmation">chooseCancelOnNextConfirmation</span>](https://sideex.github.io/example/example_testsuites/chooseCancelOnNextConfirmation_example.zip) | N/A | N/A | 在Confirmation視窗上選擇`Cancel`。建議使用錄製功能來自動產生此指令 [<span id="cmd_assertPrompt">assertPrompt</span>](https://sideex.github.io/example/example_testsuites/assertPrompt_example.zip) | Prompt視窗上預期的文字 | N/A | 驗證Prompt視窗上的文字是否符合預期 [<span id="cmd_answerOnNextPrompt">answerOnNextPrompt</span>](https://sideex.github.io/example/example_testsuites/answerOnNextPrompt_example.zip) | 下個Prompt視窗上欲設定的文字 | N/A | 於下個Prompt視窗上設定文字。建議使用錄製功能來自動產生此指令 [<span id="cmd_chooseCancelOnNextPrompt">chooseCancelOnNextPrompt</span>](https://sideex.github.io/example/example_testsuites/chooseCancelOnNextPrompt_example.zip) | N/A | N/A | 在下個Prompt視窗上選擇`Cancel`。 建議使用錄製功能來自動產生此指令 ## <span id="subtype_錄製時自動產生的指令_其他">其他</span> :::danger :fire: 較不建議自行手動新增此類指令,除非能正確掌握其Target與Value值! ::: 指令(Command) | 目標(Target) | 值(Value) | 說明 -|-|-|- [<span id="cmd_open">open</span>](https://sideex.github.io/example/example_testsuites/open&close_example.zip) | A URL | N/A | 開啟一個網頁 <span id="cmd_setViewportSize">setViewportSize</span> | N/A | 瀏覽器Viewport寬度與高度。例如:`1080,720`. | 設定瀏覽器Viewport大小。注意:執行此指令時將嘗試改變瀏覽器視窗大小來調整出所指定的Viewport大小,由於不同瀏覽器的實作限制,有時無法調整出符合指定的大小,並將此指令標示為黃色警告狀態。 <span id="cmd_selectWindow">selectWindow</span> | 自動產生 | N/A | 選擇目標視窗。建議使用錄製功能來自動產生此指令 <span id="cmd_selectFrame">selectFrame</span> | <li>A locator</li><li>`index=i` (選擇第i個Frame,i由0開始)</li><li>`relative=parent` (選擇父層Frame)</li><li>`relative=top` (選擇最上層Frame)</li> | N/A | 選擇目標Frame。建議使用錄製功能來自動產生此指令 [<span id="cmd_close">close</span>](https://sideex.github.io/example/example_testsuites/open&close_example.zip) | 自動產生 | N/A | 關閉目標Window。建議使用錄製功能來自動產生此指令 [<span id="cmd_onsubmit">onsubmit</span>](https://sideex.github.io/example/example_testsuites/onsubmit_example.zip) | A locator (表單元素) | N/A | 向表單元素送出onsubmit事件。建議使用錄製功能來自動產生此指令 [<span id="cmd_setCSS">setCSS</span>](https://sideex.github.io/example/example_testsuites/setcss_example.zip) | A locator | CSS style字串 | 設定目標元素的CSS。例如:`background-color: rgb(237, 238, 238); text-decoration: none solid rgb(102, 0, 51);` <span id="cmd_scrollTo">scrollTo</span> | A locator | 作用於目標元素滾動條上的x,y座標。例如:`50,100` | 滾動目標元素到指定位置。當手動指定目標元素時,點擊目標元素上的滾動條即可得到目標元素與其正確位置 --- # 在網頁上按右鍵產生的指令 ## <span id="subtype_在網頁上按右鍵產生的指令_Assert驗證類">Assert驗證類</span> 指令(Command) | 目標(Target) | 值(Value) | 說明 -|-|-|- [<span id="cmd_assertText">assertText</span>](https://sideex.github.io/example/example_testsuites/assertText_example.zip) | A locator | 預期的字串(Exact matching) | 驗證目標元素的文字是否為預期的字串,當驗證失敗時,測試案例將會停止執行並接續執行下個測試案例。此外,Value欄位可使用變數 [<span id="cmd_assertTextRegex">assertTextRegex</span>](https://sideex.github.io/example/example_testsuites/assertTextRegex_example.zip) | A locator | 正規表示式(例如:`ab+c`) | 驗證目標元素的文字是否符合預期的正規表示式字串,當驗證失敗時,測試案例將會停止執行並接續執行下個測試案例。此外,Value欄位可使用變數 [<span id="cmd_assertTitle">assertTitle</span>](https://sideex.github.io/example/example_testsuites/assertTitle_example.zip) | 預期的網頁標頭字串(Exact matching) | N/A | 驗證網頁標頭文字是否符合預期的字串,當驗證失敗時,測試案例將會停止執行並接續執行下個測試案例。此外,Target欄位可使用變數 [<span id="cmd_assertValue">assertValue</span>](https://sideex.github.io/example/example_testsuites/assertValue_example.zip) | A locator | 預期的字串(Exact matching) | 驗證Input型態之目標元素的`value`屬性值是否為預期的字串,當驗證失敗時,測試案例將會停止執行並接續執行下個測試案例。此外,Value欄位可使用變數 [<span id="cmd_assertVisibility">assertVisibility</span>](https://sideex.github.io/example/example_testsuites/assertVisibility_example.zip) | A locator | N/A | 驗證目標元素是否可見,當驗證失敗時,測試案例將會停止執行並接續執行下個測試案例。若目標元素為全透明、隱藏或部分被遮蔽,驗證結果將被視為失敗。 [<span id="cmd_assertTooltip">assertTooltip</span>](https://sideex.github.io/example/example_testsuites/assertTooltip_example.zip) | A locator | 預期的字串(Exact matching) | 驗證目標元素的tooltip(即為`title`屬性值)是否為預期的字串,當驗證失敗時,測試案例將會停止執行並接續執行下個測試案例。此外,Value欄位可使用變數 [<span id="cmd_assertIsPassword">assertIsPassword</span>](https://sideex.github.io/example/example_testsuites/assertIsPassword_example.zip) | A locator | N/A | 驗證目標元素是否為一個`<input>`元素,並且包含`type="password"`屬性,當驗證失敗時,測試案例將會停止執行並接續執行下個測試案例 |<div>~~[<span id="cmd_assertElement">assertElement</span>]~~ [Deprecated] <br> (請使用 [assertPresence](#cmd_assertPresence)) </div> | A locator | N/A | 驗證目標元素是否於網頁上呈現(註:若目標元素出現在網頁DOM,即便在視覺上不可見,亦被判定為呈現)。當驗證失敗時,測試案例將會停止執行並接續執行下個測試案例。| [<span id="cmd_assertPresence">assertPresence</span>](https://sideex.github.io/example/example_testsuites/assertPresence_example.zip) | A locator | N/A | 驗證目標元素是否於網頁上呈現(註:若目標元素出現在網頁DOM,即便在視覺上不可見,亦被判定為呈現)。當驗證失敗時,測試案例將會停止執行並接續執行下個測試案例。 ## <span id="subtype_在網頁上按右鍵產生的指令_Assert驗證類">Assert Not驗證類</span> 指令(Command) | 目標(Target) | 值(Value) | 說明 -|-|-|- [<span id="cmd_assertNotText">assertNotText</span>](https://sideex.github.io/example/example_testsuites/assertText_example.zip) | A locator | 預期的字串(Exact matching) | 驗證目標元素的文字是否不為預期的字串,當驗證失敗時,測試案例將會停止執行並接續執行下個測試案例。此外,Value欄位可使用變數 [<span id="cmd_assertTextNotRegex">assertNoTextRegex</span>](https://sideex.github.io/example/example_testsuites/assertTextRegex_example.zip) | A locator | 正規表示式(例如:`ab+c`) | 驗證目標元素的文字是否不符合預期的正規表示式字串,當驗證失敗時,測試案例將會停止執行並接續執行下個測試案例。此外,Value欄位可使用變數 [<span id="cmd_assertNotTitle">assertNotTitle</span>](https://sideex.github.io/example/example_testsuites/assertTitle_example.zip) | 預期的網頁標頭字串(Exact matching) | N/A | 驗證網頁標頭文字是否不符合預期的字串,當驗證失敗時,測試案例將會停止執行並接續執行下個測試案例。此外,Target欄位可使用變數 [<span id="cmd_assertNotValue">assertNotValue</span>](https://sideex.github.io/example/example_testsuites/assertValue_example.zip) | A locator | 預期的字串(Exact matching) | 驗證Input型態之目標元素的`value`屬性值是否不為預期的字串,當驗證失敗時,測試案例將會停止執行並接續執行下個測試案例。此外,Value欄位可使用變數 [<span id="cmd_assertNotVisibility">assertNotVisibility</span>](https://sideex.github.io/example/example_testsuites/assertVisibility_example.zip) | A locator | N/A | 驗證目標元素是否不可見,當驗證失敗時,測試案例將會停止執行並接續執行下個測試案例。若目標元素為全透明、隱藏或部分被遮蔽,驗證結果將被視為成功。 [<span id="cmd_assertNotTooltip">assertNotTooltip</span>](https://sideex.github.io/example/example_testsuites/assertTooltip_example.zip) | A locator | 預期的字串(Exact matching) | 驗證目標元素的tooltip(即為`title`屬性值)是否不為預期的字串,當驗證失敗時,測試案例將會停止執行並接續執行下個測試案例。此外,Value欄位可使用變數 [<span id="cmd_assertNotIsPassword">assertNotIsPassword</span>](https://sideex.github.io/example/example_testsuites/assertIsPassword_example.zip) | A locator | N/A | 驗證目標元素是否不為一個包含`type="password"`屬性的`<input>`元素,當驗證失敗時,測試案例將會停止執行並接續執行下個測試案例 [<span id="cmd_assertNotPresence">assertNotPresence</span>](https://sideex.github.io/example/example_testsuites/assertPresence_example.zip) | A locator | N/A | 驗證目標元素是否於網頁上呈現(註:若目標元素出現在網頁DOM,即便在視覺上不可見,亦被判定為呈現)。當驗證失敗時,測試案例將會停止執行並接續執行下個測試案例。 ## <span id="subtype_在網頁上按右鍵產生的指令_Verify驗證類">Verify驗證類</span> 指令(Command) | 目標(Target) | 值(Value) | 說明 -|-|-|- [<span id="cmd_verifyText">verifyText</span>](https://sideex.github.io/example/example_testsuites/verifyText_example.zip) | A locator | 預期的字串(Exact matching) | 驗證目標元素的文字是否為預期的字串,即使驗證失敗,下個指令將仍接續被執行。此外,Value欄位可使用變數 [<span id="cmd_verifyTextRegex">verifyTextRegex</span>](https://sideex.github.io/example/example_testsuites/verifyTextRegex_example.zip) | A locator | 正規表示式(例如:`ab+c`) | 驗證目標元素的文字是否符合預期的正規表示式字串,即使驗證失敗,下個指令將仍接續被執行。此外,Value欄位可使用變數 [<span id="cmd_verifyTitle">verifyTitle</span>](https://sideex.github.io/example/example_testsuites/verifyTitle_example.zip) | 預期的網頁標頭字串(Exact matching) | N/A | 驗證網頁標頭文字是否符合預期的字串,即使驗證失敗,下個指令將仍接續被執行。此外,Target欄位可使用變數 [<span id="cmd_verifyValue">verifyValue</span>](https://sideex.github.io/example/example_testsuites/verifyValue_example.zip) | A locator | 預期的字串(Exact matching) | 驗證Input型態之目標元素的`value`屬性值是否為預期的字串,即使驗證失敗,下個指令將仍接續被執行。此外,Value欄位可使用變數 [<span id="cmd_verifyVisibility">verifyVisibility</span>](https://sideex.github.io/example/example_testsuites/verifyVisibility_example.zip) | A locator | N/A | 驗證目標元素是否可見,即使驗證失敗,下個指令將仍接續被執行。若目標元素為全透明、隱藏或部分被遮蔽,驗證結果將被視為失敗 [<span id="cmd_verifyTooltip">verifyTooltip</span>](https://sideex.github.io/example/example_testsuites/verifyTooltip_example.zip) | A locator | 預期的字串(Exact matching) | 驗證目標元素的tooltip(即為`title`屬性值)是否為預期的字串,即使驗證失敗,下個指令將仍接續被執行。此外,Value欄位可使用變數 [<span id="cmd_verifyIsPassword">verifyIsPassword</span>](https://sideex.github.io/example/example_testsuites/verifyIsPassword_example.zip) | A locator | N/A | 驗證目標元素是否為一個`<input>`元素,並且包含`type="password"`屬性,即使驗證失敗,下個指令將仍接續被執行 |<div>~~[<span id="cmd_verifyElement">verifyElement</span>]~~ [Deprecated] <br> (請使用 [verifyPresence](#cmd_verifyPresence)) </div> | A locator | N/A | 驗證目標元素是否於網頁上呈現(註:若目標元素出現在網頁DOM,即便在視覺上不可見,亦被判定為呈現)。即使驗證失敗,下個指令將仍接續被執行。| [<span id="cmd_verifyPresence">verifyPresence</span>](https://sideex.github.io/example/example_testsuites/verifyPresence_example.zip) | A locator | N/A | 驗證目標元素是否於網頁上呈現(註:若目標元素出現在網頁DOM,即便在視覺上不可見,亦被判定為呈現)。即使驗證失敗,下個指令將仍接續被執行。 ## <span id="subtype_在網頁上按右鍵產生的指令_Verify驗證類">Verify Not驗證類</span> 指令(Command) | 目標(Target) | 值(Value) | 說明 -|-|-|- [<span id="cmd_verifyNotText">verifyNotText</span>](https://sideex.github.io/example/example_testsuites/verifyText_example.zip) | A locator | 預期的字串(Exact matching) | 驗證目標元素的文字是否不為預期的字串,即使驗證失敗,下個指令將仍接續被執行。此外,Value欄位可使用變數 [<span id="cmd_verifyTextNotRegex">verifyTextNotRegex</span>](https://sideex.github.io/example/example_testsuites/verifyTextRegex_example.zip) | A locator | 正規表示式(例如:`ab+c`) | 驗證目標元素的文字是否不符合預期的正規表示式字串,即使驗證失敗,下個指令將仍接續被執行。此外,Value欄位可使用變數 [<span id="cmd_verifyNotTitle">verifyNotTitle</span>](https://sideex.github.io/example/example_testsuites/verifyTitle_example.zip) | 預期的網頁標頭字串(Exact matching) | N/A | 驗證網頁標頭文字是否不符合預期的字串,即使驗證失敗,下個指令將仍接續被執行。此外,Target欄位可使用變數 [<span id="cmd_verifyNotValue">verifyNotValue</span>](https://sideex.github.io/example/example_testsuites/verifyValue_example.zip) | A locator | 預期的字串(Exact matching) | 驗證Input型態之目標元素的`value`屬性值是否不為預期的字串,即使驗證失敗,下個指令將仍接續被執行。此外,Value欄位可使用變數 [<span id="cmd_verifyNotVisibility">verifyNotVisibility</span>](https://sideex.github.io/example/example_testsuites/verifyVisibility_example.zip) | A locator | N/A | 驗證目標元素是否不可見,即使驗證失敗,下個指令將仍接續被執行。若目標元素為全透明、隱藏或部分被遮蔽,驗證結果將被視為成功 [<span id="cmd_verifyNotTooltip">verifyNotTooltip</span>](https://sideex.github.io/example/example_testsuites/verifyTooltip_example.zip) | A locator | 預期的字串(Exact matching) | 驗證目標元素的tooltip(即為`title`屬性值)是否不為預期的字串,即使驗證失敗,下個指令將仍接續被執行。此外,Value欄位可使用變數 [<span id="cmd_verifyNotIsPassword">verifyNotIsPassword</span>](https://sideex.github.io/example/example_testsuites/verifyIsPassword_example.zip) | A locator | N/A | 驗證目標元素是否不為一個包含`type="password"`屬性的`<input>`元素,即使驗證失敗,下個指令將仍接續被執行 [<span id="cmd_verifyNotPresence">verifyNotPresence</span>](https://sideex.github.io/example/example_testsuites/verifyPresence_example.zip) | A locator | N/A | 驗證目標元素是否不於網頁上呈現(註:若目標元素出現在網頁DOM,即便在視覺上不可見,亦被判定為呈現)。即使驗證失敗,下個指令將仍接續被執行。 ## <span id="subtype_在網頁上按右鍵產生的指令_變數儲存類">變數儲存類</span> 指令(Command) | 目標(Target) | 值(Value) | 說明 -|-|-|- [<span id="cmd_store">store</span>](https://sideex.github.io/example/example_testsuites/store_example.zip) | 字串 | 區域變數名稱(例如:`var_usr`) | 將目標字串儲存於一個區域變數,此區域變數可以在其他指令的Target與Value欄位透過`${}`語法被使用,例如:`${var_usr}`。注意:區域變數的使用範圍為同一個測試案例 [<span id="cmd_storeGlobalVar">storeGlobalVar</span>](https://sideex.github.io/example/example_testsuites/storeGlobalVar_example.zip) | 字串 | 全域變數名稱(例如:`var_usr`) | 將目標字串儲存於一個全域變數,此區域變數可以在其他指令的Target與Value欄位透過`${}`語法被使用,例如:`${var_usr}`。注意:全域變數的使用範圍可跨不同的測試案例,並必須事先被宣告於`Global Var`頁籤畫面 [<span id="cmd_storeEval">storeEval</span>](https://sideex.github.io/example/example_testsuites/storeEval_example.zip) | Javascript程式碼(例如:`x=2; y=3; return z = Math.max(x,y);`,其執行結果為`3`,結果前面必須包含`return`) | 區域變數名稱(例如:`var_result`) | 執行一段Javascript程式碼並將其執行結果儲存於一個區域變數中,此區域變數可以在其他指令的Target與Value欄位透過`${}`語法被使用,例如:`${var_result}` [<span id="cmd_storeText">storeText</span>](https://sideex.github.io/example/example_testsuites/storeText_example.zip) | A locator | 區域變數名稱(例如:`var_ele_txt`) | 將目標元素的文字儲存於一個區域變數,此區域變數可以在其他指令的Target與Value欄位透過`${}`語法被使用,例如:`${var_ele_txt}` [<span id="cmd_storeTitle">storeTitle</span>](https://sideex.github.io/example/example_testsuites/storeTitle_example.zip) | N/A | 區域變數名稱(例如:`var_title`) | 將網頁的標頭文字儲存於一個區域變數,此區域變數可以在其他指令的Target與Value欄位透過`${}`語法被使用,例如:`${var_title}` [<span id="cmd_storeValue">storeValue</span>](https://sideex.github.io/example/example_testsuites/storeValue_example.zip) | A locator | 區域變數名稱(例如:`var_ele_value`) | 將一個Input型態之目標元素的`value`屬性值儲存至一個區域變數,此變數可以在其他指令的Target與Value欄位透過`${}`語法被使用,例如:`${var_ele_value}` [<span id="cmd_storeTooltip">storeTooltip</span>](https://sideex.github.io/example/example_testsuites/storeTooltip_example.zip) | A locator | 區域變數名稱(例如:`var_tooltip`) | 將一個目標元素的tooltip(即為`title`屬性值)儲存至一個區域變數,此變數可以在其他指令的Target與Value欄位透過`${}`語法被使用,例如:`${var_tooltip}` [<span id="cmd_storeIsVisible">storeIsVisible</span>](https://sideex.github.io/example/example_testsuites/storeIsVisible_example.zip) | A locator | 區域變數名稱(例如:`var_result`) | 將目標元素的可見狀態(`true`或`false`)儲存至一個區域變數,此變數可以在其他指令的Target與Value欄位透過`${}`語法被使用,例如:`${var_result}` [<span id="cmd_storeElement">storeElement</span>](https://sideex.github.io/example/example_testsuites/storeElement_example.zip) | A locator | 區域變數名稱(例如:`var_elem`) | 將目標元素儲存至一個區域變數。此變數可以在其他指令的Target與Value欄位透過`${}`語法被使用,例如:`${var_elem}`。目標元素的屬性亦可被引用,例如`${var_elem.innerHTML}`。引用時須注意下列兩點:<li>若於`runScript`與`storeEval`指令的`Target`中引用時,並非字串取代,而是指向DOM中的目標元素,例如執行以下指令`runScript ## <span id="subtype_在網頁上按右鍵產生的指令_等待類">等待類</span> 指令(Command) | 目標(Target) | 值(Value) | 說明 -|-|-|- [<span id="cmd_waitForElementPresent">waitForElementPresent</span>](https://sideex.github.io/example/example_testsuites/waitForElementPresent_example.zip) | A locator | 至多等待時間(單位:毫秒;例如:`5000`代表最多等待5秒驗證目標元素是否出現,此欄位若無值代表使用內定自動等待時間(10秒)) | 在等待時間內驗證目標元素是否於網頁上呈現(註:若目標元素出現在網頁DOM,即便在視覺上不可見,亦被判定為呈現)。例如:瀏覽到某網頁後,驗證5秒內訂閱按鈕是否出現。 [<span id="cmd_waitForElementNotPresent">waitForElementNotPresent</span>](https://sideex.github.io/example/example_testsuites/waitForElementNotPresent_example.zip) | A locator | 至多等待時間(單位:毫秒;例如:`5000`代表最多等待5秒驗證目標元素是否已從網頁上移除,此欄位若無值代表使用內定自動等待時間(10秒)) | 在等待時間內驗證目標元素是否於網頁上移除(註:若目標元素不在網頁DOM,才被判定為移除)。例如:點擊離開按鈕後,驗證5秒內廣告是否被移除。 [<span id="cmd_waitForElementVisible">waitForElementVisible</span>](https://sideex.github.io/example/example_testsuites/waitForElementVisible_example.zip) | A locator | 至多等待時間(單位:毫秒;例如:`5000`代表最多等待5秒驗證目標元素是否可見,此欄位若無值代表使用內定自動等待時間(10秒)) | 在等待時間內驗證目標元素是否於網頁上可見(註:目標元素為全透明、隱藏或部分被遮蔽,則被判定為不可見)。例如:點擊某按鈕後,驗證5秒內某元素的CSS屬性是否從視覺上隱藏變為視覺上可見。 [<span id="cmd_waitForElementNotVisible">waitForElementNotVisible</span>](https://sideex.github.io/example/example_testsuites/waitForElementNotVisible_example.zip) | A locator | 至多等待時間(單位:毫秒;例如:`5000`代表最多等待5秒驗證目標元素是否不可見,此欄位若無值代表使用內定自動等待時間(10秒)) | 在等待時間內驗證目標元素是否於網頁上不可見(註:目標元素為全透明、隱藏或部分被遮蔽,則被判定為不可見)。例如:點擊某按鈕後,驗證5秒內某元素的CSS屬性是否從視覺上可見變為視覺上隱藏。 ## <span id="subtype_在網頁上按右鍵產生的指令_其他">其他</span> 指令(Command) | 目標(Target) | 值(Value) | 說明 -|-|-|- [<span id="cmd_captureScreen">captureScreen</span>](https://sideex.github.io/example/example_testsuites/captureScreen_example.zip) | N/A or a locator | N/A | 擷取網頁畫面。若Target欄位有給定一個目標元素,此元素將會於畫面中被標示出 --- # 可手動鍵入的指令 ## <span id="subtype_可手動鍵入的指令_流程控制類">流程控制類</span> 指令(Command) | 目標(Target) | 值(Value) | 說明 -|-|-|- [<span id="cmd_IF">IF</span>](https://sideex.github.io/example/example_testsuites/IF_ELSE_example.zip) | JavaScript程式碼,其執行結果須為Boolean型態 | N/A | 若Target欄位執行結果為`true`,則執行其後續指令至ELSE/END指令為止。此外,Target欄位可使用變數,範例如下:<li>變數為數字:`\${var_num} == 100` </li> <li>變數為字串`"${var_name}" == "Guest"`</li> [<span id="cmd_ELSE">ELSE</span>](https://sideex.github.io/example/example_testsuites/IF_ELSE_example.zip) | N/A | N/A | 一個ELSE指令須與一個IF指令與一個END指令成對出現。目前尚未支援ELSE-IF指令 [<span id="cmd_WHILE">WHILE</span>](https://sideex.github.io/example/example_testsuites/WHILE_example.zip) | JavaScript程式碼,其執行結果須為Boolean型態 | 最多迴圈數(無填值則表示無限制) | 執行WHILE與END間的指令,直到Target欄位執行結果為`false`。此外,Target欄位可使用變數,範例如下:<li>變數為數字:`\${var_num} == 100` </li> <li>變數為字串`"${var_name}" == "Guest"`</li> [<span id="cmd_TRY">TRY</span>](https://sideex.github.io/example/example_testsuites/TRY_CATCH_example.zip) | N/A | N/A | 若TRY與CATCH間的任意指令執行錯誤時則執行CATCH與END間的指令。一個TRY指令須與一個CATCH指令與一個END指令成對出現 [<span id="cmd_CATCH">CATCH</span>](https://sideex.github.io/example/example_testsuites/TRY_CATCH_example.zip) | N/A | N/A | 若TRY與CATCH間的任意指令執行錯誤時則執行CATCH與END間的指令。一個CATCH指令須與一個IF指令與一個END指令成對出現。 <span id="cmd_END">END</span> | N/A | N/A | 與IF-ELSE/WHILE/TRY-CATCH成對出現 [<span id="cmd_INCLUDE">INCLUDE</span>](https://sideex.github.io/example/example_testsuites/Include_example.zip) | 被引入的測試案例名稱(名稱格式:`TestSuiteName.TestCaseName`;例如:`Test Suite 1.Test Case 1` | N/A | 引入並執行其他測試案例 <span id="cmd_COMMENT">COMMENT</span> | 字串 | 字串 | 此指令可用於註解後續指令的語意,註解文字可填入Target或Value欄位,當測試案例執行時此指令將自動被忽略 ## <span id="subtype_可手動鍵入的指令_Assert驗證類">Assert驗證類</span> 指令(Command) | 目標(Target) | 值(Value) | 說明 -|-|-|- [<span id="cmd_assertCSS">assertCSS</span>](https://sideex.github.io/example/example_testsuites/assertCSS_example.zip) | A locator | 預期的[CSS Rule-Set](https://hackmd.io/@sideex/computed-css-values)字串(例如:`{"color":"rgb(255, 255, 255)"}`) | 驗證目標元素的CSS是否為預期的字串(基於getComputedStyle函式回傳字串進行比對)。當驗證失敗時,測試案例將會停止執行並接續執行下個測試案例。此外,Value欄位可使用變數 [<span id="cmd_assertURL">assertURL</span>](https://sideex.github.io/example/example_testsuites/assertURL_example.zip) | A URL | N/A or 使用[Fetch Request](https://developer.mozilla.org/en-US/docs/Web/API/Request)驗證URL所需之JSON字串(例如:`{ "body": "{ \\"answer\\": 42 }", "cache": "no-cache", "credentials": "same-origin", "headers": { "user-agent": "Mozilla/4.0 MDN Example", "content-type": "application/json" }, "method": "POST", "mode": "cors", "redirect": "follow", "referrer": "no-referrer" }` | 驗證此URL是否能正確回應,亦即其HTTP回傳狀態碼為200至299間。當驗證失敗時,測試案例將會停止執行並接續執行下個測試案例。此外,Value欄位可使用變數 ## <span id="subtype_可手動鍵入的指令_Verify驗證類">Verify驗證類</span> 指令(Command) | 目標(Target) | 值(Value) | 說明 -|-|-|- [<span id="cmd_verifyCSS">verifyCSS</span>](https://sideex.github.io/example/example_testsuites/verifyCSS_example.zip) | A locator | 預期的[CSS Rule-Set](https://hackmd.io/@sideex/computed-css-values-zh)字串(例如:`{"color":"rgb(255, 255, 255)"}` | 驗證目標元素的CSS是否為預期的字串(基於getComputedStyle函式回傳字串進行比對),即使驗證失敗,下個指令將仍接續被執行。此外,Value欄位可使用變數 [<span id="cmd_verifyURL">verifyURL</span>](https://sideex.github.io/example/example_testsuites/verifyURL_example.zip) | A URL | N/A or 使用[Fetch Request](https://developer.mozilla.org/en-US/docs/Web/API/Request)驗證URL所需之JSON字串(例如:`{ "body": { "answer": 42 }, "cache": "no-cache", "credentials": "same-origin", "headers": { "user-agent": "Mozilla/4.0 MDN Example", "content-type": "application/json" }, "method": "POST", "mode": "cors", "redirect": "follow", "referrer": "no-referrer" }` | 驗證此URL是否能正確回應,亦即其HTTP回傳狀態碼為200至299間。即使驗證失敗,下個指令將仍接續被執行。此外,Value欄位可使用變數 ## <span id="subtype_可手動鍵入的指令_其他">其他</span> 指令(Command) | 目標(Target) | 值(Value) | 說明 -|-|-|- [<span id="cmd_setWindowSize">setWindowSize</span>](https://sideex.github.io/example/example_testsuites/setwindowsize_example.zip) | N/A | Window的寬度與高度。例如:`1080,720` | 設定目標Window的大小 <span id="cmd_clearCookie">clearCookie</span> | 網域名稱(包含`http://` or `https://`) | A cookie name or N/A | 清除目標網域名稱下特定的Cookie。如果Value欄位值為空,所有該目標網域名稱下所有的Cookie將會被清除 <span id="cmd_setCookie">setCookie</span> | 網域名稱(包含`http://` or `https://`) | Cookie names 和 values。例如:` {"cookieName1":"cookieValue1", "xookieName2":"cookieValue2"}` | 建立目標網域下的Cookies [<span id="cmd_echo">echo</span>](https://sideex.github.io/example/example_testsuites/echo_example.zip) | Log上欲印出的字串(在字串間可使用`storeXXX`系列指令的變數,例如:`Hello ${var_usr}` | N/A | 於Log頁籤畫面上印出字串 [<span id="cmd_pause">pause</span>](https://sideex.github.io/example/example_testsuites/pause_example.zip) | N/A | 一段暫停時間(單位:毫秒;例如:`5000`代表暫停5秒) | 暫停一段時間 [<span id="cmd_setSpeed">setSpeed</span>](https://sideex.github.io/example/example_testsuites/setSpeed_example.zip) | N/A | `1`, `2`, `3`, `4`, or `5`. `1`是最慢速,`5`是最快速 | 變更播放的速度 [<span id="cmd_runScript">runScript</span>](https://sideex.github.io/example/example_testsuites/runscript_example.zip) | Javascript程式碼(例如:`var a=10; var b=10; console.log(a+b);`) | 至多等待時間(單位:毫秒;設置`-1`代表等待至Javascript程式碼執行完畢,此欄位若無值代表使用內定自動等待時間) | 執行一段Javascript程式碼。注意:程式碼中避免使用`alert()`、`prompt()`、與`confirm()`,這些函式將不會有效果,但可使用`console.log()`來Log訊息 [<span id="cmd_uploadFileFromURL">uploadFileFromURL</span>](https://sideex.github.io/example/example_testsuites/uploadFileFromURL_example.zip) | A locator | 檔案的URL | 用指定的URL附加一個檔案至一個元素(注意:此指令非支援上傳本地端檔案,請將檔案放置於網路可存取之處,並將其檔案URL填入Value欄位)。<br>播放時,若此目標元素為input元素且有type=file屬性,則onchange事件會被呼叫,否則ondrop事件會被呼叫。若檔案上傳的動作沒有在這些事件中處理,則其後記得使用submit指令來submit包含此元素的表單以完成檔案上傳。此指令僅於Chrome、Firefox與Edge上支援 [<span id="cmd_storeElements">storeElements</span>](https://sideex.github.io/example/example_testsuites/storeElements_example.zip) | 目標 element 的 XPath 例如: //h1. | 區域變數名稱(例如:`var_elem`) | 將多個目標元素儲存至一個區域變數。此變數可以在其他指令的Target與Value欄位透過`${}`語法被使用,例如:`${var_elem[i]}`。目標元素的屬性亦可被引用,例如 `${var_elem.length}`與`${var_elem[i].innerHTML}`