code: def screenshot(self, png_filename=None, format='raw'):
          
          value = self.http.get('screenshot').value
          raw_value = base64.b64decode(value)
          png_header = b"\x89PNG\r\n\x1a\n"
          if not raw_value.startswith(png_header) and png_filename:
              raise WDAError(-1, "screenshot png format error")
  
          if png_filename:
              with open(png_filename, 'wb') as f:
                  f.write(raw_value)
  
          if format == 'raw':
              return raw_value
          elif format == 'pillow':
              from PIL import Image
              buff = io.BytesIO(raw_value)
              return Image.open(buff)
          else:
              raise ValueError("unknown format")
docs: Screenshot with PNG format
  
          Args:
              png_filename(string): optional, save file name
              format(string): return format, pillow or raw(default)
          Returns:
              raw data or PIL.Image
          
          Raises:
              WDAError