diff --git a/src/SeleniumLibrary/__init__.pyi b/src/SeleniumLibrary/__init__.pyi
index debbc4efa..deebd5493 100644
--- a/src/SeleniumLibrary/__init__.pyi
+++ b/src/SeleniumLibrary/__init__.pyi
@@ -186,6 +186,7 @@ class SeleniumLibrary:
     def wait_until_location_is_not(self, location: str, timeout: Optional[Optional] = None, message: Optional[Optional] = None): ...
     def wait_until_page_contains(self, text: str, timeout: Optional[Optional] = None, error: Optional[Optional] = None): ...
     def wait_until_page_contains_element(self, locator: Union, timeout: Optional[Optional] = None, error: Optional[Optional] = None, limit: Optional[Optional] = None): ...
+    def wait_until_page_contains_any_of_elements(self, locators: list[Union[WebElement, None, str]], timeout: Optional[timedelta] = None, error: Optional[str] = None): ...
     def wait_until_page_does_not_contain(self, text: str, timeout: Optional[Optional] = None, error: Optional[Optional] = None): ...
     def wait_until_page_does_not_contain_element(self, locator: Union, timeout: Optional[Optional] = None, error: Optional[Optional] = None, limit: Optional[Optional] = None): ...
     # methods from library.
diff --git a/src/SeleniumLibrary/keywords/waiting.py b/src/SeleniumLibrary/keywords/waiting.py
index eeec6756e..eff03542f 100644
--- a/src/SeleniumLibrary/keywords/waiting.py
+++ b/src/SeleniumLibrary/keywords/waiting.py
@@ -257,6 +257,29 @@ def wait_until_page_contains_element(
             error,
         )
 
+    @keyword
+    def wait_until_page_contains_any_of_elements(
+        self,
+        locators: list[Union[WebElement, None, str]],
+        timeout: Optional[timedelta] = None,
+        error: Optional[str] = None,
+    ):
+        """Waits until any of the element locators in ``locators`` appears on the current page.
+
+        Fails if ``timeout`` expires before the element appears. See
+        the `Timeouts` section for more information about using timeouts and
+        their default value and the `Locating elements` section for details
+        about the locator syntax.
+
+        ``error`` can be used to override the default error message.
+        """
+        return self._wait_until(
+            lambda: any([self.find_element(locator, required=False) for locator in locators]),
+            f"Elements did not appear in <TIMEOUT>: \n '{locators}'",
+            timeout,
+            error,
+        )
+    
     @keyword
     def wait_until_page_does_not_contain_element(
         self,