Try   HackMD

自動等待機制

Rapi具備強大且高效的Auto-Wait技術,在播放測試案例時,Rapi會在執行下一個指令前自動調節包含網頁改變的須等待時間並進行有效率的停等。使用Rapi,播放測試案例就像一個真人在幫你進行網頁操作。

等待時間上限調整

預設的等待時間為 10 秒,但該值是可在Rapi基本設定頁面Rapi Runner設定檔中進行調整。若播放速度過快導致指令失敗時可調整至較高的值,若播放速度過慢可調整至較低的值。

相關指令

pause

在某些情況,使用者可能想在兩個指令間暫停一段時間以便能進行更彈性的測試。使用pause指令就能做到這點,它會使播放過程沉睡一段時間後再繼續執行下一個指令。

setSpeed

Rapi提供了5種播放速度可供使用者選擇,而setSpeed指令允許使用者在播放測試案例期間調整播放速度5 是最快速並代表在執行下個指令前沒有任何延遲時間。每往下調慢一段速會增加執行下個指令前的延遲時間。

verify/assertPresence

verifyPresenceassertPresence指令用於驗證目標元素現在是否於網頁上呈現(註:若目標元素出現在網頁DOM,即便在視覺上不可見,亦被判定為呈現)。例如:檢查下載按鈕現在有沒有呈現在導覽列上。

waitForElementPresent

不像verifyPresenceassertPresence,若使用waitForElementPresent,當目標元素沒有出現在網頁DOM上時,在等待時間內該指令會持續等待目標元素於網頁上呈現。若等待時間上限已到而目標元素仍未出現在網頁DOM上,則驗證結果將被判定為失敗。例如:瀏覽到某網頁後,驗證5秒內訂閱按鈕是否出現。

waitForElementNotPresent

有時,檢查目標元素是否在一段時間內被移除(註:若目標元素不在網頁DOM,才被判定為移除)反而是我們想做的,此時就可以使用waitForElementNotPresent並給定一個最大等待時間來達成。例如:點擊離開按鈕後,驗證5秒內廣告是否被移除。

verify/assertVisibility

verifyVisibilityassertVisibility指令用於驗證目標元素現在是否可見(註:目標元素為全透明隱藏部分被遮蔽,則被判定為不可見)。例如:檢查FAQ按鈕現在是否是可見的。

waitForElementVisible

不像verifyVisibilityassertVisibility,若使用waitForElementVisible,當目標元素是不可見時,在等待時間內該指令會持續等待目標元素變為可見。若等待時間上限已到而目標元素仍為不可見,則驗證結果將被判定為失敗。例如:點擊某按鈕後,驗證5秒內某元素的CSS屬性是否從視覺上隱藏變為視覺上可見。

waitForElementNotVisible

在某些情況中,若目標元素經過一段時間後仍為不可見代表網頁可能有程式錯誤的情況發生;換句話說,目標元素應變為不可見才是正確的。此時就可以使用waitForElementNotVisible並給定一個最大等待時間來達成。例如:點擊某按鈕後,驗證5秒內某元素的CSS屬性是否從視覺上可見變為視覺上隱藏。

指令在超時前會持續等待的情況

以下有幾張圖表探討哪些情況下verifyPresence, assertPresence, waitForElementPresent, waitForElementNotPresent, verifyVisibility, assertVisibility, waitForElementVisible,或waitForElementNotVisible在超時前會持續等待。

case → Element is present Element is not present
verify/assertPresence 執行成功 執行失敗
waitForElementPresent 執行成功 會等待
waitForElementNotPresent 會等待 執行成功
  • 當使用verify/assertPresence時,若目標元素此刻沒有出現在網頁DOM,立即判定驗證失敗
  • 當使用waitForElementPresent時,若目標元素沒有出現在網頁DOM上,則在超時前會持續等待目標元素出現
  • 當使用waitForElementNotPresent時,若目標元素出現在網頁DOM上,則在超時前會持續等待目標元素被移除
case → Element is visible Element is invisible
verify/assertVisibility 執行成功 執行失敗
waitForElementVisible 執行成功 會等待
waitForElementNotVisible 會等待 執行成功
  • 當使用verify/assertVisibility時,若目標元素此刻為不可見,立即判定驗證失敗
  • 當使用waitForElementVisible時,若目標元素為不可見,則在超時前會持續等待目標元素變為可見
  • 當使用waitForElementNotVisible時,若目標元素為可見,則在超時前會持續等待目標元素變為不可見