diff --git a/ipmi/test_ipmi_cold_reset.robot b/ipmi/test_ipmi_cold_reset.robot
index edb939d..491b8c8 100644
--- a/ipmi/test_ipmi_cold_reset.robot
+++ b/ipmi/test_ipmi_cold_reset.robot
@@ -132,7 +132,7 @@
     # Omit the discrete sensor and create an threshold sensor name list
     FOR  ${sensor}  IN  @{sensor_list_lines}
       ${discrete_sensor_status}=  Run Keyword And Return Status  Should Contain  ${sensor}  discrete
-      Continue For Loop If  '${discrete_sensor_status}' == 'True'
+      IF  '${discrete_sensor_status}' == 'True'  CONTINUE
       ${sensor_details}=  Split String  ${sensor}  |
       ${get_sensor_name}=  Get From List  ${sensor_details}  0
       ${sensor_name}=  Set Variable  ${get_sensor_name.strip()}
diff --git a/ipmi/test_ipmi_fru_device.robot b/ipmi/test_ipmi_fru_device.robot
index ac8cd52..cb1af7e 100644
--- a/ipmi/test_ipmi_fru_device.robot
+++ b/ipmi/test_ipmi_fru_device.robot
@@ -289,7 +289,7 @@
         FOR  ${subkeys}  IN  @{ipmi_fru_subkeys}
             ${key_status}=  Run Keyword And Return Status  Dictionary Should Contain Key
             ...  ${ipmi_dbus_name_mapping}  ${subkeys}
-            Continue For Loop If  '${key_status}' == 'False'
+            IF  '${key_status}' == 'False'  CONTINUE
             ${property_name}=  Get From Dictionary  ${ipmi_dbus_name_mapping}  ${subkeys}
             ${dbus_data}=  Get Lines Containing String  ${dbus_resp}  ${property_name}
             ${dbus_value}=  Set Variable  ${dbus_data.split('"')[1].strip()}
diff --git a/ipmi/test_ipmi_general.robot b/ipmi/test_ipmi_general.robot
index 3ddb048..ba05a2b 100644
--- a/ipmi/test_ipmi_general.robot
+++ b/ipmi/test_ipmi_general.robot
@@ -372,7 +372,7 @@
     FOR  ${system}  IN  @{systems}
         ${led_value}=  Redfish.Get Attribute  ${system}  LocationIndicatorActive
         # Get attribute return None if IndicatorLED does not exist in the URI.
-        Continue For Loop If  '${led_value}' == 'None'
+        IF  '${led_value}' == 'None'  CONTINUE
         Should Be True  '${led_value}' == '${expected_state}'
     END
 
diff --git a/redfish/managers/test_certificate.robot b/redfish/managers/test_certificate.robot
index 7d00362..20d6782 100644
--- a/redfish/managers/test_certificate.robot
+++ b/redfish/managers/test_certificate.robot
@@ -243,8 +243,7 @@
     ${match}=  Set Variable  ${False}
 
     FOR  ${Certificates_dict}  IN  @{Links['Certificates']}
-       Continue For Loop If
-       ...  "${Certificates_dict['@odata.id']}}" != "${match_cert}}"
+       IF  "${Certificates_dict['@odata.id']}}" != "${match_cert}}"  CONTINUE
        ${match}=  Set Variable  ${True}
     END
 
diff --git a/redfish/managers/test_managers_bmc.robot b/redfish/managers/test_managers_bmc.robot
index 9cd1bdd..d55f284 100644
--- a/redfish/managers/test_managers_bmc.robot
+++ b/redfish/managers/test_managers_bmc.robot
@@ -79,8 +79,7 @@
         Log Dictionary  ${active_channel_config["${channel_number}"]}
 
         # Skip channel if is_valid is false for the channel number
-        Continue For Loop If
-        ...  ${active_channel_config["${channel_number}"]["is_valid"]}==${FALSE}
+        IF  ${active_channel_config["${channel_number}"]["is_valid"]}==${FALSE}  CONTINUE
 
         # Get ethernet valid paths in redfish.
         # Example: ['/redfish/v1/Managers/${MANAGER_ID}/EthernetInterfaces']
diff --git a/redfish/systems/test_power_operations.robot b/redfish/systems/test_power_operations.robot
index 7ccd777..7b064d8 100644
--- a/redfish/systems/test_power_operations.robot
+++ b/redfish/systems/test_power_operations.robot
@@ -112,7 +112,7 @@
         ...  Remove Values From List  ${power_uri_list}  ${idx}
 
         # Check the next available element in the list.
-        Continue For Loop If  "${value}" == "${EMPTY}"
+        IF  "${value}" == "${EMPTY}"  CONTINUE
 
         Valid Dict  power_control[${0}]  ['PowerConsumedWatts']
 
diff --git a/redfish/update_service/test_bmc_image_switch.robot b/redfish/update_service/test_bmc_image_switch.robot
index 787d645..80d18fc 100755
--- a/redfish/update_service/test_bmc_image_switch.robot
+++ b/redfish/update_service/test_bmc_image_switch.robot
@@ -55,7 +55,7 @@
         Log To Console   LOOP_COUNT:${count} execution.
         Redfish BMC Switch Firmware Side
 
-        Continue For Loop If  '${power_on}' == 'NO'
+        IF  '${power_on}' == 'NO'  CONTINUE
 
         Log To Console   Power on requested, issuing power on.
         Redfish Power On
@@ -95,7 +95,7 @@
 
     # Get the backup firmware version for reference.
     FOR  ${id}  IN  @{fw_inv_dict.keys()}
-        Continue For Loop If  '${fw_inv_dict['${id}']['functional']}' == 'True'
+        IF  '${fw_inv_dict['${id}']['functional']}' == 'True'  CONTINUE
         # Find the non functional id and fetch the version.
         ${image_version}=  Set Variable  ${fw_inv_dict['${id}']['version']}
     END
diff --git a/security/test_bmc_connections.robot b/security/test_bmc_connections.robot
index 9d1e7a9..53265d2 100644
--- a/security/test_bmc_connections.robot
+++ b/security/test_bmc_connections.robot
@@ -204,7 +204,7 @@
         Log To Console  ${iter}th Refresh of home page
 
         Refresh GUI
-        Continue For Loop If   ${iter}%100 != 0
+        IF   ${iter}%100 != 0  CONTINUE
 
         # Every 100th iteration, check BMC GUI is responsive.
         ${status}=  Run Keyword And Return Status
@@ -248,7 +248,7 @@
 
         Run Keyword And Ignore Error
         ...  Redfish.Delete  /redfish/v1/AccountService/Accounts/test_user
-        Continue For Loop If   ${iter}%100 != 0
+        IF   ${iter}%100 != 0  CONTINUE
 
         # Every 100th iteration, check delete operation with valid session token.
         ${status}=  Run Keyword And Return Status
@@ -359,7 +359,7 @@
     FOR  ${iter}  IN RANGE  ${iterations}
         Log To Console  ${iter}th Redfish login with invalid credentials
         Run Keyword And Ignore Error  Redfish.Login   ${login_username}  incorrect_password
-        Continue For Loop If   ${iter}%100 != 0
+        IF   ${iter}%100 != 0  CONTINUE
 
         # Every 100th iteration, check Redfish is responsive.
         ${status}=  Run Keyword And Return Status
