• Selenium Video Tutorials

Selenium IDE - 控制流



Selenium IDE 命令包含功能,可以使用這些功能將條件語句和迴圈新增到測試中。這有助於僅在滿足特定條件時才執行某些步驟,或者根據特定條件多次執行相同的步驟。

JavaScript 表示式

可以使用 JavaScript 表示式驗證被測應用程式中的條件。execute script 和 execute async script 命令用於在測試中執行 JavaScript 程式碼並將結果儲存到變數以供將來使用。這些變數也可以用於控制流命令中。此外,JavaScript 表示式可以與控制流命令一起使用。

閱讀更多Selenium IDE - JavaScript 函式

條件分支的基本控制流命令

下面列出了基本控制流命令及其伴隨命令:

if

這是條件分支的起始命令,可以與要評估的 JavaScript 命令一起使用,或者與在 JavaScript 命令之前建立的變數一起使用。這是 if 命令的目標輸入欄位的一部分。

如果表示式返回真值,則測試將執行 if 表示式之後的步驟,直到遇到下一個控制流命令(如 else、else if 或 end)。如果表示式返回假值,它將跳轉到以下條件命令,如 else、else if 或 end。

else if

此命令用於 if 命令塊內。與 if 命令類似,else if 命令接受要評估的 JavaScript 命令。這是 else if 命令的目標輸入欄位的一部分。

如果表示式返回真值,則測試將執行 if 表示式之後的步驟,直到遇到下一個控制流命令(如 else、else if 或 end)。如果表示式返回假值,它將跳轉到以下條件命令,如 else 或 end。

else

此命令用於容納 if 塊中的最後一個條件。如果前面沒有滿足任何條件,則執行 else 命令。

end

此命令用於結束條件命令塊。在條件塊中沒有 end 命令將導致在執行 Selenium IDE 測試時出錯。

迴圈的基本控制流命令

下面列出了迴圈的基本控制流命令(允許重複一組命令/命令的執行):

times

此命令用於定義需要執行的操作/操作的迭代次數。迭代次數透過此命令饋送到目標輸入欄位。times 命令應以 end 命令結束。

do

此命令用於開始迴圈。在 do 命令之後,宣告要執行的步驟。do 命令應以 repeat if 命令結束。repeat if 接受將在目標輸入欄位中執行的 JavaScript 表示式。do 命令後的命令將首先執行,然後是 repeat if 命令中的操作。

如果表示式返回真值,則測試執行將移動到下一個 do 命令並重做模式。這將一直持續到條件不再滿足或發生無限迴圈。預設嘗試次數為 1000。可以透過在 repeat if 命令的值欄位中設定數字來修改此預設數字。

while

在此命令中,將在目標欄位中提供要執行的 JavaScript 表示式。如果表示式返回真值,則命令塊執行到 end 命令。再次,控制跳轉回 while 命令以重複相同的模式(每次檢查 JavaScript 表示式是否產生真值或假值)。while 命令應以 end 命令結束。

forEach

此命令用於迴圈遍歷集合並引用集合中的各個專案。在目標欄位中,需要提及指向要迭代的陣列的變數名。在值欄位中,迭代器變數名。

示例 1

讓我們以以下頁面為例,我們將使用條件分支控制流命令檢查頂部出現的文字 - 歡迎,登入

Selenium Control Flow 1

以下是需要遵循的步驟:

步驟 1 - 單擊安裝後在瀏覽器上可見的 Selenium IDE 擴充套件。

步驟 2 - Selenium IDE 應該啟動,同時應該顯示歡迎訊息以及工具的版本。在下圖中,安裝的版本為 3.17.2。

此外,它還提供了選擇我們希望使用該工具執行的操作的選項,例如在新的專案中記錄新的測試、開啟現有的專案、建立新的專案和關閉 Selenium IDE。

此外,還提供了一個帶有文字 - Selenium IDE 專案頁面的連結,單擊該連結將帶我們到 Selenium 整合開發環境文件頁面。

https://selenium.programming.tw/selenium-ide/.

步驟 3 - 單擊建立新專案連結,然後在請為您的新專案提供一個名稱下輸入專案名稱,例如 Test12。最後,我們將單擊確定按鈕。

步驟 4 - 我們現在將在 Selenium IDE 中準備好工作區。

步驟 5 - 在命令欄位中輸入 open,在目標欄位中輸入 selenium,以啟動應用程式。

步驟 6 - 在命令欄位中輸入 store text,在目標欄位中輸入 xpath=//*[@id="signInForm"]/h1,在值欄位中輸入 val。請注意,xpath=//*[@id="signInForm"]/h1 是文字的定位器值,val 是我們將用於儲存文字的變數。

步驟 7 - 在命令欄位中輸入 if,在目標欄位中輸入 ${val}==="Welcome, Login In"。

步驟 8 - 在命令欄位中輸入 echo,在目標欄位中輸入 Correct Verification。

步驟 9 - 在命令欄位中輸入 else if,在目標欄位中輸入 ${val}==="Welcome, Register"。

步驟 10 - 在命令欄位中輸入 echo,在目標欄位中輸入 InCorrect Verification。

步驟 11 - 在命令欄位中輸入 else。

步驟 12 - 在命令欄位中輸入 echo,在目標欄位中輸入 InValid Test。

步驟 13 - 在命令欄位中輸入 end。

步驟 14 - 在命令欄位中輸入 close 以關閉瀏覽器視窗。

Selenium Control Flow 2

步驟 15 − 點選頂部的“執行所有測試”,並等待測試執行完成。在我們的示例中,我們將看到“執行:1”、“失敗:0”,以及一個綠色條表示測試成功執行且沒有任何失敗。此外,成功完成的訊息也會出現在日誌下方。

Selenium Control Flow 3

在上面的示例中,我們驗證了文字 - 歡迎,登入,並在控制檯中列印了訊息 - 正確驗證。此外,我們在頂部看到一個綠色勾號,表示測試透過。

示例 2

讓我們來看一個使用迴圈控制流命令(稱為 while)的示例。

以下是需要遵循的步驟:

步驟 1 − 按照示例 1 中提到的步驟 1 到 4 操作。

步驟 2 − 在“命令”欄位中輸入 execute script,在“目標”欄位中輸入 return 1,在“值”欄位中輸入 val。

步驟 3 − 在“命令”欄位中輸入 while,在“目標”欄位中輸入 ${val} < 3。

步驟 4 − 在“命令”欄位中輸入 echo,在“目標”欄位中輸入 ${val}。

步驟 5 − 在“命令”欄位中輸入 execute script,在“目標”欄位中輸入 return ${val} + 1,在“值”欄位中輸入 val。

步驟 6 − 在“命令”欄位中輸入 end。

Selenium Control Flow 4

步驟 7 − 點選頂部的“執行所有測試”,並等待測試執行完成。在我們的示例中,我們將看到“執行:1”、“失敗:0”,以及一個綠色條表示測試成功執行且沒有任何失敗。此外,成功完成的訊息也會出現在日誌下方。

Selenium Control Flow 5

結論

本教程全面介紹了 Selenium IDE 中的控制流。我們從描述 JavaScript 表示式、條件分支的基本控制流命令、迴圈的基本控制流命令開始,並提供了示例來演示如何使用這些命令以及 Selenium。

這使您掌握了 Selenium IDE 中控制流的深入知識。明智的做法是不斷練習所學內容,並探索與 Selenium 相關的其他內容,以加深您的理解並拓展您的視野。

廣告

© . All rights reserved.