code: def switch_to_window(driver, window, timeout=settings.SMALL_TIMEOUT):
      
  
      start_ms = time.time() * 1000.0
      stop_ms = start_ms + (timeout * 1000.0)
      if isinstance(window, int):
          for x in range(int(timeout * 10)):
              try:
                  window_handle = driver.window_handles[window]
                  driver.switch_to.window(window_handle)
                  return True
              except IndexError:
                  now_ms = time.time() * 1000.0
                  if now_ms >= stop_ms:
                      break
                  time.sleep(0.1)
          raise Exception("Window was not present after %s seconds!" % timeout)
      else:
          window_handle = window
          for x in range(int(timeout * 10)):
              try:
                  driver.switch_to.window(window_handle)
                  return True
              except NoSuchWindowException:
                  now_ms = time.time() * 1000.0
                  if now_ms >= stop_ms:
                      break
                  time.sleep(0.1)
          raise Exception("Window was not present after %s seconds!" % timeout)
docs: Wait for a window to appear, and switch to it. This should be usable
      as a drop-in replacement for driver.switch_to.window().
      @Params
      driver - the webdriver object (required)
      window - the window index or window handle
      timeout - the time to wait for the window in seconds