'Take a screenshot and save on SCREENSHOTS_OUTPUT_PATH.'

def process_snap(self, shot):

    self.validate_json_keys(shot)
    if shot['registered']:
        self._do_fake_registration()
    if (USER_TYPE_STUDENT in shot[self.KEY_USERS]):
        self.browser_login_student(self.student_username, self.default_password, self.facility.name)
    elif (USER_TYPE_COACH in shot[self.KEY_USERS]):
        self.browser_login_teacher(self.coach_username, self.default_password, self.facility.name)
    elif (USER_TYPE_ADMIN in shot[self.KEY_USERS]):
        self.browser_login_user(self.admin_username, self.default_password)
    elif (USER_TYPE_GUEST in shot[self.KEY_USERS]):
        self.browser_logout_user()
    start_url = ('%s%s' % (self.live_server_url, shot['start_url']))
    self.browse_to(start_url)
    inputs = shot[self.KEY_INPUTS]
    focus = (shot[self.KEY_FOCUS] if (self.KEY_FOCUS in shot) else {})
    note = (shot[self.KEY_NOTES] if (self.KEY_NOTES in shot) else {})
    for item in inputs:
        for (key, value) in item.iteritems():
            if key:
                if (key.lower() == self.KEY_CMD_SLUG):
                    self.snap(slug=value, focus=focus, note=note)
                elif (key.lower() == self.KEY_CMD_SUBMIT):
                    self.browser_send_keys(Keys.RETURN)
                else:
                    if (key[0] == '#'):
                        kwargs = {'id': key[1:]}
                    elif (key[0] == '.'):
                        kwargs = {'css_class': key[1:]}
                    elif (key[0:2] == '//'):
                        kwargs = {'xpath': key}
                    else:
                        kwargs = {'name': key}
                    kwargs.update({'max_wait': 60})
                    self.browser_activate_element(**kwargs)
                    if value:
                        self.browser_send_keys(re.sub('\\\\s', '    ', value))
            elif ((not key) and value):
                self.browser_send_keys(re.sub('\\\\s', '    ', value))
    if shot[self.KEY_SLUG]:
        self.snap(slug=shot[self.KEY_SLUG], focus=focus, note=note)
    if shot['registered']:
        self._undo_fake_registration()
