diff --git a/gui/data/resource_variables.py b/gui/data/resource_variables.py
index fb1541f..a8cc1fb 100644
--- a/gui/data/resource_variables.py
+++ b/gui/data/resource_variables.py
@@ -65,6 +65,12 @@
     obmc_standby_state = "Standby"
     obmc_running_state = "Running"
 
+    # xpath for main menu.
+    xpath_select_server_control = "//button[contains(@class,'btn-control')]"
+
+    # xpath for sub main menu.
+    xpath_select_server_power_operations = "//a[@href='#/server-control/power-operations']"
+
     # Power operation elements needed for power on.
     header_wrapper = "3"
     header_wrapper_elt = "3"
diff --git a/gui/test/server_control/test_obmc_gui_server_power_operations.robot b/gui/test/server_control/test_obmc_gui_server_power_operations.robot
index 9438089..d3ceaa7 100644
--- a/gui/test/server_control/test_obmc_gui_server_power_operations.robot
+++ b/gui/test/server_control/test_obmc_gui_server_power_operations.robot
@@ -1,247 +1,62 @@
 *** Settings ***
-Documentation  This test suite will validate the "OpenBMC" GUI ->
-...            "Server control" main menu -> "Server power
-...            operations" submenu module.
 
-Resource         ../../lib/resource.robot
-Test Setup       Test Setup Execution  ${OBMC_PowerOff_state}
-Test Teardown    Test Teardown Execution
+Documentation   Test OpenBMC GUI "Server power operation" sub-menu of
+...             "Server control".
 
-Force Tags       Power_Operations
+Resource        ../../lib/resource.robot
+
+Suite Setup     Launch Browser And Login OpenBMC GUI
+Suite Teardown  Close Browser
+Test Setup      Navigate To Power Operation Page
+
 
 *** Variables ***
-${xpath_select_server_control}           //*[contains(@class,"btn-control")]
-${xpath_select_server_power_operations}  //a[@href='#/server-control/power-operations']
-${string_server_power_operations}        Server power operations
-${string_current_status}                 Current status
-${string_select_power_operation}         Select a power operation
-${string_warm_reboot}                    Attempts to perform an orderly shutdown before restarting the server
-${string_cold_reboot}                    Shuts down the server immediately, then restarts it
-${string_orderly_shutdown}               Attempts to stop all software on the server before removing power
-${string_immediate_shutdown}             Removes power from the server without waiting for software to stop
-${string_power_on}                       Attempts to power on the server
 
-*** Test Case ***
-# OpenBMC @ Power Off state test cases.
-
-Verify Orderly Shutdown Button At Power Off
-    [Documentation]  Verify orderly shutdown button is not present at power Off.
-    [Tags]  Verify_Orderly_Shutdown_Button_At_Power_Off
-
-    Select Server Power Operations Sub Menu
-    Element Should Not Be Visible  ${xpath_select_button_orderly_shutdown}
+${xpath_power_indicator_bar}     //*[@id='power-indicator-bar']
+${xpath_shutdown_button}         //button[contains(text(), "Shut down")]
+${xpath_reboot_button}           //button[contains(text(), "Reboot")]
 
 
-Verify Immediate Shutdown Button At Power Off
-    [Documentation]  Verify immediate shutdown button not present at power Off.
-    [Tags]  Verify_Immediate_Shutdown_Button_At_Power_Off
+*** Test Cases ***
 
-    Select Server Power Operations Sub Menu
-    Element Should Not Be Visible  ${xpath_select_button_immediate_shutdown}
+Verify System State At Power Off
+    [Documentation]  Verify system state at power off.
+    [Tags]  Verify_System_State_At_Power_Off
+
+    Test Setup Execution  ${OBMC_PowerOff_state}
+    Element Should Contain  ${xpath_power_indicator_bar}  Off
 
 
-Verify Warm Reboot Button At Power Off
-    [Documentation]  Verify warm reboot button is not present at power Off.
-    [Tags]  Verify_Warm_Reboot_Button_At_Power_Off
+Verify BMC IP In Server Power Operation Page
+    [Documentation]  Verify BMC IP in server power operation page.
+    [Tags]  Verify_BMC_IP_In_Server_Power_Operation_Page
 
-    Select Server Power Operations Sub Menu
-    Element Should Not Be Visible  ${xpath_select_button_warm_reboot}
-
-Verify Cold Reboot Button At Power Off
-    [Documentation]  Verify cold reboot button is not present at power Off.
-    [Tags]  Verify_Cold_Reboot_Button_At_Power_Off
-
-    Select Server Power Operations Sub Menu
-    Element Should Not Be Visible  ${xpath_select_button_cold_reboot}
-
-Verify Title Text Should Be Server Power Operations At Power Off
-    [Documentation]  Verify display of title text "Server Power Operations".
-    [Tags]  Verify_Title_Text_Should_Be_Server_Power_Operations_At_Power_Off
-    ...  OBMC_PowerOff_state
-
-    Select Server Power Operations Sub Menu
-    Verify Display Content  ${string_server_power_operations}
-
-Verify Sub Title Text Should Be Current Status At Power Off
-    [Documentation]  Verify display of title text "Current Status".
-    [Tags]  Verify_Sub_Title_Text_Should_Be_Current_Status_At_Power_Off
-    ...  OBMC_PowerOff_state
-
-    Select Server Power Operations Sub Menu
-    Verify Display Content  ${string_current_status}
-
-Verify Sub Title Text Should Be Select Power Operation At Power Off
-    [Documentation]  Verify display of title text "Select a power operation".
-    [Tags]  Verify_Sub_Title_Text_Should_Be_Select_Power_Operation_At_Power_Off
-    ...  OBMC_PowerOff_state
-
-    Select Server Power Operations Sub Menu
-    Verify Display Content  ${string_Select_power_operation}
-
-Verify Power On Button Should Present At Power Off
-    [Documentation]  Verify presence of "Warm reboot" button.
-    [Tags]  Verify_Power_On_Button_Should_Present_At_Power_Off
-    ...  OBMC_PowerOff_State
-
-    Select Server Power Operations Sub Menu
-    Verify Presence of Power Button And Text Info
-    ...  ${xpath_select_button_power_on}  ${string_power_on}
-
-Verify Power On At Power Off
-    [Documentation]  Verify presence of "Warm reboot" button.
-    [Tags]  Verify_Power_On_At_Power_Off
-    ...  OBMC_PowerOff_State
-
-    Power On OpenBMC
+    Element Should Contain  ${xpath_power_indicator_bar}  ${OPENBMC_HOST}
 
 
-# OpenBMC @ Power Running state test cases.
+Verify Shutdown Button At Power Off
+    [Documentation]  Verify that shutdown button is not present at power Off.
+    [Tags]  Verify_Shutdown_Button_At_Power_Off
 
-Verify Warm Reboot Button Should Present At Power Running
-    [Documentation]  Verify presence of "Warm reboot" button.
-    [Tags]  Verify_Warm_Reboot_Button_Should_Present_At_Power_Running
-    ...  OBMC_PowerRunning_State
-    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
+    Test Setup Execution  ${OBMC_PowerOff_state}
+    Element Should Not Be Visible  ${xpath_shutdown_button}
 
-    Select Server Power Operations Sub Menu
-    Verify Presence of Power Button And Text Info
-    ...  ${xpath_select_button_warm_reboot}  ${string_warm_reboot}
 
-Verify Cold Reboot Button Should Present At Power Running
-    [Documentation]  Verify presence of "cold reboot" button.
-    [Tags]  Verify_Cold_Reboot_Button_Should_Present_At_Power_Running
-    ...  OBMC_PowerRunning_State
-    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
+Verify Reboot Button At Power Off
+    [Documentation]  Verify that reboot button is not present at power Off.
+    [Tags]  Verify_Reboot_Button_At_Power_Off
 
-    Select Server Power Operations Sub Menu
-    Verify Presence of Power Button And Text Info
-    ...  ${xpath_select_button_cold_reboot}  ${string_cold_reboot}
+    Test Setup Execution  ${OBMC_PowerOff_state}
+    Element Should Not Be Visible  ${xpath_reboot_button}
 
-Verify Orderly Shutdown Button Should Present At Power Running
-    [Documentation]  Verify presence of "Orderly shutdow " button.
-    [Tags]  Verify_Orderly_Shutdown_Button_Should_Present_At_Power_Running
-    ...  OBMC_PowerRunning_State
-    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
-
-    Select Server Power Operations Sub Menu
-    Verify Presence of Power Button And Text Info
-    ...  ${xpath_select_button_orderly_shutdown}  ${string_orderly_shutdown}
-
-Verify Immediate Shutdown Button Should Present At Power Running
-    [Documentation]  Verify presence of "Immediate shutdown" button.
-    [Tags]  Verify_Immediate_Shutdown_Button_Should_Present_At_Power_Running
-    ...  OBMC_PowerRunning_State
-    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
-
-    Select Server Power Operations Sub Menu
-    Verify Presence of Power Button And Text Info
-    ...  ${xpath_select_button_immediate_shutdown}  ${string_immediate_shutdown}
-
-Verify Warm Reboot Should Not Happen By Clicking No Button
-    [Documentation]  Verify functionality of warm reboot "No" button clicking.
-    [Tags]  Verify_Warm_Reboot_Should_Not_Happen_By_Clicking_No_Button
-    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
-
-    Select Server Power Operations Sub Menu
-    Click Element  ${xpath_select_button_warm_reboot}
-    Verify Warning Message Display Text  ${xpath_operation_warning_message}
-    ...  ${text_warm_reboot_warning_message}
-    Verify No Button Functionality
-    ...  ${xpath_select_button_warm_reboot_no}
-
-Verify Cold Reboot Should Not Happen By Clicking No Button
-    [Documentation]  Verify functionality of cold reboot "No" button clicking.
-    [Tags]  Verify_Cold_Reboot_Should_Not_Happen_By_Clicking_No_Button
-    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
-
-    Select Server Power Operations Sub Menu
-    Click Element  ${xpath_select_button_cold_reboot}
-    Verify Warning Message Display Text  ${xpath_operation_warning_message}
-    ...  ${text_cold_reboot_warning_message}
-    Verify No Button Functionality
-    ...  ${xpath_select_button_cold_reboot_no}
-
-Verify Orderly Shutdown Should Not Happen By Clicking No Button
-    [Documentation]  Verify functionality of orderly shutdown "No" button clicking.
-    [Tags]  Verify_Orderly_Shutdown_Should_Not_Happen_By_Clicking_No_Button
-    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
-
-    Select Server Power Operations Sub Menu
-    Click Element  ${xpath_select_button_orderly_shutdown}
-    Verify Warning Message Display Text  ${xpath_operation_warning_message}
-    ...  ${text_orderly_shutdown_warning_message}
-    Verify No Button Functionality
-    ...  ${xpath_select_button_orderly_shutdown_button_no}
-
-Verify Immediate Shutdown Should Not Happen By Clicking No Button
-    [Documentation]  Verify functionality of immediate shutdown "No" button clicking.
-    [Tags]  Verify_Immediate_Shutdown_Should_Not_Happen_By_Clicking_No_Button
-    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
-
-    Select Server Power Operations Sub Menu
-    Click Element  ${xpath_select_button_immediate_shutdown}
-    Verify Warning Message Display Text  ${xpath_operation_warning_message}
-    ...  ${text_immediate_shutdown_warning_message}
-    Verify No Button Functionality
-    ...  ${xpath_select_button_immediate_shutdown_no}
-
-Verify Warm Reboot Should Happen By Clicking Yes Button
-    [Documentation]  Verify functionality of warm reboot "Yes" button clicking.
-    [Tags]  Verify_Warm_Reboot_Should_Happen_By_Clicking_Yes_Button
-    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
-
-    Select Server Power Operations Sub Menu
-    Warm Reboot openBMC
-
-Verify Cold Reboot Should Happen By Clicking Yes Button
-    [Documentation]  Verify functionality of cold reboot "Yes" button clicking.
-    [Tags]  Verify_Cold_Reboot_Should_Happen_By_Clicking_Yes_Button
-    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
-
-    Select Server Power Operations Sub Menu
-    Cold Reboot openBMC
-
-Verify Orderly Shutdown Should Happen By Clicking Yes Button
-    [Documentation]  Verify functionality of orderly shutdown "Yes" button clicking.
-    [Tags]  Verify_Orderly_Shutdown_Should_Happen_By_Clicking_Yes_Button
-    ...  OBMC_PowerRunning_State
-    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
-
-    Select Server Power Operations Sub Menu
-    Orderly Shutdown OpenBMC
-
-Verify Immediate Shutdown Should Happen By Clicking Yes Button
-    [Documentation]  Verify functionality of immediate shutdown "Yes" button clicking.
-    [Tags]  Verify_Immediate_Shutdown_Should_Happen_By_Clicking_Yes_Button
-    ...  OBMC_PowerRunning_State
-    [Setup]  Test Setup Execution  ${OBMC_PowerRunning_state}
-
-    Select Server Power Operations Sub Menu
-    Immediate Shutdown openBMC
 
 *** Keywords ***
-Select Server Power Operations Sub Menu
-    [Documentation]  Selecting of OpenBMC "Server Power Operations" Submenu.
 
-    Click Button  ${xpath_select_server_control}
+Navigate To Power Operation Page
+   [Documentation]  Navigate to server power operation page.
+
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
+    Click Element  ${xpath_select_server_control}
+    Wait Until Page Does Not Contain Element  ${xpath_refresh_circle}
     Click Element  ${xpath_select_server_power_operations}
-
-Verify Presence of Power Button And Text Info
-    [Documentation]  Verify the presence of power button and text message info.
-    [Arguments]      ${power_button}  ${power_button_text}
-
-    # power_button         Xpath of power button.
-    # power_button_text    Text message info.
-
-    Page Should Contain Button  ${power_button}
-    Verify Display Content  ${power_button_text}
-
-Verify No Button Functionality
-    [Documentation]  Verify the functionality of "No" button click.
-    [Arguments]      ${xpath_no_button}
-
-    # xpath_no_button      Xpath of "No" button.
-
-    Click No Button  ${xpath_no_button}
-    ${obmc_current_state}=  Get Text  ${xpath_power_indicator}
-    Should Contain  ${obmc_current_state}  ${obmc_running_state}
+    Wait Until Page Contains  Server power operations
