diff --git a/src/SeleniumLibrary/__init__.pyi b/src/SeleniumLibrary/__init__.pyi
index 170390580..47a98e3ce 100644
--- a/src/SeleniumLibrary/__init__.pyi
+++ b/src/SeleniumLibrary/__init__.pyi
@@ -133,7 +133,7 @@ class SeleniumLibrary:
     def select_all_from_list(self, locator: Union[selenium.webdriver.remote.webelement.WebElement, str]): ...
     def select_checkbox(self, locator: Union[selenium.webdriver.remote.webelement.WebElement, str]): ...
     def select_frame(self, locator: Union[selenium.webdriver.remote.webelement.WebElement, str]): ...
-    def select_from_list_by_index(self, locator: Union[selenium.webdriver.remote.webelement.WebElement, str], *indexes: str): ...
+    def select_from_list_by_index(self, locator: Union[selenium.webdriver.remote.webelement.WebElement, str], *indexes: int): ...
     def select_from_list_by_label(self, locator: Union[selenium.webdriver.remote.webelement.WebElement, str], *labels: str): ...
     def select_from_list_by_value(self, locator: Union[selenium.webdriver.remote.webelement.WebElement, str], *values: str): ...
     def select_radio_button(self, group_name: str, value: str): ...
@@ -147,7 +147,7 @@ class SeleniumLibrary:
     def set_window_size(self, width: int, height: int, inner: bool = False): ...
     def simulate_event(self, locator: Union[selenium.webdriver.remote.webelement.WebElement, str], event: str): ...
     def submit_form(self, locator: Optional[Union[selenium.webdriver.remote.webelement.WebElement, None, str]] = None): ...
-    def switch_browser(self, index_or_alias: str): ...
+    def switch_browser(self, index_or_alias: Union[str, int]): ...
     def switch_window(self, locator: Union[list, str] = 'MAIN', timeout: Optional[Union[str, None]] = None, browser: str = 'CURRENT'): ...
     def table_cell_should_contain(self, locator: Union[selenium.webdriver.remote.webelement.WebElement, None, str], row: int, column: int, expected: str, loglevel: str = 'TRACE'): ...
     def table_column_should_contain(self, locator: Union[selenium.webdriver.remote.webelement.WebElement, None, str], column: int, expected: str, loglevel: str = 'TRACE'): ...
@@ -163,7 +163,7 @@ class SeleniumLibrary:
     def unselect_all_from_list(self, locator: Union[selenium.webdriver.remote.webelement.WebElement, str]): ...
     def unselect_checkbox(self, locator: Union[selenium.webdriver.remote.webelement.WebElement, str]): ...
     def unselect_frame(self): ...
-    def unselect_from_list_by_index(self, locator: Union[selenium.webdriver.remote.webelement.WebElement, str], *indexes: str): ...
+    def unselect_from_list_by_index(self, locator: Union[selenium.webdriver.remote.webelement.WebElement, str], *indexes: int): ...
     def unselect_from_list_by_label(self, locator: Union[selenium.webdriver.remote.webelement.WebElement, str], *labels: str): ...
     def unselect_from_list_by_value(self, locator: Union[selenium.webdriver.remote.webelement.WebElement, str], *values: str): ...
     def wait_for_condition(self, condition: str, timeout: Optional[Union[datetime.timedelta, None]] = None, error: Optional[Union[str, None]] = None): ...
diff --git a/src/SeleniumLibrary/keywords/browsermanagement.py b/src/SeleniumLibrary/keywords/browsermanagement.py
index f52ed23c4..b45fe2912 100644
--- a/src/SeleniumLibrary/keywords/browsermanagement.py
+++ b/src/SeleniumLibrary/keywords/browsermanagement.py
@@ -344,7 +344,7 @@ def _make_new_browser(
     @keyword
     def create_webdriver(
         self, driver_name: str, alias: Optional[str] = None, kwargs={}, **init_kwargs
-    ) -> str:
+    ) -> int:
         """Creates an instance of Selenium WebDriver.
 
         Like `Open Browser`, but allows passing arguments to the created
@@ -400,7 +400,7 @@ def _wrap_event_firing_webdriver(self, driver):
         return EventFiringWebDriver(driver, self.ctx.event_firing_webdriver())
 
     @keyword
-    def switch_browser(self, index_or_alias: str):
+    def switch_browser(self, index_or_alias: Union[str, int]):
         """Switches between active browsers using ``index_or_alias``.
 
         Indices are returned by the `Open Browser` keyword and aliases can
diff --git a/src/SeleniumLibrary/keywords/selectelement.py b/src/SeleniumLibrary/keywords/selectelement.py
index 910fb081e..56fa18feb 100644
--- a/src/SeleniumLibrary/keywords/selectelement.py
+++ b/src/SeleniumLibrary/keywords/selectelement.py
@@ -206,7 +206,7 @@ def select_all_from_list(self, locator: Union[WebElement, str]):
             select.select_by_index(index)
 
     @keyword
-    def select_from_list_by_index(self, locator: Union[WebElement, str], *indexes: str):
+    def select_from_list_by_index(self, locator: Union[WebElement, str], *indexes: int):
         """Selects options from selection list ``locator`` by ``indexes``.
 
         Indexes of list options start from 0.
@@ -228,7 +228,7 @@ def select_from_list_by_index(self, locator: Union[WebElement, str], *indexes: s
         )
         select = self._get_select_list(locator)
         for index in indexes:
-            select.select_by_index(int(index))
+            select.select_by_index(index)
 
     @keyword
     def select_from_list_by_value(self, locator: Union[WebElement, str], *values: str):
@@ -293,7 +293,7 @@ def unselect_all_from_list(self, locator: Union[WebElement, str]):
 
     @keyword
     def unselect_from_list_by_index(
-        self, locator: Union[WebElement, str], *indexes: str
+        self, locator: Union[WebElement, str], *indexes: int
     ):
         """Unselects options from selection list ``locator`` by ``indexes``.
 
@@ -316,7 +316,7 @@ def unselect_from_list_by_index(
                 "Un-selecting options works only with multi-selection lists."
             )
         for index in indexes:
-            select.deselect_by_index(int(index))
+            select.deselect_by_index(index)
 
     @keyword
     def unselect_from_list_by_value(
