Skip to content

fix: ADDON-65405 multi level menu #882

fix: ADDON-65405 multi level menu

fix: ADDON-65405 multi level menu #882

GitHub Actions / test-report-9.0.6__chrome_test_splunk_ta_example_addon_input_1 failed Oct 26, 2023 in 1s

test-report-9.0.6__chrome_test_splunk_ta_example_addon_input_1 ❌

Tests failed

❌ test-results/test.xml

62 tests were completed in 4886s with 0 passed, 62 failed and 0 skipped.

Test suite Passed Failed Skipped Time
pytest 62❌ 4886s

❌ pytest

tests.ui.test_splunk_ta_example_addon_input_1.chrome_TestInput
  ❌ test_example_input_one_required_field_name
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b6c2bf0>
  ❌ test_example_input_one_valid_length_name
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b6c0640>
  ❌ test_example_input_one_valid_input_name
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b6c25f0>
  ❌ test_example_input_one_list_single_select_group_test
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b6c11b0>
  ❌ test_example_input_one_select_value_single_select_group_test
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b648250>
  ❌ test_example_input_one_search_value_single_select_group_test
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b648280>
  ❌ test_example_input_one_default_value_multiple_select_test
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b649600>
  ❌ test_example_input_one_list_multiple_select_test
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b649de0>
  ❌ test_example_input_one_select_value_multiple_select_test
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b64a140>
  ❌ test_example_input_one_select_multiple_values_multiple_select_test
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b6488b0>
  ❌ test_example_input_one_deselect_multiple_select_test
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b6488e0>
  ❌ test_example_input_one_search_value_multiple_select_test
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b648d00>
  ❌ test_example_input_one_default_value_example_checkbox
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b6c12d0>
  ❌ test_example_input_one_unchecked_example_checkbox
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b6c3d30>
  ❌ test_example_input_one_checked_example_checkbox
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b6495a0>
  ❌ test_example_input_one_default_value_example_radio
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b649e70>
  ❌ test_example_input_one_select_value_example_radio
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b64a3e0>
  ❌ test_example_input_one_required_field_interval
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b64ac20>
  ❌ test_example_input_one_valid_input_interval
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b64ace0>
  ❌ test_example_input_one_required_field_index
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b64a860>
  ❌ test_example_input_one_default_value_index
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b648160>
  ❌ test_example_input_one_required_field_example_account
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b64b070>
  ❌ test_example_input_one_required_field_object
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b649a50>
  ❌ test_example_input_one_required_field_object_fields
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b6480a0>
  ❌ test_example_input_one_required_field_order_by
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b4f3520>
  ❌ test_example_input_one_default_value_order_by
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b4f34f0>
  ❌ test_example_input_one_fields_label_entity
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b4f3f10>
  ❌ test_example_input_two_fields_label_entity
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b4f3c10>
  ❌ test_example_input_one_fields_placeholder_value
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b64a9b0>
  ❌ test_example_input_two_fields_placeholder_value
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b6c3d00>
  ❌ test_example_input_one_help_text_entity
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b4f1300>
  ❌ test_example_input_one_valid_input_query_start_date
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b4f12d0>
  ❌ test_example_input_one_default_value_limit
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b4f3160>
  ❌ test_example_input_one_help_link
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b4f2ec0>
  ❌ test_example_input_one_add_frontend_validation
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b4f2bf0>
  ❌ test_example_input_one_add_backend_validation
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b4f28f0>
  ❌ test_example_input_one_edit_uneditable_field_name
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b4f25f0>
  ❌ test_example_input_one_edit_frontend_validation
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b4f22f0>
  ❌ test_example_input_one_edit_backend_validation
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b4f1f30>
  ❌ test_example_input_one_clone_default_values
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b4f1990>
  ❌ test_example_input_one_clone_frontend_validation
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b4f1b40>
  ❌ test_example_input_one_clone_backend_validation
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b4f1480>
  ❌ test_example_input_one_delete_row_frontend_validation
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b4f10c0>
  ❌ test_example_input_one_delete_row_backend_validation
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b4f0e80>
  ❌ test_example_input_one_add_close_entity
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b649720>
  ❌ test_example_input_one_edit_close_entity
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b4f19c0>
  ❌ test_example_input_one_clone_close_entity
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b4f2020>
  ❌ test_example_input_one_delete_close_entity
	browser = None
  ❌ test_example_input_one_add_cancel_entity
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b4f0370>
  ❌ test_example_input_one_edit_cancel_entity
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b3ed6f0>
  ❌ test_example_input_one_clone_cancel_entity
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b3ed720>
  ❌ test_example_input_one_delete_cancel_entity
	browser = None
  ❌ test_example_input_one_add_duplicate_names
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b3ec5b0>
  ❌ test_example_input_one_clone_duplicate_names
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b3ec970>
  ❌ test_example_input_one_add_valid_title
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b3ecf40>
  ❌ test_example_input_one_edit_valid_title
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b3ecd30>
  ❌ test_example_input_one_clone_valid_title
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b3ed510>
  ❌ test_example_input_one_delete_valid_title
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b3ee110>
  ❌ test_example_input_one_delete_valid_prompt_message
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b3ed9f0>
  ❌ test_inputs_textarea_height
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b4f08e0>
  ❌ test_inputs_textarea_big_input
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b4f0280>
  ❌ test_inputs_textarea_scroll
	self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b3ecf70>

Annotations

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

See this annotation in the file changed.

@github-actions github-actions / test-report-9.0.6__chrome_test_splunk_ta_example_addon_input_1

pytest ► tests.ui.test_splunk_ta_example_addon_input_1.chrome_TestInput ► test_example_input_one_required_field_name

Failed test found in:
  test-results/test.xml
Error:
  self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b6c2bf0>
Raw output
self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b6c2bf0>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7ff01b263a90>
ucc_smartx_rest_helper = <pytest_splunk_addon_ui_smartx.base_test.RestHelper object at 0x7ff01b51cbe0>

    @pytest.mark.execute_enterprise_cloud_true
    @pytest.mark.forwarder
    @pytest.mark.input
    def test_example_input_one_required_field_name(
        self, ucc_smartx_selenium_helper, ucc_smartx_rest_helper
    ):
        """Verifies required field name in example input one"""
        input_page = InputPage(ucc_smartx_selenium_helper, ucc_smartx_rest_helper)
>       input_page.create_new_input.select("Example Input One")

tests/ui/test_splunk_ta_example_addon_input_1.py:134: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7ff01b263400>
value = 'Example Input One'

    def select(self, value):
        """
        Selects the value we want from the type list
            :param value: The value in which we want to select
            :return: Returns True if successful, otherwise raises an error
        """
    
>       self.add_input.click()

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/dropdown.py:87: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.webelement.WebElement (session="73add9fbe8aa4ce8a1a86c0997e24d80", element="5305A0A81BD9F34C933B6709123118D6_element_39")>

    def click(self):
        """Clicks the element."""
>       self._execute(Command.CLICK_ELEMENT)

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/webelement.py:80: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.webelement.WebElement (session="73add9fbe8aa4ce8a1a86c0997e24d80", element="5305A0A81BD9F34C933B6709123118D6_element_39")>
command = 'clickElement'
params = {'id': '5305A0A81BD9F34C933B6709123118D6_element_39', 'sessionId': '73add9fbe8aa4ce8a1a86c0997e24d80'}

    def _execute(self, command, params=None):
        """Executes a command against the underlying HTML element.
    
        Args:
          command: The name of the command to _execute as a string.
          params: A dictionary of named parameters to send with the command.
    
        Returns:
          The command's JSON response loaded into a dictionary object.
        """
        if not params:
            params = {}
        params['id'] = self._id
>       return self._parent.execute(command, params)

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/webelement.py:633: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.webdriver.WebDriver (session="73add9fbe8aa4ce8a1a86c0997e24d80")>
driver_command = 'clickElement'
params = {'id': '5305A0A81BD9F34C933B6709123118D6_element_39'}

    def execute(self, driver_command, params=None):
        """
        Sends a command to be executed by a command.CommandExecutor.
    
        :Args:
         - driver_command: The name of the command to execute as a string.
         - params: A dictionary of named parameters to send with the command.
    
        :Returns:
          The command's JSON response loaded into a dictionary object.
        """
        if self.session_id is not None:
            if not params:
                params = {'sessionId': self.session_id}
            elif 'sessionId' not in params:
                params['sessionId'] = self.session_id
    
        params = self._wrap_value(params)
        response = self.command_executor.execute(driver_command, params)
        if response:
>           self.error_handler.check_response(response)

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/webdriver.py:321: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x7ff01b2636d0>
response = {'status': 404, 'value': '{"value":{"error":"stale element reference","message":"stale element reference: stale elemen...\n\\tRtlGetAppContainerNamedObjectPath [0x77CF7A4E+286]\\n\\tRtlGetAppContainerNamedObjectPath [0x77CF7A1E+238]\\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.StaleElementReferenceException: Message: stale element reference: stale element not found
E         (Session info: chrome=118.0.5993.71)

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/errorhandler.py:242: StaleElementReferenceException

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

See this annotation in the file changed.

@github-actions github-actions / test-report-9.0.6__chrome_test_splunk_ta_example_addon_input_1

pytest ► tests.ui.test_splunk_ta_example_addon_input_1.chrome_TestInput ► test_example_input_one_valid_length_name

Failed test found in:
  test-results/test.xml
Error:
  self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b6c0640>
Raw output
self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b6c0640>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7ff01b5bbc70>
ucc_smartx_rest_helper = <pytest_splunk_addon_ui_smartx.base_test.RestHelper object at 0x7ff01b51cbe0>

    @pytest.mark.execute_enterprise_cloud_true
    @pytest.mark.forwarder
    @pytest.mark.input
    def test_example_input_one_valid_length_name(
        self, ucc_smartx_selenium_helper, ucc_smartx_rest_helper
    ):
        """Verifies the name field should not be more than 100 characters"""
        input_page = InputPage(ucc_smartx_selenium_helper, ucc_smartx_rest_helper)
>       input_page.create_new_input.select("Example Input One")

tests/ui/test_splunk_ta_example_addon_input_1.py:157: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7ff01b5bb820>
value = 'Example Input One'

    def select(self, value):
        """
        Selects the value we want from the type list
            :param value: The value in which we want to select
            :return: Returns True if successful, otherwise raises an error
        """
    
>       self.add_input.click()

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/dropdown.py:87: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.webelement.WebElement (session="916e6c81888f4cf18237cd4b5974265a", element="02EEC59A505081251185CFD8C087E771_element_41")>

    def click(self):
        """Clicks the element."""
>       self._execute(Command.CLICK_ELEMENT)

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/webelement.py:80: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.webelement.WebElement (session="916e6c81888f4cf18237cd4b5974265a", element="02EEC59A505081251185CFD8C087E771_element_41")>
command = 'clickElement'
params = {'id': '02EEC59A505081251185CFD8C087E771_element_41', 'sessionId': '916e6c81888f4cf18237cd4b5974265a'}

    def _execute(self, command, params=None):
        """Executes a command against the underlying HTML element.
    
        Args:
          command: The name of the command to _execute as a string.
          params: A dictionary of named parameters to send with the command.
    
        Returns:
          The command's JSON response loaded into a dictionary object.
        """
        if not params:
            params = {}
        params['id'] = self._id
>       return self._parent.execute(command, params)

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/webelement.py:633: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.webdriver.WebDriver (session="916e6c81888f4cf18237cd4b5974265a")>
driver_command = 'clickElement'
params = {'id': '02EEC59A505081251185CFD8C087E771_element_41'}

    def execute(self, driver_command, params=None):
        """
        Sends a command to be executed by a command.CommandExecutor.
    
        :Args:
         - driver_command: The name of the command to execute as a string.
         - params: A dictionary of named parameters to send with the command.
    
        :Returns:
          The command's JSON response loaded into a dictionary object.
        """
        if self.session_id is not None:
            if not params:
                params = {'sessionId': self.session_id}
            elif 'sessionId' not in params:
                params['sessionId'] = self.session_id
    
        params = self._wrap_value(params)
        response = self.command_executor.execute(driver_command, params)
        if response:
>           self.error_handler.check_response(response)

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/webdriver.py:321: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x7ff01b5b9090>
response = {'status': 404, 'value': '{"value":{"error":"stale element reference","message":"stale element reference: stale elemen...\n\\tRtlGetAppContainerNamedObjectPath [0x76F67A4E+286]\\n\\tRtlGetAppContainerNamedObjectPath [0x76F67A1E+238]\\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.StaleElementReferenceException: Message: stale element reference: stale element not found
E         (Session info: chrome=118.0.5993.71)

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/errorhandler.py:242: StaleElementReferenceException

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

See this annotation in the file changed.

@github-actions github-actions / test-report-9.0.6__chrome_test_splunk_ta_example_addon_input_1

pytest ► tests.ui.test_splunk_ta_example_addon_input_1.chrome_TestInput ► test_example_input_one_valid_input_name

Failed test found in:
  test-results/test.xml
Error:
  self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b6c25f0>
Raw output
self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b6c25f0>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7ff01b2df2e0>
ucc_smartx_rest_helper = <pytest_splunk_addon_ui_smartx.base_test.RestHelper object at 0x7ff01b51cbe0>

    @pytest.mark.execute_enterprise_cloud_true
    @pytest.mark.forwarder
    @pytest.mark.input
    def test_example_input_one_valid_input_name(
        self, ucc_smartx_selenium_helper, ucc_smartx_rest_helper
    ):
        """Verifies whether adding special characters, name field displays validation error"""
        input_page = InputPage(ucc_smartx_selenium_helper, ucc_smartx_rest_helper)
>       input_page.create_new_input.select("Example Input One")

tests/ui/test_splunk_ta_example_addon_input_1.py:175: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7ff01b2dfa00>
value = 'Example Input One'

    def select(self, value):
        """
        Selects the value we want from the type list
            :param value: The value in which we want to select
            :return: Returns True if successful, otherwise raises an error
        """
    
>       self.add_input.click()

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/dropdown.py:87: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7ff01b2dfa00>
key = 'add_input'

    def __getattr__(self, key):
        """
        Makes the web-elements to be accessible directly.
        - For example self.elements = {"textbox": Selector(by=..., select=...),
            Access the element by doing self.textbox directly.
        - It also has implicit wait while finding the element.
          :param key: The key of the element mentioned in self.elements
          :returns: The webelement we are accessing
        """
        try:
>           return self.get_element(key)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:222: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7ff01b2dfa00>
key = 'add_input'

    def get_element(self, key):
        """
        Get the web-element.
    
        Note: There is a wait in get_element.
            :param key: The key of the element mentioned in self.elements
            :returns: element The element we are looking for by key
        """
        element = self.elements[key]
>       return self._get_element(element.by, element.select)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:82: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7ff01b2dfa00>
by = 'id', select = 'addInputBtn'

    def _get_element(self, by, select):
        """
        Find the element from the page.
            :param by: The type of the selenium locator
            :param select: The selector text of type mentioned in by.
            :returns: The webelement we are accessing
        """
        msg = "by={} select={} Element not found in the page".format(by, select)
>       return self.wait.until(EC.presence_of_element_located((by, select)), msg)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:243: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.support.wait.WebDriverWait (session="72617cd8cf95421fab41f975b892f8dd")>
method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x7ff01b162ec0>
message = 'by=id select=addInputBtn Element not found in the page'

    def until(self, method, message=''):
        """Calls the method provided with the driver as an argument until the \
        return value is not False."""
        screen = None
        stacktrace = None
    
        end_time = time.time() + self._timeout
        while True:
            try:
                value = method(self._driver)
                if value:
                    return value
            except self._ignored_exceptions as exc:
                screen = getattr(exc, 'screen', None)
                stacktrace = getattr(exc, 'stacktrace', None)
            time.sleep(self._poll)
            if time.time() > end_time:
                break
>       raise TimeoutException(message, screen, stacktrace)
E       selenium.common.exceptions.TimeoutException: Message: by=id select=addInputBtn Element not found in the page

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException

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

See this annotation in the file changed.

@github-actions github-actions / test-report-9.0.6__chrome_test_splunk_ta_example_addon_input_1

pytest ► tests.ui.test_splunk_ta_example_addon_input_1.chrome_TestInput ► test_example_input_one_list_single_select_group_test

Failed test found in:
  test-results/test.xml
Error:
  self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b6c11b0>
Raw output
self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b6c11b0>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7ff01b1b86a0>
ucc_smartx_rest_helper = <pytest_splunk_addon_ui_smartx.base_test.RestHelper object at 0x7ff01b51cbe0>

    @pytest.mark.execute_enterprise_cloud_true
    @pytest.mark.forwarder
    @pytest.mark.input
    def test_example_input_one_list_single_select_group_test(
        self, ucc_smartx_selenium_helper, ucc_smartx_rest_helper
    ):
        """Verifies values Single Select Group Test dropdown in example input one"""
        input_page = InputPage(ucc_smartx_selenium_helper, ucc_smartx_rest_helper)
        single_select_group_test_list = ["One", "Two", "Three", "Four"]
>       input_page.create_new_input.select("Example Input One")

tests/ui/test_splunk_ta_example_addon_input_1.py:193: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7ff01b2599f0>
value = 'Example Input One'

    def select(self, value):
        """
        Selects the value we want from the type list
            :param value: The value in which we want to select
            :return: Returns True if successful, otherwise raises an error
        """
    
>       self.add_input.click()

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/dropdown.py:87: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7ff01b2599f0>
key = 'add_input'

    def __getattr__(self, key):
        """
        Makes the web-elements to be accessible directly.
        - For example self.elements = {"textbox": Selector(by=..., select=...),
            Access the element by doing self.textbox directly.
        - It also has implicit wait while finding the element.
          :param key: The key of the element mentioned in self.elements
          :returns: The webelement we are accessing
        """
        try:
>           return self.get_element(key)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:222: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7ff01b2599f0>
key = 'add_input'

    def get_element(self, key):
        """
        Get the web-element.
    
        Note: There is a wait in get_element.
            :param key: The key of the element mentioned in self.elements
            :returns: element The element we are looking for by key
        """
        element = self.elements[key]
>       return self._get_element(element.by, element.select)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:82: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7ff01b2599f0>
by = 'id', select = 'addInputBtn'

    def _get_element(self, by, select):
        """
        Find the element from the page.
            :param by: The type of the selenium locator
            :param select: The selector text of type mentioned in by.
            :returns: The webelement we are accessing
        """
        msg = "by={} select={} Element not found in the page".format(by, select)
>       return self.wait.until(EC.presence_of_element_located((by, select)), msg)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:243: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.support.wait.WebDriverWait (session="adfdd3c9c5e140268f981f51d921044c")>
method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x7ff01b11b280>
message = 'by=id select=addInputBtn Element not found in the page'

    def until(self, method, message=''):
        """Calls the method provided with the driver as an argument until the \
        return value is not False."""
        screen = None
        stacktrace = None
    
        end_time = time.time() + self._timeout
        while True:
            try:
                value = method(self._driver)
                if value:
                    return value
            except self._ignored_exceptions as exc:
                screen = getattr(exc, 'screen', None)
                stacktrace = getattr(exc, 'stacktrace', None)
            time.sleep(self._poll)
            if time.time() > end_time:
                break
>       raise TimeoutException(message, screen, stacktrace)
E       selenium.common.exceptions.TimeoutException: Message: by=id select=addInputBtn Element not found in the page

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException

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

See this annotation in the file changed.

@github-actions github-actions / test-report-9.0.6__chrome_test_splunk_ta_example_addon_input_1

pytest ► tests.ui.test_splunk_ta_example_addon_input_1.chrome_TestInput ► test_example_input_one_select_value_single_select_group_test

Failed test found in:
  test-results/test.xml
Error:
  self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b648250>
Raw output
self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b648250>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7ff01b36f8b0>
ucc_smartx_rest_helper = <pytest_splunk_addon_ui_smartx.base_test.RestHelper object at 0x7ff01b51cbe0>

    @pytest.mark.execute_enterprise_cloud_true
    @pytest.mark.forwarder
    @pytest.mark.input
    def test_example_input_one_select_value_single_select_group_test(
        self, ucc_smartx_selenium_helper, ucc_smartx_rest_helper
    ):
        """Verifies selected value of Single Select Group Test dropdown in example input one"""
        input_page = InputPage(ucc_smartx_selenium_helper, ucc_smartx_rest_helper)
        selected_value = "Two"
>       input_page.create_new_input.select("Example Input One")

tests/ui/test_splunk_ta_example_addon_input_1.py:209: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7ff01b36fe20>
value = 'Example Input One'

    def select(self, value):
        """
        Selects the value we want from the type list
            :param value: The value in which we want to select
            :return: Returns True if successful, otherwise raises an error
        """
    
>       self.add_input.click()

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/dropdown.py:87: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7ff01b36fe20>
key = 'add_input'

    def __getattr__(self, key):
        """
        Makes the web-elements to be accessible directly.
        - For example self.elements = {"textbox": Selector(by=..., select=...),
            Access the element by doing self.textbox directly.
        - It also has implicit wait while finding the element.
          :param key: The key of the element mentioned in self.elements
          :returns: The webelement we are accessing
        """
        try:
>           return self.get_element(key)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:222: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7ff01b36fe20>
key = 'add_input'

    def get_element(self, key):
        """
        Get the web-element.
    
        Note: There is a wait in get_element.
            :param key: The key of the element mentioned in self.elements
            :returns: element The element we are looking for by key
        """
        element = self.elements[key]
>       return self._get_element(element.by, element.select)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:82: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7ff01b36fe20>
by = 'id', select = 'addInputBtn'

    def _get_element(self, by, select):
        """
        Find the element from the page.
            :param by: The type of the selenium locator
            :param select: The selector text of type mentioned in by.
            :returns: The webelement we are accessing
        """
        msg = "by={} select={} Element not found in the page".format(by, select)
>       return self.wait.until(EC.presence_of_element_located((by, select)), msg)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:243: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.support.wait.WebDriverWait (session="43145134c6fd42439d45a9b50b3afbe0")>
method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x7ff01b5d1660>
message = 'by=id select=addInputBtn Element not found in the page'

    def until(self, method, message=''):
        """Calls the method provided with the driver as an argument until the \
        return value is not False."""
        screen = None
        stacktrace = None
    
        end_time = time.time() + self._timeout
        while True:
            try:
                value = method(self._driver)
                if value:
                    return value
            except self._ignored_exceptions as exc:
                screen = getattr(exc, 'screen', None)
                stacktrace = getattr(exc, 'stacktrace', None)
            time.sleep(self._poll)
            if time.time() > end_time:
                break
>       raise TimeoutException(message, screen, stacktrace)
E       selenium.common.exceptions.TimeoutException: Message: by=id select=addInputBtn Element not found in the page

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException

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

See this annotation in the file changed.

@github-actions github-actions / test-report-9.0.6__chrome_test_splunk_ta_example_addon_input_1

pytest ► tests.ui.test_splunk_ta_example_addon_input_1.chrome_TestInput ► test_example_input_one_search_value_single_select_group_test

Failed test found in:
  test-results/test.xml
Error:
  self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b648280>
Raw output
self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b648280>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7ff01b122350>
ucc_smartx_rest_helper = <pytest_splunk_addon_ui_smartx.base_test.RestHelper object at 0x7ff01b51cbe0>

    @pytest.mark.execute_enterprise_cloud_true
    @pytest.mark.forwarder
    @pytest.mark.input
    def test_example_input_one_search_value_single_select_group_test(
        self, ucc_smartx_selenium_helper, ucc_smartx_rest_helper
    ):
        """Verifies singleselect seach funtionality properly"""
        input_page = InputPage(ucc_smartx_selenium_helper, ucc_smartx_rest_helper)
>       input_page.create_new_input.select("Example Input One")

tests/ui/test_splunk_ta_example_addon_input_1.py:224: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7ff01b121e10>
value = 'Example Input One'

    def select(self, value):
        """
        Selects the value we want from the type list
            :param value: The value in which we want to select
            :return: Returns True if successful, otherwise raises an error
        """
    
>       self.add_input.click()

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/dropdown.py:87: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.webelement.WebElement (session="b469904ddd704c30aefc06dfde7655b4", element="C90A445464338195E634B4549AE0E2D8_element_37")>

    def click(self):
        """Clicks the element."""
>       self._execute(Command.CLICK_ELEMENT)

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/webelement.py:80: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.webelement.WebElement (session="b469904ddd704c30aefc06dfde7655b4", element="C90A445464338195E634B4549AE0E2D8_element_37")>
command = 'clickElement'
params = {'id': 'C90A445464338195E634B4549AE0E2D8_element_37', 'sessionId': 'b469904ddd704c30aefc06dfde7655b4'}

    def _execute(self, command, params=None):
        """Executes a command against the underlying HTML element.
    
        Args:
          command: The name of the command to _execute as a string.
          params: A dictionary of named parameters to send with the command.
    
        Returns:
          The command's JSON response loaded into a dictionary object.
        """
        if not params:
            params = {}
        params['id'] = self._id
>       return self._parent.execute(command, params)

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/webelement.py:633: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.webdriver.WebDriver (session="b469904ddd704c30aefc06dfde7655b4")>
driver_command = 'clickElement'
params = {'id': 'C90A445464338195E634B4549AE0E2D8_element_37'}

    def execute(self, driver_command, params=None):
        """
        Sends a command to be executed by a command.CommandExecutor.
    
        :Args:
         - driver_command: The name of the command to execute as a string.
         - params: A dictionary of named parameters to send with the command.
    
        :Returns:
          The command's JSON response loaded into a dictionary object.
        """
        if self.session_id is not None:
            if not params:
                params = {'sessionId': self.session_id}
            elif 'sessionId' not in params:
                params['sessionId'] = self.session_id
    
        params = self._wrap_value(params)
        response = self.command_executor.execute(driver_command, params)
        if response:
>           self.error_handler.check_response(response)

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/webdriver.py:321: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x7ff01b1207c0>
response = {'status': 404, 'value': '{"value":{"error":"stale element reference","message":"stale element reference: stale elemen...\n\\tRtlGetAppContainerNamedObjectPath [0x77307A4E+286]\\n\\tRtlGetAppContainerNamedObjectPath [0x77307A1E+238]\\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.StaleElementReferenceException: Message: stale element reference: stale element not found
E         (Session info: chrome=118.0.5993.71)

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/errorhandler.py:242: StaleElementReferenceException

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

See this annotation in the file changed.

@github-actions github-actions / test-report-9.0.6__chrome_test_splunk_ta_example_addon_input_1

pytest ► tests.ui.test_splunk_ta_example_addon_input_1.chrome_TestInput ► test_example_input_one_default_value_multiple_select_test

Failed test found in:
  test-results/test.xml
Error:
  self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b649600>
Raw output
self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b649600>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7ff01b193cd0>
ucc_smartx_rest_helper = <pytest_splunk_addon_ui_smartx.base_test.RestHelper object at 0x7ff01b51cbe0>

    @pytest.mark.execute_enterprise_cloud_true
    @pytest.mark.forwarder
    @pytest.mark.input
    def test_example_input_one_default_value_multiple_select_test(
        self, ucc_smartx_selenium_helper, ucc_smartx_rest_helper
    ):
        """Verifies default values of Multiple Select Test dropdown in example input one"""
        input_page = InputPage(ucc_smartx_selenium_helper, ucc_smartx_rest_helper)
>       input_page.create_new_input.select("Example Input One")

tests/ui/test_splunk_ta_example_addon_input_1.py:240: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7ff01b1937f0>
value = 'Example Input One'

    def select(self, value):
        """
        Selects the value we want from the type list
            :param value: The value in which we want to select
            :return: Returns True if successful, otherwise raises an error
        """
    
>       self.add_input.click()

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/dropdown.py:87: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7ff01b1937f0>
key = 'add_input'

    def __getattr__(self, key):
        """
        Makes the web-elements to be accessible directly.
        - For example self.elements = {"textbox": Selector(by=..., select=...),
            Access the element by doing self.textbox directly.
        - It also has implicit wait while finding the element.
          :param key: The key of the element mentioned in self.elements
          :returns: The webelement we are accessing
        """
        try:
>           return self.get_element(key)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:222: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7ff01b1937f0>
key = 'add_input'

    def get_element(self, key):
        """
        Get the web-element.
    
        Note: There is a wait in get_element.
            :param key: The key of the element mentioned in self.elements
            :returns: element The element we are looking for by key
        """
        element = self.elements[key]
>       return self._get_element(element.by, element.select)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:82: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7ff01b1937f0>
by = 'id', select = 'addInputBtn'

    def _get_element(self, by, select):
        """
        Find the element from the page.
            :param by: The type of the selenium locator
            :param select: The selector text of type mentioned in by.
            :returns: The webelement we are accessing
        """
        msg = "by={} select={} Element not found in the page".format(by, select)
>       return self.wait.until(EC.presence_of_element_located((by, select)), msg)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:243: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.support.wait.WebDriverWait (session="8468b8a40a85458e9e9efedd461632ec")>
method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x7ff01b199210>
message = 'by=id select=addInputBtn Element not found in the page'

    def until(self, method, message=''):
        """Calls the method provided with the driver as an argument until the \
        return value is not False."""
        screen = None
        stacktrace = None
    
        end_time = time.time() + self._timeout
        while True:
            try:
                value = method(self._driver)
                if value:
                    return value
            except self._ignored_exceptions as exc:
                screen = getattr(exc, 'screen', None)
                stacktrace = getattr(exc, 'stacktrace', None)
            time.sleep(self._poll)
            if time.time() > end_time:
                break
>       raise TimeoutException(message, screen, stacktrace)
E       selenium.common.exceptions.TimeoutException: Message: by=id select=addInputBtn Element not found in the page

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException

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

See this annotation in the file changed.

@github-actions github-actions / test-report-9.0.6__chrome_test_splunk_ta_example_addon_input_1

pytest ► tests.ui.test_splunk_ta_example_addon_input_1.chrome_TestInput ► test_example_input_one_list_multiple_select_test

Failed test found in:
  test-results/test.xml
Error:
  self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b649de0>
Raw output
self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b649de0>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7ff01b1b81c0>
ucc_smartx_rest_helper = <pytest_splunk_addon_ui_smartx.base_test.RestHelper object at 0x7ff01b51cbe0>

    @pytest.mark.execute_enterprise_cloud_true
    @pytest.mark.forwarder
    @pytest.mark.input
    def test_example_input_one_list_multiple_select_test(
        self, ucc_smartx_selenium_helper, ucc_smartx_rest_helper
    ):
        """Verifies values of Multiple Select Test dropdown in example input one"""
        input_page = InputPage(ucc_smartx_selenium_helper, ucc_smartx_rest_helper)
>       input_page.create_new_input.select("Example Input One")

tests/ui/test_splunk_ta_example_addon_input_1.py:255: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7ff01b1bb160>
value = 'Example Input One'

    def select(self, value):
        """
        Selects the value we want from the type list
            :param value: The value in which we want to select
            :return: Returns True if successful, otherwise raises an error
        """
    
>       self.add_input.click()

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/dropdown.py:87: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.webelement.WebElement (session="3b794f316a254425a2a09cabf960b307", element="466AC32B18ACCA15C48E936B87713065_element_36")>

    def click(self):
        """Clicks the element."""
>       self._execute(Command.CLICK_ELEMENT)

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/webelement.py:80: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.webelement.WebElement (session="3b794f316a254425a2a09cabf960b307", element="466AC32B18ACCA15C48E936B87713065_element_36")>
command = 'clickElement'
params = {'id': '466AC32B18ACCA15C48E936B87713065_element_36', 'sessionId': '3b794f316a254425a2a09cabf960b307'}

    def _execute(self, command, params=None):
        """Executes a command against the underlying HTML element.
    
        Args:
          command: The name of the command to _execute as a string.
          params: A dictionary of named parameters to send with the command.
    
        Returns:
          The command's JSON response loaded into a dictionary object.
        """
        if not params:
            params = {}
        params['id'] = self._id
>       return self._parent.execute(command, params)

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/webelement.py:633: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.webdriver.WebDriver (session="3b794f316a254425a2a09cabf960b307")>
driver_command = 'clickElement'
params = {'id': '466AC32B18ACCA15C48E936B87713065_element_36'}

    def execute(self, driver_command, params=None):
        """
        Sends a command to be executed by a command.CommandExecutor.
    
        :Args:
         - driver_command: The name of the command to execute as a string.
         - params: A dictionary of named parameters to send with the command.
    
        :Returns:
          The command's JSON response loaded into a dictionary object.
        """
        if self.session_id is not None:
            if not params:
                params = {'sessionId': self.session_id}
            elif 'sessionId' not in params:
                params['sessionId'] = self.session_id
    
        params = self._wrap_value(params)
        response = self.command_executor.execute(driver_command, params)
        if response:
>           self.error_handler.check_response(response)

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/webdriver.py:321: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x7ff01b1baf80>
response = {'status': 404, 'value': '{"value":{"error":"stale element reference","message":"stale element reference: stale elemen...\n\\tRtlGetAppContainerNamedObjectPath [0x771C7A4E+286]\\n\\tRtlGetAppContainerNamedObjectPath [0x771C7A1E+238]\\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.StaleElementReferenceException: Message: stale element reference: stale element not found
E         (Session info: chrome=118.0.5993.71)

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/errorhandler.py:242: StaleElementReferenceException

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

See this annotation in the file changed.

@github-actions github-actions / test-report-9.0.6__chrome_test_splunk_ta_example_addon_input_1

pytest ► tests.ui.test_splunk_ta_example_addon_input_1.chrome_TestInput ► test_example_input_one_select_value_multiple_select_test

Failed test found in:
  test-results/test.xml
Error:
  self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b64a140>
Raw output
self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b64a140>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7ff01b08dff0>
ucc_smartx_rest_helper = <pytest_splunk_addon_ui_smartx.base_test.RestHelper object at 0x7ff01b51cbe0>

    @pytest.mark.execute_enterprise_cloud_true
    @pytest.mark.forwarder
    @pytest.mark.input
    def test_example_input_one_select_value_multiple_select_test(
        self, ucc_smartx_selenium_helper, ucc_smartx_rest_helper
    ):
        """Verifies selected single value of Multiple Select Test dropdown in example input one"""
        input_page = InputPage(ucc_smartx_selenium_helper, ucc_smartx_rest_helper)
        selected_value = ["A"]
>       input_page.create_new_input.select("Example Input One")

tests/ui/test_splunk_ta_example_addon_input_1.py:273: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7ff01b1b60b0>
value = 'Example Input One'

    def select(self, value):
        """
        Selects the value we want from the type list
            :param value: The value in which we want to select
            :return: Returns True if successful, otherwise raises an error
        """
    
>       self.add_input.click()

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/dropdown.py:87: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.webelement.WebElement (session="77bf2b49e6f845d1afb79ff3e7bc7f6f", element="336F94D7282DEF0A5BA1953E6C93420C_element_39")>

    def click(self):
        """Clicks the element."""
>       self._execute(Command.CLICK_ELEMENT)

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/webelement.py:80: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.webelement.WebElement (session="77bf2b49e6f845d1afb79ff3e7bc7f6f", element="336F94D7282DEF0A5BA1953E6C93420C_element_39")>
command = 'clickElement'
params = {'id': '336F94D7282DEF0A5BA1953E6C93420C_element_39', 'sessionId': '77bf2b49e6f845d1afb79ff3e7bc7f6f'}

    def _execute(self, command, params=None):
        """Executes a command against the underlying HTML element.
    
        Args:
          command: The name of the command to _execute as a string.
          params: A dictionary of named parameters to send with the command.
    
        Returns:
          The command's JSON response loaded into a dictionary object.
        """
        if not params:
            params = {}
        params['id'] = self._id
>       return self._parent.execute(command, params)

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/webelement.py:633: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.webdriver.WebDriver (session="77bf2b49e6f845d1afb79ff3e7bc7f6f")>
driver_command = 'clickElement'
params = {'id': '336F94D7282DEF0A5BA1953E6C93420C_element_39'}

    def execute(self, driver_command, params=None):
        """
        Sends a command to be executed by a command.CommandExecutor.
    
        :Args:
         - driver_command: The name of the command to execute as a string.
         - params: A dictionary of named parameters to send with the command.
    
        :Returns:
          The command's JSON response loaded into a dictionary object.
        """
        if self.session_id is not None:
            if not params:
                params = {'sessionId': self.session_id}
            elif 'sessionId' not in params:
                params['sessionId'] = self.session_id
    
        params = self._wrap_value(params)
        response = self.command_executor.execute(driver_command, params)
        if response:
>           self.error_handler.check_response(response)

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/webdriver.py:321: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x7ff01b1b62c0>
response = {'status': 404, 'value': '{"value":{"error":"stale element reference","message":"stale element reference: stale elemen...\n\\tRtlGetAppContainerNamedObjectPath [0x77907A4E+286]\\n\\tRtlGetAppContainerNamedObjectPath [0x77907A1E+238]\\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.StaleElementReferenceException: Message: stale element reference: stale element not found
E         (Session info: chrome=118.0.5993.71)

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/errorhandler.py:242: StaleElementReferenceException

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

See this annotation in the file changed.

@github-actions github-actions / test-report-9.0.6__chrome_test_splunk_ta_example_addon_input_1

pytest ► tests.ui.test_splunk_ta_example_addon_input_1.chrome_TestInput ► test_example_input_one_select_multiple_values_multiple_select_test

Failed test found in:
  test-results/test.xml
Error:
  self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b6488b0>
Raw output
self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b6488b0>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7ff01b115270>
ucc_smartx_rest_helper = <pytest_splunk_addon_ui_smartx.base_test.RestHelper object at 0x7ff01b51cbe0>

    @pytest.mark.execute_enterprise_cloud_true
    @pytest.mark.forwarder
    @pytest.mark.input
    def test_example_input_one_select_multiple_values_multiple_select_test(
        self, ucc_smartx_selenium_helper, ucc_smartx_rest_helper
    ):
        """Verifies selected multiple values of Multiple Select Test dropdown in example input one"""
        input_page = InputPage(ucc_smartx_selenium_helper, ucc_smartx_rest_helper)
        selected_values = ["A", "B"]
>       input_page.create_new_input.select("Example Input One")

tests/ui/test_splunk_ta_example_addon_input_1.py:291: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7ff01b1148b0>
value = 'Example Input One'

    def select(self, value):
        """
        Selects the value we want from the type list
            :param value: The value in which we want to select
            :return: Returns True if successful, otherwise raises an error
        """
    
>       self.add_input.click()

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/dropdown.py:87: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7ff01b1148b0>
key = 'add_input'

    def __getattr__(self, key):
        """
        Makes the web-elements to be accessible directly.
        - For example self.elements = {"textbox": Selector(by=..., select=...),
            Access the element by doing self.textbox directly.
        - It also has implicit wait while finding the element.
          :param key: The key of the element mentioned in self.elements
          :returns: The webelement we are accessing
        """
        try:
>           return self.get_element(key)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:222: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7ff01b1148b0>
key = 'add_input'

    def get_element(self, key):
        """
        Get the web-element.
    
        Note: There is a wait in get_element.
            :param key: The key of the element mentioned in self.elements
            :returns: element The element we are looking for by key
        """
        element = self.elements[key]
>       return self._get_element(element.by, element.select)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:82: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7ff01b1148b0>
by = 'id', select = 'addInputBtn'

    def _get_element(self, by, select):
        """
        Find the element from the page.
            :param by: The type of the selenium locator
            :param select: The selector text of type mentioned in by.
            :returns: The webelement we are accessing
        """
        msg = "by={} select={} Element not found in the page".format(by, select)
>       return self.wait.until(EC.presence_of_element_located((by, select)), msg)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:243: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.support.wait.WebDriverWait (session="d6353e6d9e7840158b7b4811abe9cfc1")>
method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x7ff01b38ab90>
message = 'by=id select=addInputBtn Element not found in the page'

    def until(self, method, message=''):
        """Calls the method provided with the driver as an argument until the \
        return value is not False."""
        screen = None
        stacktrace = None
    
        end_time = time.time() + self._timeout
        while True:
            try:
                value = method(self._driver)
                if value:
                    return value
            except self._ignored_exceptions as exc:
                screen = getattr(exc, 'screen', None)
                stacktrace = getattr(exc, 'stacktrace', None)
            time.sleep(self._poll)
            if time.time() > end_time:
                break
>       raise TimeoutException(message, screen, stacktrace)
E       selenium.common.exceptions.TimeoutException: Message: by=id select=addInputBtn Element not found in the page

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException

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

See this annotation in the file changed.

@github-actions github-actions / test-report-9.0.6__chrome_test_splunk_ta_example_addon_input_1

pytest ► tests.ui.test_splunk_ta_example_addon_input_1.chrome_TestInput ► test_example_input_one_deselect_multiple_select_test

Failed test found in:
  test-results/test.xml
Error:
  self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b6488e0>
Raw output
self = <ui.test_splunk_ta_example_addon_input_1.TestInput object at 0x7ff01b6488e0>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7ff01b346140>
ucc_smartx_rest_helper = <pytest_splunk_addon_ui_smartx.base_test.RestHelper object at 0x7ff01b51cbe0>

    @pytest.mark.execute_enterprise_cloud_true
    @pytest.mark.forwarder
    @pytest.mark.input
    def test_example_input_one_deselect_multiple_select_test(
        self, ucc_smartx_selenium_helper, ucc_smartx_rest_helper
    ):
        """Verifies deselect in Multiple Select Test dropdown in example input one"""
        input_page = InputPage(ucc_smartx_selenium_helper, ucc_smartx_rest_helper)
        selected_values = ["A", "B"]
>       input_page.create_new_input.select("Example Input One")

tests/ui/test_splunk_ta_example_addon_input_1.py:309: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7ff01b16c370>
value = 'Example Input One'

    def select(self, value):
        """
        Selects the value we want from the type list
            :param value: The value in which we want to select
            :return: Returns True if successful, otherwise raises an error
        """
    
>       self.add_input.click()

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/dropdown.py:87: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7ff01b16c370>
key = 'add_input'

    def __getattr__(self, key):
        """
        Makes the web-elements to be accessible directly.
        - For example self.elements = {"textbox": Selector(by=..., select=...),
            Access the element by doing self.textbox directly.
        - It also has implicit wait while finding the element.
          :param key: The key of the element mentioned in self.elements
          :returns: The webelement we are accessing
        """
        try:
>           return self.get_element(key)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:222: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7ff01b16c370>
key = 'add_input'

    def get_element(self, key):
        """
        Get the web-element.
    
        Note: There is a wait in get_element.
            :param key: The key of the element mentioned in self.elements
            :returns: element The element we are looking for by key
        """
        element = self.elements[key]
>       return self._get_element(element.by, element.select)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:82: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.components.dropdown.Dropdown object at 0x7ff01b16c370>
by = 'id', select = 'addInputBtn'

    def _get_element(self, by, select):
        """
        Find the element from the page.
            :param by: The type of the selenium locator
            :param select: The selector text of type mentioned in by.
            :returns: The webelement we are accessing
        """
        msg = "by={} select={} Element not found in the page".format(by, select)
>       return self.wait.until(EC.presence_of_element_located((by, select)), msg)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/components/base_component.py:243: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.support.wait.WebDriverWait (session="8151818d4db94ddbbb0b8018109e5b0e")>
method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x7ff01b277a60>
message = 'by=id select=addInputBtn Element not found in the page'

    def until(self, method, message=''):
        """Calls the method provided with the driver as an argument until the \
        return value is not False."""
        screen = None
        stacktrace = None
    
        end_time = time.time() + self._timeout
        while True:
            try:
                value = method(self._driver)
                if value:
                    return value
            except self._ignored_exceptions as exc:
                screen = getattr(exc, 'screen', None)
                stacktrace = getattr(exc, 'stacktrace', None)
            time.sleep(self._poll)
            if time.time() > end_time:
                break
>       raise TimeoutException(message, screen, stacktrace)
E       selenium.common.exceptions.TimeoutException: Message: by=id select=addInputBtn Element not found in the page

/usr/local/lib/python3.10/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException