# Path: qacode/core/exceptions/core_exception.py
# class CoreException(Exception):
#     """Base Exception class for inherit new exceptions on library"""
# 
#     def __init__(self, msg=NOT_MSG, log=None, info_bot=None):
#         """Allow to handle Qacode and/or Selenium exceptions
# 
#         Keyword Arguments:
#             msg {str} -- Exception message (default: {NOT_MSG})
#             log {Log} -- Logging class (default: {None})
#             info_bot {dict} -- Qacode+Selenium information (default: {None})
#         """
#         self.is_just_msg = False
#         self.msg = msg
#         if info_bot is None:
#             info_bot = {}
#             self.is_just_msg = True
#         self.info_bot = info_bot
#         self.browser = self.info_bot.get("browser") or ""
#         self.mode = self.info_bot.get("mode") or ""
#         self.method = self.info_bot.get("method") or ""
#         self.err = info_bot.get("err") or {}
#         if log is None:
#             self.log = Log()
#         else:
#             self.log = log
#         self.log.error(str(self))
# 
#     def __str__(self):
#         """Representation of class"""
#         msg = ""
#         if self.is_just_msg:
#             return self.msg
#         msg += " | "
#         msg += "browser='{}' ".format(self.browser)
#         msg += "mode='{}' ".format(self.mode)
#         msg += "method='{}' ".format(self.method)
#         if self.err is None:
#             return msg
#         if isinstance(self.err, WebDriverException):
#             msg += "{}{} - args='{}'".format(
#                 "Selenium error: ", type(self.err), self.err.args)
#         return "{}".format(msg)


import sys
from qacode.core.exceptions.core_exception import CoreException
from selenium.common.exceptions import (
    NoSuchElementException,
    StaleElementReferenceException,
    WebDriverException
)
from selenium.webdriver.common.by import By
from selenium.webdriver.remote.webelement import WebElement
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait

        self.driver.forward()

    def reload(self):
        """Go reload page using browser functionality"""
        self.driver.refresh()

    def get_log(self, log_name='browser', raises=False):
        """Get selenium log by name, this depends of
            driver mode and browser what it's using each time

        Keyword Arguments:
            log_name {str} -- get log type lanes (default: {'browser'})

        Raises:
            CoreException -- if log_name value not in list
                of valid values : browser, driver, client, server

        Returns:
            list() -- list of messages typed on a log_name
        """
        method = self.method_name()
        try:
            return {
                'browser': self.driver.get_log,
                'driver': self.driver.get_log,
                'client': self.driver.get_log,
                'server': self.driver.get_log,
            }[log_name](log_name)
        except (KeyError, WebDriverException) as err:
            if isinstance(err, KeyError):

# Path: qacode/core/exceptions/core_exception.py
# class CoreException(Exception):
#     """Base Exception class for inherit new exceptions on library"""
# 
#     def __init__(self, msg=NOT_MSG, log=None, info_bot=None):
#         """Allow to handle Qacode and/or Selenium exceptions
# 
#         Keyword Arguments:
#             msg {str} -- Exception message (default: {NOT_MSG})
#             log {Log} -- Logging class (default: {None})
#             info_bot {dict} -- Qacode+Selenium information (default: {None})
#         """
#         self.is_just_msg = False
#         self.msg = msg
#         if info_bot is None:
#             info_bot = {}
#             self.is_just_msg = True
#         self.info_bot = info_bot
#         self.browser = self.info_bot.get("browser") or ""
#         self.mode = self.info_bot.get("mode") or ""
#         self.method = self.info_bot.get("method") or ""
#         self.err = info_bot.get("err") or {}
#         if log is None:
#             self.log = Log()
#         else:
#             self.log = log
#         self.log.error(str(self))
# 
#     def __str__(self):
#         """Representation of class"""
#         msg = ""
#         if self.is_just_msg:
#             return self.msg
#         msg += " | "
#         msg += "browser='{}' ".format(self.browser)
#         msg += "mode='{}' ".format(self.mode)
#         msg += "method='{}' ".format(self.method)
#         if self.err is None:
#             return msg
#         if isinstance(self.err, WebDriverException):
#             msg += "{}{} - args='{}'".format(
#                 "Selenium error: ", type(self.err), self.err.args)
#         return "{}".format(msg)


# Path: qacode/core/bots/modules/nav_base.py
import sys
from qacode.core.exceptions.core_exception import CoreException
from selenium.common.exceptions import (
    NoSuchElementException,
    StaleElementReferenceException,
    WebDriverException
)
from selenium.webdriver.common.by import By
from selenium.webdriver.remote.webelement import WebElement
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait

        self.driver.forward()

    def reload(self):
        """Go reload page using browser functionality"""
        self.driver.refresh()

    def get_log(self, log_name='browser', raises=False):
        """Get selenium log by name, this depends of
            driver mode and browser what it's using each time

        Keyword Arguments:
            log_name {str} -- get log type lanes (default: {'browser'})

        Raises:
            CoreException -- if log_name value not in list
                of valid values : browser, driver, client, server

        Returns:
            list() -- list of messages typed on a log_name
        """
        method = self.method_name()
        try:
            return {
                'browser': self.driver.get_log,
                'driver': self.driver.get_log,
                'client': self.driver.get_log,
                'server': self.driver.get_log,
            }[log_name](log_name)
        except (KeyError, WebDriverException) as err:
            if isinstance(err, KeyError):

                raise CoreException(
