Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: fix pipeline for forks #1040

Merged
merged 6 commits into from
Feb 1, 2024

chore: skip release steps for fork requests

e401eb0
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
Merged

ci: fix pipeline for forks #1040

chore: skip release steps for fork requests
e401eb0
Select commit
Loading
Failed to load commit list.
GitHub Actions / test-report-ui-9.1.3-input failed Feb 1, 2024 in 1s

117 passed, 2 failed and 0 skipped

Tests failed

❌ test-results/junit.xml

119 tests were completed in 1451s with 117 passed, 2 failed and 0 skipped.

Test suite Passed Failed Skipped Time
pytest 117✅ 2❌ 1451s

❌ pytest

test_input_page.chrome_TestInputPage
  ✅ test_inputs_displayed_columns
  ✅ test_inputs_pagination_list
  ✅ test_inputs_pagination
  ✅ test_inputs_sort_functionality
  ✅ test_inputs_filter_functionality_negative
  ✅ test_inputs_filter_functionality_positive
  ✅ test_inputs_default_rows_in_table
  ✅ test_inputs_create_new_input_list_values
  ✅ test_inputs_input_type_list_values
  ✅ test_inputs_more_info
  ✅ test_inputs_enable_disable
  ✅ test_inputs_count
  ✅ test_inputs_title_and_description
  ✅ test_example_input_one_required_field_name
  ✅ test_example_input_one_valid_length_name
  ✅ test_example_input_one_valid_input_name
  ✅ test_example_input_one_list_single_select_group_test
  ✅ test_example_input_one_select_value_single_select_group_test
  ✅ test_example_input_one_search_value_single_select_group_test
  ✅ test_example_input_one_default_value_multiple_select_test
  ✅ test_example_input_one_list_multiple_select_test
  ✅ test_example_input_one_select_value_multiple_select_test
  ✅ test_example_input_one_select_multiple_values_multiple_select_test
  ✅ test_example_input_one_deselect_multiple_select_test
  ✅ test_example_input_one_search_value_multiple_select_test
  ✅ test_example_input_one_default_value_example_checkbox
  ✅ test_example_input_one_unchecked_example_checkbox
  ✅ test_example_input_one_checked_example_checkbox
  ✅ test_example_input_one_default_value_example_radio
  ✅ test_example_input_one_select_value_example_radio
  ✅ test_example_input_one_required_field_interval
  ✅ test_example_input_one_valid_input_interval
  ✅ test_example_input_one_required_field_index
  ✅ test_example_input_one_default_value_index
  ✅ test_example_input_one_required_field_example_account
  ✅ test_example_input_one_required_field_object
  ✅ test_example_input_one_required_field_object_fields
  ✅ test_example_input_one_required_field_order_by
  ✅ test_example_input_one_default_value_order_by
  ✅ test_example_input_one_required_field_textarea
  ✅ test_example_input_one_fields_label_entity
  ✅ test_example_input_two_fields_label_entity
  ✅ test_example_input_one_help_text_entity
  ✅ test_example_input_one_valid_input_query_start_date
  ✅ test_example_input_one_default_value_limit
  ✅ test_example_input_one_help_link
  ✅ test_example_input_one_add_frontend_backend_validation
  ✅ test_example_input_one_edit_uneditable_field_name
  ✅ test_example_input_one_edit_frontend_backend_validation
  ✅ test_example_input_one_clone_default_values
  ✅ test_example_input_one_clone_frontend_backend_validation
  ✅ test_example_input_one_delete_row_frontend_validation
  ✅ test_example_input_one_add_close_entity
  ✅ test_example_input_one_edit_close_entity
  ✅ test_example_input_one_clone_close_entity
  ✅ test_example_input_one_delete_close_entity
  ✅ test_example_input_one_add_cancel_entity
  ✅ test_example_input_one_edit_cancel_entity
  ✅ test_example_input_one_clone_cancel_entity
  ✅ test_example_input_one_delete_cancel_entity
  ✅ test_example_input_one_add_duplicate_names
  ✅ test_example_input_one_clone_duplicate_names
  ✅ test_example_input_one_add_valid_title
  ✅ test_example_input_one_edit_valid_title
  ✅ test_example_input_one_clone_valid_title
  ✅ test_example_input_one_delete_valid_title
  ✅ test_example_input_one_delete_valid_prompt_message
  ✅ test_example_input_two_required_field_name
  ✅ test_example_input_two_valid_length_name
  ✅ test_example_input_two_valid_input_name
  ✅ test_example_input_two_required_field_interval
  ✅ test_example_input_two_valid_input_interval
  ✅ test_example_input_two_required_field_index
  ✅ test_example_input_two_default_value_index
  ✅ test_example_input_two_required_field_example_example_account
  ✅ test_example_input_two_required_field_example_multiple_select
  ✅ test_example_input_two_list_example_multiple_select
  ✅ test_example_input_two_select_select_value_example_multiple_select
  ✅ test_example_input_two_select_multiple_values_example_multiple_select
  ✅ test_example_input_two_help_text_entity
  ✅ test_example_input_two_checked_example_checkbox
  ✅ test_example_input_two_unchecked_example_checkbox
  ✅ test_example_input_two_required_field_example_radio
  ✅ test_example_input_two_select_value_example_radio
  ✅ test_example_input_two_valid_input_query_start_date
  ✅ test_example_input_two_add_frontend_backend_validation
  ✅ test_example_input_two_edit_uneditable_field_name
  ✅ test_example_input_two_edit_frontend_backend_validation
  ✅ test_example_input_two_clone_default_values
  ✅ test_example_input_two_clone_frontend_backend_validation
  ✅ test_example_input_two_delete_row_frontend_backend_validation
  ✅ test_example_input_two_add_close_entity
  ✅ test_example_input_two_edit_close_entity
  ✅ test_example_input_two_clone_close_entity
  ✅ test_example_input_two_delete_close_entity
  ✅ test_example_input_two_add_cancel_entity
  ✅ test_example_input_two_edit_cancel_entity
  ✅ test_example_input_two_clone_cancel_entity
  ✅ test_example_input_two_delete_cancel_entity
  ✅ test_example_input_two_add_duplicate_names
  ✅ test_example_input_two_clone_duplicate_names
  ✅ test_example_input_two_add_valid_title
  ✅ test_example_input_two_edit_valid_title
  ✅ test_example_input_two_clone_valid_title
  ✅ test_example_input_two_delete_valid_title
  ✅ test_example_input_two_delete_valid_prompt_message
  ✅ test_inputs_enable_all_title_message
  ✅ test_inputs_disable_all_title_message
  ✅ test_inputs_enable_all_close
  ✅ test_inputs_disable_all_close
  ✅ test_inputs_enable_all_deny
  ✅ test_inputs_disable_all_deny
  ✅ test_inputs_disable_enable_all
  ✅ test_inputs_disable_all_enable_all_input_one_input_two
  ✅ test_inputs_enable_all_some_already_enabled
  ✅ test_inputs_disable_all_some_already_disabled
  ✅ test_inputs_textarea_height
  ❌ test_inputs_textarea_big_input
	self = <test_input_page.TestInputPage object at 0x7f466ad0e6d0>
  ❌ test_inputs_textarea_scroll
	self = <test_input_page.TestInputPage object at 0x7f466ad08310>

Annotations

Check failure on line 0 in test-results/junit.xml

See this annotation in the file changed.

@github-actions github-actions / test-report-ui-9.1.3-input

pytest ► test_input_page.chrome_TestInputPage ► test_inputs_textarea_big_input

Failed test found in:
  test-results/junit.xml
Error:
  self = <test_input_page.TestInputPage object at 0x7f466ad0e6d0>
Raw output
self = <test_input_page.TestInputPage object at 0x7f466ad0e6d0>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f466abd6cd0>
ucc_smartx_rest_helper = <pytest_splunk_addon_ui_smartx.base_test.RestHelper object at 0x7f466abd6fd0>
add_input_one = {'entry': [{'acl': {'app': 'Splunk_TA_UCCExample', 'can_change_perms': True, 'can_list': True, 'can_share_app': True, ...nf-inputs/_reload', 'create': '/servicesNS/nobody/Splunk_TA_UCCExample/configs/conf-inputs/_new'}, 'messages': [], ...}

    @pytest.mark.execute_enterprise_cloud_true
    @pytest.mark.forwarder
    @pytest.mark.input
    def test_inputs_textarea_big_input(
        self, ucc_smartx_selenium_helper, ucc_smartx_rest_helper, add_input_one
    ):
        """
        Verifies that textarea can handle big inputs
        """
>       input_page = InputPage(ucc_smartx_selenium_helper, ucc_smartx_rest_helper)

tests/ui/test_input_page.py:2442: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/ui/pages/input_page.py:251: in __init__
    super().__init__(ucc_smartx_selenium_helper, ucc_smartx_rest_helper, open_page)
../../../.cache/pypoetry/virtualenvs/splunk-add-on-ucc-framework-rPXMmn5S-py3.7/lib/python3.7/site-packages/pytest_splunk_addon_ui_smartx/pages/page.py:35: in __init__
    self.open()
tests/ui/pages/input_page.py:304: in open
    self.browser.get(f"{self.splunk_web_url}/en-US/app/{C.ADDON_NAME}/inputs")
../../../.cache/pypoetry/virtualenvs/splunk-add-on-ucc-framework-rPXMmn5S-py3.7/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py:333: in get
    self.execute(Command.GET, {'url': url})
../../../.cache/pypoetry/virtualenvs/splunk-add-on-ucc-framework-rPXMmn5S-py3.7/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py:321: in execute
    self.error_handler.check_response(response)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x7f466dfa3990>
response = {'status': 404, 'value': '{"value":{"error":"invalid session id","message":"invalid session id","stacktrace":"#0 0x559...\\n#11 0x5597e64ae69f \\u003Cunknown>\\n#12 0x5597e61c78da \\u003Cunknown>\\n#13 0x7f8616829d90 \\u003Cunknown>\\n"}}'}

    def check_response(self, response):
        """
        Checks that a JSON response from the WebDriver does not have an error.
    
        :Args:
         - response - The JSON response from the WebDriver server as a dictionary
           object.
    
        :Raises: If the response contains an error message.
        """
        status = response.get('status', None)
        if status is None or status == ErrorCode.SUCCESS:
            return
        value = None
        message = response.get("message", "")
        screen = response.get("screen", "")
        stacktrace = None
        if isinstance(status, int):
            value_json = response.get('value', None)
            if value_json and isinstance(value_json, basestring):
                import json
                try:
                    value = json.loads(value_json)
                    if len(value.keys()) == 1:
                        value = value['value']
                    status = value.get('error', None)
                    if status is None:
                        status = value["status"]
                        message = value["value"]
                        if not isinstance(message, basestring):
                            value = message
                            message = message.get('message')
                    else:
                        message = value.get('message', None)
                except ValueError:
                    pass
    
        exception_class = ErrorInResponseException
        if status in ErrorCode.NO_SUCH_ELEMENT:
            exception_class = NoSuchElementException
        elif status in ErrorCode.NO_SUCH_FRAME:
            exception_class = NoSuchFrameException
        elif status in ErrorCode.NO_SUCH_WINDOW:
            exception_class = NoSuchWindowException
        elif status in ErrorCode.STALE_ELEMENT_REFERENCE:
            exception_class = StaleElementReferenceException
        elif status in ErrorCode.ELEMENT_NOT_VISIBLE:
            exception_class = ElementNotVisibleException
        elif status in ErrorCode.INVALID_ELEMENT_STATE:
            exception_class = InvalidElementStateException
        elif status in ErrorCode.INVALID_SELECTOR \
                or status in ErrorCode.INVALID_XPATH_SELECTOR \
                or status in ErrorCode.INVALID_XPATH_SELECTOR_RETURN_TYPER:
            exception_class = InvalidSelectorException
        elif status in ErrorCode.ELEMENT_IS_NOT_SELECTABLE:
            exception_class = ElementNotSelectableException
        elif status in ErrorCode.ELEMENT_NOT_INTERACTABLE:
            exception_class = ElementNotInteractableException
        elif status in ErrorCode.INVALID_COOKIE_DOMAIN:
            exception_class = InvalidCookieDomainException
        elif status in ErrorCode.UNABLE_TO_SET_COOKIE:
            exception_class = UnableToSetCookieException
        elif status in ErrorCode.TIMEOUT:
            exception_class = TimeoutException
        elif status in ErrorCode.SCRIPT_TIMEOUT:
            exception_class = TimeoutException
        elif status in ErrorCode.UNKNOWN_ERROR:
            exception_class = WebDriverException
        elif status in ErrorCode.UNEXPECTED_ALERT_OPEN:
            exception_class = UnexpectedAlertPresentException
        elif status in ErrorCode.NO_ALERT_OPEN:
            exception_class = NoAlertPresentException
        elif status in ErrorCode.IME_NOT_AVAILABLE:
            exception_class = ImeNotAvailableException
        elif status in ErrorCode.IME_ENGINE_ACTIVATION_FAILED:
            exception_class = ImeActivationFailedException
        elif status in ErrorCode.MOVE_TARGET_OUT_OF_BOUNDS:
            exception_class = MoveTargetOutOfBoundsException
        elif status in ErrorCode.JAVASCRIPT_ERROR:
            exception_class = JavascriptException
        elif status in ErrorCode.SESSION_NOT_CREATED:
            exception_class = SessionNotCreatedException
        elif status in ErrorCode.INVALID_ARGUMENT:
            exception_class = InvalidArgumentException
        elif status in ErrorCode.NO_SUCH_COOKIE:
            exception_class = NoSuchCookieException
        elif status in ErrorCode.UNABLE_TO_CAPTURE_SCREEN:
            exception_class = ScreenshotException
        elif status in ErrorCode.ELEMENT_CLICK_INTERCEPTED:
            exception_class = ElementClickInterceptedException
        elif status in ErrorCode.INSECURE_CERTIFICATE:
            exception_class = InsecureCertificateException
        elif status in ErrorCode.INVALID_COORDINATES:
            exception_class = InvalidCoordinatesException
        elif status in ErrorCode.INVALID_SESSION_ID:
            exception_class = InvalidSessionIdException
        elif status in ErrorCode.UNKNOWN_METHOD:
            exception_class = UnknownMethodException
        else:
            exception_class = WebDriverException
        if value == '' or value is None:
            value = response['value']
        if isinstance(value, basestring):
            if exception_class == ErrorInResponseException:
                raise exception_class(response, value)
            raise exception_class(value)
        if message == "" and 'message' in value:
            message = value['message']
    
        screen = None
        if 'screen' in value:
            screen = value['screen']
    
        stacktrace = None
        if 'stackTrace' in value and value['stackTrace']:
            stacktrace = []
            try:
                for frame in value['stackTrace']:
                    line = self._value_or_default(frame, 'lineNumber', '')
                    file = self._value_or_default(frame, 'fileName', '<anonymous>')
                    if line:
                        file = "%s:%s" % (file, line)
                    meth = self._value_or_default(frame, 'methodName', '<anonymous>')
                    if 'className' in frame:
                        meth = "%s.%s" % (frame['className'], meth)
                    msg = "    at %s (%s)"
                    msg = msg % (meth, file)
                    stacktrace.append(msg)
            except TypeError:
                pass
        if exception_class == ErrorInResponseException:
            raise exception_class(response, message)
        elif exception_class == UnexpectedAlertPresentException:
            alert_text = None
            if 'data' in value:
                alert_text = value['data'].get('text')
            elif 'alert' in value:
                alert_text = value['alert'].get('text')
            raise exception_class(message, screen, stacktrace, alert_text)
>       raise exception_class(message, screen, stacktrace)
E       selenium.common.exceptions.InvalidSessionIdException: Message: invalid session id

../../../.cache/pypoetry/virtualenvs/splunk-add-on-ucc-framework-rPXMmn5S-py3.7/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py:242: InvalidSessionIdException

Check failure on line 0 in test-results/junit.xml

See this annotation in the file changed.

@github-actions github-actions / test-report-ui-9.1.3-input

pytest ► test_input_page.chrome_TestInputPage ► test_inputs_textarea_scroll

Failed test found in:
  test-results/junit.xml
Error:
  self = <test_input_page.TestInputPage object at 0x7f466ad08310>
Raw output
self = <test_input_page.TestInputPage object at 0x7f466ad08310>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f466abd6cd0>
ucc_smartx_rest_helper = <pytest_splunk_addon_ui_smartx.base_test.RestHelper object at 0x7f466abd6fd0>
add_input_one = {'entry': [{'acl': {'app': 'Splunk_TA_UCCExample', 'can_change_perms': True, 'can_list': True, 'can_share_app': True, ...nf-inputs/_reload', 'create': '/servicesNS/nobody/Splunk_TA_UCCExample/configs/conf-inputs/_new'}, 'messages': [], ...}

    @pytest.mark.execute_enterprise_cloud_true
    @pytest.mark.forwarder
    @pytest.mark.input
    def test_inputs_textarea_scroll(
        self, ucc_smartx_selenium_helper, ucc_smartx_rest_helper, add_input_one
    ):
        """
        Verifies that textarea height values
        """
>       input_page = InputPage(ucc_smartx_selenium_helper, ucc_smartx_rest_helper)

tests/ui/test_input_page.py:2462: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/ui/pages/input_page.py:251: in __init__
    super().__init__(ucc_smartx_selenium_helper, ucc_smartx_rest_helper, open_page)
../../../.cache/pypoetry/virtualenvs/splunk-add-on-ucc-framework-rPXMmn5S-py3.7/lib/python3.7/site-packages/pytest_splunk_addon_ui_smartx/pages/page.py:35: in __init__
    self.open()
tests/ui/pages/input_page.py:304: in open
    self.browser.get(f"{self.splunk_web_url}/en-US/app/{C.ADDON_NAME}/inputs")
../../../.cache/pypoetry/virtualenvs/splunk-add-on-ucc-framework-rPXMmn5S-py3.7/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py:333: in get
    self.execute(Command.GET, {'url': url})
../../../.cache/pypoetry/virtualenvs/splunk-add-on-ucc-framework-rPXMmn5S-py3.7/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py:321: in execute
    self.error_handler.check_response(response)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x7f466dfa3990>
response = {'status': 404, 'value': '{"value":{"error":"invalid session id","message":"invalid session id","stacktrace":"#0 0x559...\\n#11 0x5597e64ae69f \\u003Cunknown>\\n#12 0x5597e61c78da \\u003Cunknown>\\n#13 0x7f8616829d90 \\u003Cunknown>\\n"}}'}

    def check_response(self, response):
        """
        Checks that a JSON response from the WebDriver does not have an error.
    
        :Args:
         - response - The JSON response from the WebDriver server as a dictionary
           object.
    
        :Raises: If the response contains an error message.
        """
        status = response.get('status', None)
        if status is None or status == ErrorCode.SUCCESS:
            return
        value = None
        message = response.get("message", "")
        screen = response.get("screen", "")
        stacktrace = None
        if isinstance(status, int):
            value_json = response.get('value', None)
            if value_json and isinstance(value_json, basestring):
                import json
                try:
                    value = json.loads(value_json)
                    if len(value.keys()) == 1:
                        value = value['value']
                    status = value.get('error', None)
                    if status is None:
                        status = value["status"]
                        message = value["value"]
                        if not isinstance(message, basestring):
                            value = message
                            message = message.get('message')
                    else:
                        message = value.get('message', None)
                except ValueError:
                    pass
    
        exception_class = ErrorInResponseException
        if status in ErrorCode.NO_SUCH_ELEMENT:
            exception_class = NoSuchElementException
        elif status in ErrorCode.NO_SUCH_FRAME:
            exception_class = NoSuchFrameException
        elif status in ErrorCode.NO_SUCH_WINDOW:
            exception_class = NoSuchWindowException
        elif status in ErrorCode.STALE_ELEMENT_REFERENCE:
            exception_class = StaleElementReferenceException
        elif status in ErrorCode.ELEMENT_NOT_VISIBLE:
            exception_class = ElementNotVisibleException
        elif status in ErrorCode.INVALID_ELEMENT_STATE:
            exception_class = InvalidElementStateException
        elif status in ErrorCode.INVALID_SELECTOR \
                or status in ErrorCode.INVALID_XPATH_SELECTOR \
                or status in ErrorCode.INVALID_XPATH_SELECTOR_RETURN_TYPER:
            exception_class = InvalidSelectorException
        elif status in ErrorCode.ELEMENT_IS_NOT_SELECTABLE:
            exception_class = ElementNotSelectableException
        elif status in ErrorCode.ELEMENT_NOT_INTERACTABLE:
            exception_class = ElementNotInteractableException
        elif status in ErrorCode.INVALID_COOKIE_DOMAIN:
            exception_class = InvalidCookieDomainException
        elif status in ErrorCode.UNABLE_TO_SET_COOKIE:
            exception_class = UnableToSetCookieException
        elif status in ErrorCode.TIMEOUT:
            exception_class = TimeoutException
        elif status in ErrorCode.SCRIPT_TIMEOUT:
            exception_class = TimeoutException
        elif status in ErrorCode.UNKNOWN_ERROR:
            exception_class = WebDriverException
        elif status in ErrorCode.UNEXPECTED_ALERT_OPEN:
            exception_class = UnexpectedAlertPresentException
        elif status in ErrorCode.NO_ALERT_OPEN:
            exception_class = NoAlertPresentException
        elif status in ErrorCode.IME_NOT_AVAILABLE:
            exception_class = ImeNotAvailableException
        elif status in ErrorCode.IME_ENGINE_ACTIVATION_FAILED:
            exception_class = ImeActivationFailedException
        elif status in ErrorCode.MOVE_TARGET_OUT_OF_BOUNDS:
            exception_class = MoveTargetOutOfBoundsException
        elif status in ErrorCode.JAVASCRIPT_ERROR:
            exception_class = JavascriptException
        elif status in ErrorCode.SESSION_NOT_CREATED:
            exception_class = SessionNotCreatedException
        elif status in ErrorCode.INVALID_ARGUMENT:
            exception_class = InvalidArgumentException
        elif status in ErrorCode.NO_SUCH_COOKIE:
            exception_class = NoSuchCookieException
        elif status in ErrorCode.UNABLE_TO_CAPTURE_SCREEN:
            exception_class = ScreenshotException
        elif status in ErrorCode.ELEMENT_CLICK_INTERCEPTED:
            exception_class = ElementClickInterceptedException
        elif status in ErrorCode.INSECURE_CERTIFICATE:
            exception_class = InsecureCertificateException
        elif status in ErrorCode.INVALID_COORDINATES:
            exception_class = InvalidCoordinatesException
        elif status in ErrorCode.INVALID_SESSION_ID:
            exception_class = InvalidSessionIdException
        elif status in ErrorCode.UNKNOWN_METHOD:
            exception_class = UnknownMethodException
        else:
            exception_class = WebDriverException
        if value == '' or value is None:
            value = response['value']
        if isinstance(value, basestring):
            if exception_class == ErrorInResponseException:
                raise exception_class(response, value)
            raise exception_class(value)
        if message == "" and 'message' in value:
            message = value['message']
    
        screen = None
        if 'screen' in value:
            screen = value['screen']
    
        stacktrace = None
        if 'stackTrace' in value and value['stackTrace']:
            stacktrace = []
            try:
                for frame in value['stackTrace']:
                    line = self._value_or_default(frame, 'lineNumber', '')
                    file = self._value_or_default(frame, 'fileName', '<anonymous>')
                    if line:
                        file = "%s:%s" % (file, line)
                    meth = self._value_or_default(frame, 'methodName', '<anonymous>')
                    if 'className' in frame:
                        meth = "%s.%s" % (frame['className'], meth)
                    msg = "    at %s (%s)"
                    msg = msg % (meth, file)
                    stacktrace.append(msg)
            except TypeError:
                pass
        if exception_class == ErrorInResponseException:
            raise exception_class(response, message)
        elif exception_class == UnexpectedAlertPresentException:
            alert_text = None
            if 'data' in value:
                alert_text = value['data'].get('text')
            elif 'alert' in value:
                alert_text = value['alert'].get('text')
            raise exception_class(message, screen, stacktrace, alert_text)
>       raise exception_class(message, screen, stacktrace)
E       selenium.common.exceptions.InvalidSessionIdException: Message: invalid session id

../../../.cache/pypoetry/virtualenvs/splunk-add-on-ucc-framework-rPXMmn5S-py3.7/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py:242: InvalidSessionIdException