docstr: Explicit wait until the element is present, timeout if not set,
  equals to the fixture's `wait_timeout` shortcut to `WebDriverWait` with
  `EC.presence_of_element_located`.
code: def wait_for_element_by_id(self, element_id, timeout=None):
      """Explicit wait until the element is present, timeout if not set,
      equals to the fixture's `wait_timeout` shortcut to `WebDriverWait` with
      `EC.presence_of_element_located`."""
      return self._wait_for(
          EC.presence_of_element_located(
              (By.ID, element_id),
          ),
          timeout,
          f"timeout {timeout or self._wait_timeout}s => waiting for element id {element_id}",
      )
  
imports: import os
  import sys
  import time
  import logging
  import warnings
  import percy
  import requests
  from selenium import webdriver
  from selenium.webdriver.support import expected_conditions
  from selenium.webdriver.common.by import By
  from selenium.webdriver.support.wait import WebDriverWait
  from selenium.webdriver.common.keys import Keys
  from selenium.webdriver.common.action_chains import ActionChains
  from selenium.common.exceptions import WebDriverException, TimeoutException, MoveTargetOutOfBoundsException
  from dash.testing.wait import text_to_equal, style_to_equal, class_to_equal, contains_text, contains_class, until
  from dash.testing.dash_page import DashPageMixin
  from dash.testing.errors import DashAppLoadingError, BrowserError, TestingTimeoutError
  from dash.testing.consts import SELENIUM_GRID_DEFAULT
label_desc: Use image node_id 14 for calling the Browser obj's underlying member method code with example usage: obj.wait_for_element_by_id(element_id, timeout) and returns: self