diff --git a/mmengine/hooks/param_scheduler_hook.py b/mmengine/hooks/param_scheduler_hook.py
index a85ef3ac432d6421605335cf19ac6464ded48ef5..cb2e5fbd5821f6b9e68d294fa94aa77be3d87850 100644
--- a/mmengine/hooks/param_scheduler_hook.py
+++ b/mmengine/hooks/param_scheduler_hook.py
@@ -31,7 +31,7 @@ class ParamSchedulerHook(Hook):
                 In order to keep this interface consistent with other hooks, we
                 keep ``data_batch`` here. Defaults to None.
         """
-        for scheduler in runner.schedulers:
+        for scheduler in runner.param_schedulers:  # type: ignore
             if not scheduler.by_epoch:
                 scheduler.step()
 
@@ -41,6 +41,6 @@ class ParamSchedulerHook(Hook):
         Args:
             runner (Runner): The runner of the training process.
         """
-        for scheduler in runner.schedulers:
+        for scheduler in runner.param_schedulers:  # type: ignore
             if scheduler.by_epoch:
                 scheduler.step()
diff --git a/tests/test_hook/test_param_scheduler_hook.py b/tests/test_hook/test_param_scheduler_hook.py
index f944d3ed40c9f3beeae8cde38a1b023f61c049fe..8b569d51caad38b118a62c3c0c52e84cc26113b9 100644
--- a/tests/test_hook/test_param_scheduler_hook.py
+++ b/tests/test_hook/test_param_scheduler_hook.py
@@ -12,7 +12,7 @@ class TestParamSchedulerHook:
         scheduler = Mock()
         scheduler.step = Mock()
         scheduler.by_epoch = False
-        Runner.schedulers = [scheduler]
+        Runner.param_schedulers = [scheduler]
         Hook.after_train_iter(Runner)
         scheduler.step.assert_called()
 
@@ -22,6 +22,6 @@ class TestParamSchedulerHook:
         scheduler = Mock()
         scheduler.step = Mock()
         scheduler.by_epoch = True
-        Runner.schedulers = [scheduler]
+        Runner.param_schedulers = [scheduler]
         Hook.after_train_epoch(Runner)
         scheduler.step.assert_called()