docstr: Hook method to take snapshot when a selenium test fails. The
  snapshot is placed under.
  
      - `/tmp/dash_artifacts` in linux
      - `%TEMP` in windows
  with a filename combining test case name and the
  running selenium session id
code: def take_snapshot(self, name):
      """Hook method to take snapshot when a selenium test fails. The
      snapshot is placed under.
  
          - `/tmp/dash_artifacts` in linux
          - `%TEMP` in windows
      with a filename combining test case name and the
      running selenium session id
      """
      target = (
          "/tmp/dash_artifacts"
          if not self._is_windows()
          else os.getenv("TEMP")
      )
      if not os.path.exists(target):
          try:
              os.mkdir(target)
          except OSError:
              logger.exception("cannot make artifacts")
  
      self.driver.save_screenshot(
          f"{target}/{name}_{self.session_id}.png"
      )
  
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 6 for calling the Browser obj's underlying member method code with example usage: obj.take_snapshot(name) without return types