'Go to page specified via path parameter.
* page_class parameter overrides basic process for receiving
pageobject'

def _go_to_page(self, path, page_class=None):

    path_len = len(path)
    if ((path_len < self.MIN_SUB_LEVEL) or (path_len > self.MAX_SUB_LEVEL)):
        raise ValueError(('Navigation    path    length    should    be    in    the    interval    between    %s    and    %s,    but    its    length    is    %s' % (self.MIN_SUB_LEVEL, self.MAX_SUB_LEVEL, path_len)))
    if (path_len == self.MIN_SUB_LEVEL):
        if (path[0] == 'Settings'):
            self._go_to_settings_page(path[1])
        else:
            self._go_to_side_menu_page([path[0], None, path[1]])
    else:
        self._go_to_side_menu_page(path[:self.SIDE_MENU_MAX_LEVEL])
    if (path_len == self.MAX_SUB_LEVEL):
        self._go_to_tab_menu_page(path[(self.MAX_SUB_LEVEL - 1)])
    return self._get_page_class(path, page_class)(self.driver, self.conf)
