Skip to content

chore(deps): lock file maintenance #814

chore(deps): lock file maintenance

chore(deps): lock file maintenance #814

GitHub Actions / test-report-9.1.1__chrome_test_splunk_ta_example_addon_alert_actions failed Sep 28, 2023 in 0s

test-report-9.1.1__chrome_test_splunk_ta_example_addon_alert_actions ❌

Tests failed

❌ test-results/test.xml

9 tests were completed in 3829s with 0 passed, 9 failed and 0 skipped.

Test suite Passed Failed Skipped Time
pytest 9❌ 3829s

❌ pytest

tests.ui.test_splunk_ta_example_addon_alert_actions.chrome_TestAlertActions
  ❌ test_action_in_list
	request = <SubRequest 'ucc_smartx_selenium_wrapper' for <Function test_action_in_list>>
  ❌ test_dropdown_list
	request = <SubRequest 'ucc_smartx_selenium_wrapper' for <Function test_dropdown_list>>
  ❌ test_account_functionality
	request = <SubRequest 'ucc_smartx_selenium_wrapper' for <Function test_account_functionality>>
  ❌ test_checkbox
	request = <SubRequest 'ucc_smartx_selenium_wrapper' for <Function test_checkbox>>
  ❌ test_single_select
	request = <SubRequest 'ucc_smartx_selenium_wrapper' for <Function test_single_select>>
  ❌ test_toggle
	request = <SubRequest 'ucc_smartx_selenium_wrapper' for <Function test_toggle>>
  ❌ test_alert_action_save
	request = <SubRequest 'ucc_smartx_selenium_wrapper' for <Function test_alert_action_save>>
  ❌ test_alert_help_text_entity
	request = <SubRequest 'ucc_smartx_selenium_wrapper' for <Function test_alert_help_text_entity>>
  ❌ test_alert_action_label_entity
	request = <SubRequest 'ucc_smartx_selenium_wrapper' for <Function test_alert_action_label_entity>>

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.1.1__chrome_test_splunk_ta_example_addon_alert_actions

pytest ► tests.ui.test_splunk_ta_example_addon_alert_actions.chrome_TestAlertActions ► test_action_in_list

Failed test found in:
  test-results/test.xml
Error:
  request = <SubRequest 'ucc_smartx_selenium_wrapper' for <Function test_action_in_list>>
Raw output
request = <SubRequest 'ucc_smartx_selenium_wrapper' for <Function test_action_in_list>>

    @pytest.fixture(scope="function", autouse=True)
    def ucc_smartx_selenium_wrapper(request):
        """
        Calls ucc_smartx_selenium_helper fixture
        """
        if "ucc_smartx_selenium_helper" in request.fixturenames:
>           request.node.selenium_helper = request.getfixturevalue(
                "ucc_smartx_selenium_helper"
            )

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/plugin.py:254: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

request = <SubRequest 'ucc_smartx_selenium_helper' for <Function test_action_in_list>>
ucc_smartx_configs = SmartConfigs(driver='chrome', driver_version='latest', local_run=False, retry_count=3, headless_run=False)
splunk = {'forwarder_host': 'splunk', 'host': 'splunk', 'password': 'Chang3d!', 'port': '8089', ...}
splunk_web_uri = 'http://splunk:8000/'
splunk_rest_uri = (<requests.sessions.Session object at 0x7f3e83291ba0>, 'https://splunk:8089/')

    @pytest.fixture(scope=get_browser_scope)
    def ucc_smartx_selenium_helper(
        request, ucc_smartx_configs, splunk, splunk_web_uri, splunk_rest_uri
    ):
        # Try to configure selenium & Login to splunk instance
        test_case = "{}_{}".format(
            ucc_smartx_configs.driver, request.node.nodeid.split("::")[-1]
        )
        for try_number in range(ucc_smartx_configs.retry_count):
            last_exc = Exception()
            try:
                selenium_helper = SeleniumHelper(
                    ucc_smartx_configs.driver,
                    ucc_smartx_configs.driver_version,
                    splunk_web_uri,
                    splunk_rest_uri,
                    debug=ucc_smartx_configs.local_run,
                    cred=(splunk["username"], splunk["password"]),
                    headless=ucc_smartx_configs.headless_run,
                    test_case=test_case,
                )
                break
            except Exception as e:
                last_exc = e
                LOGGER.warning(
                    "Failed to configure the browser or login to Splunk instance for - Try={} \nTRACEBACK::{}".format(
                        try_number, traceback.format_exc()
                    )
                )
        else:
            LOGGER.error(
                "Could not connect to Browser or login to Splunk instance. Please check the logs for detailed error of each retry"
            )
>           raise (last_exc)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/plugin.py:198: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

request = <SubRequest 'ucc_smartx_selenium_helper' for <Function test_action_in_list>>
ucc_smartx_configs = SmartConfigs(driver='chrome', driver_version='latest', local_run=False, retry_count=3, headless_run=False)
splunk = {'forwarder_host': 'splunk', 'host': 'splunk', 'password': 'Chang3d!', 'port': '8089', ...}
splunk_web_uri = 'http://splunk:8000/'
splunk_rest_uri = (<requests.sessions.Session object at 0x7f3e83291ba0>, 'https://splunk:8089/')

    @pytest.fixture(scope=get_browser_scope)
    def ucc_smartx_selenium_helper(
        request, ucc_smartx_configs, splunk, splunk_web_uri, splunk_rest_uri
    ):
        # Try to configure selenium & Login to splunk instance
        test_case = "{}_{}".format(
            ucc_smartx_configs.driver, request.node.nodeid.split("::")[-1]
        )
        for try_number in range(ucc_smartx_configs.retry_count):
            last_exc = Exception()
            try:
>               selenium_helper = SeleniumHelper(
                    ucc_smartx_configs.driver,
                    ucc_smartx_configs.driver_version,
                    splunk_web_uri,
                    splunk_rest_uri,
                    debug=ucc_smartx_configs.local_run,
                    cred=(splunk["username"], splunk["password"]),
                    headless=ucc_smartx_configs.headless_run,
                    test_case=test_case,
                )

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/plugin.py:176: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e82ff36a0>
browser = 'chrome', browser_version = 'latest'
splunk_web_url = 'http://splunk:8000/'
splunk_mgmt_url = (<requests.sessions.Session object at 0x7f3e83291ba0>, 'https://splunk:8089/')
debug = False, cred = ('admin', 'Chang3d!'), headless = False
test_case = 'chrome_test_action_in_list'

    def __init__(
        self,
        browser,
        browser_version,
        splunk_web_url,
        splunk_mgmt_url,
        debug=False,
        cred=("admin", "Chang3d!"),
        headless=False,
        test_case=None,
    ):
        self.splunk_web_url = splunk_web_url
        self.splunk_mgmt_url = splunk_mgmt_url
        self.cred = cred
        self.test_case = test_case
        self.skip_saucelab_job = False
    
        if "grid" in browser:
            self.skip_saucelab_job = True
            debug = True
    
        if not debug:
            # Using Saucelabs
            self.init_sauce_env_variables()
    
        try:
            if browser == "firefox":
                if debug:
                    self.browser = webdriver.Firefox(
                        firefox_options=self.get_local_firefox_opts(headless),
                        log_path="selenium.log",
                    )
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_firefox_opts(
                            browser_version
                        ),
                    )
    
            elif browser == "chrome":
                if debug:
                    self.browser = webdriver.Chrome(
                        chrome_options=self.get_local_chrome_opts(headless),
                        service_args=["--verbose", "--log-path=selenium.log"],
                    )
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_chrome_opts(
                            browser_version
                        ),
                    )
    
            # selenium local stack
            elif browser == "chrome_grid":
                google_cert_opts = {
                    "goog:chromeOptions": {
                        "w3c": True,
                        "args": ["ignore-certificate-errors", "ignore-ssl-errors=yes"],
                    }
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://chrome-grid:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts("chrome", google_cert_opts),
                )
            elif browser == "firefox_grid":
                firefox_cert_opts = {
                    "acceptInsecureCerts": True,
                    "acceptSslCerts": True,
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://firefox-grid:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts(
                        "firefox", firefox_cert_opts
                    ),
                )
            # kubernetes selenium
            elif browser == "chrome_k8s":
                google_cert_opts = {
                    "goog:chromeOptions": {
                        "w3c": True,
                        "args": ["ignore-certificate-errors", "ignore-ssl-errors=yes"],
                    }
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://selenium-hub.selenium.svc.cluster.local:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts("chrome", google_cert_opts),
                )
            elif browser == "firefox_k8s":
                firefox_cert_opts = {
                    "acceptInsecureCerts": True,
                    "acceptSslCerts": True,
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://selenium-hub.selenium.svc.cluster.local:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts(
                        "firefox", firefox_cert_opts
                    ),
                )
    
            elif browser == "edge":
                if debug:
                    self.browser = Edge(
                        executable_path="msedgedriver",
                        desired_capabilities=self.get_local_edge_opts(headless),
                        service_args=["--verbose", "--log-path=selenium.log"],
                    )
                else:
                    command_executor = EdgeRemoteConnection(
                        "https://ondemand.saucelabs.com:443/wd/hub"
                    )
                    options = EdgeOptions()
                    options.use_chromium = True
                    self.browser = webdriver.Remote(
                        command_executor=command_executor,
                        options=options,
                        desired_capabilities=self.get_sauce_edge_opts(browser_version),
                    )
    
            elif browser == "IE":
                if debug:
                    self.browser = webdriver.Ie(capabilities=self.get_local_ie_opts())
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_ie_opts(browser_version),
                    )
            elif browser == "safari":
                if debug:
                    self.browser = webdriver.Safari()
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_safari_opts(
                            browser_version
                        ),
                    )
            else:
                raise Exception(
                    "No valid browser found.! expected=[firefox, chrome, safari], got={}".format(
                        browser
                    )
                )
        except Exception as e:
            raise e
    
        try:
            self.browser_session = self.browser.session_id
>           self.login_to_splunk(*self.cred)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e82ff36a0>
cred = ('admin', 'Chang3d!')

    def login_to_splunk(self, *cred):
        try:
>           login_page = LoginPage(self)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:444: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.pages.login.LoginPage object at 0x7f3e82ff29e0>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e82ff36a0>

    def __init__(self, ucc_smartx_selenium_helper):
        """
        :param ucc_smartx_selenium_helper: Fixture with selenium driver, urls(web, mgmt) and session key
        """
    
>       super().__init__(ucc_smartx_selenium_helper, ucc_smartx_rest_helper=None)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/pages/login.py:33: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.pages.login.LoginPage object at 0x7f3e82ff29e0>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e82ff36a0>
ucc_smartx_rest_helper = None, open_page = True

    def __init__(
        self, ucc_smartx_selenium_helper, ucc_smartx_rest_helper, open_page=True
    ):
        """
        :param ucc_smartx_selenium_helper: The selenium webdriver
        :param ucc_smartx_rest_helper: Splunk web & management url. {"web": , "mgmt": }
        """
        if ucc_smartx_selenium_helper:
            self.browser = ucc_smartx_selenium_helper.browser
            self.splunk_web_url = ucc_smartx_selenium_helper.splunk_web_url
            if open_page:
>               self.open()

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/pages/page.py:35: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.pages.login.LoginPage object at 0x7f3e82ff29e0>

    def open(self):
        """
        Abstract Method. Open the page
        """
>       self.browser.get(self.splunk_web_url)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/pages/page.py:43: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.webdriver.WebDriver (session="c9fc1d33d2684cc481d6ab6293e97b59")>
url = 'http://splunk:8000/'

    def get(self, url):
        """
        Loads a web page in the current browser session.
        """
>       self.execute(Command.GET, {'url': url})

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

self = <selenium.webdriver.remote.webdriver.WebDriver (session="c9fc1d33d2684cc481d6ab6293e97b59")>
driver_command = 'get', params = {'url': 'http://splunk:8000/'}

    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 0x7f3e82ff2cb0>
response = {'status': 500, 'value': '{"value": {"stacktrace": "\\tGetHandleVerifier [0x00A7CE43+45171]\\n\\t(No symbol) [0x00A090...ge": "unknown error: net::ERR_NAME_NOT_RESOLVED\\n  (Session info: chrome=117.0.5938.63)", "error": "unknown error"}}'}

    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.WebDriverException: Message: unknown error: net::ERR_NAME_NOT_RESOLVED
E         (Session info: chrome=117.0.5938.63)

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

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

See this annotation in the file changed.

@github-actions github-actions / test-report-9.1.1__chrome_test_splunk_ta_example_addon_alert_actions

pytest ► tests.ui.test_splunk_ta_example_addon_alert_actions.chrome_TestAlertActions ► test_dropdown_list

Failed test found in:
  test-results/test.xml
Error:
  request = <SubRequest 'ucc_smartx_selenium_wrapper' for <Function test_dropdown_list>>
Raw output
request = <SubRequest 'ucc_smartx_selenium_wrapper' for <Function test_dropdown_list>>

    @pytest.fixture(scope="function", autouse=True)
    def ucc_smartx_selenium_wrapper(request):
        """
        Calls ucc_smartx_selenium_helper fixture
        """
        if "ucc_smartx_selenium_helper" in request.fixturenames:
>           request.node.selenium_helper = request.getfixturevalue(
                "ucc_smartx_selenium_helper"
            )

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/plugin.py:254: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

request = <SubRequest 'ucc_smartx_selenium_helper' for <Function test_dropdown_list>>
ucc_smartx_configs = SmartConfigs(driver='chrome', driver_version='latest', local_run=False, retry_count=3, headless_run=False)
splunk = {'forwarder_host': 'splunk', 'host': 'splunk', 'password': 'Chang3d!', 'port': '8089', ...}
splunk_web_uri = 'http://splunk:8000/'
splunk_rest_uri = (<requests.sessions.Session object at 0x7f3e83291ba0>, 'https://splunk:8089/')

    @pytest.fixture(scope=get_browser_scope)
    def ucc_smartx_selenium_helper(
        request, ucc_smartx_configs, splunk, splunk_web_uri, splunk_rest_uri
    ):
        # Try to configure selenium & Login to splunk instance
        test_case = "{}_{}".format(
            ucc_smartx_configs.driver, request.node.nodeid.split("::")[-1]
        )
        for try_number in range(ucc_smartx_configs.retry_count):
            last_exc = Exception()
            try:
                selenium_helper = SeleniumHelper(
                    ucc_smartx_configs.driver,
                    ucc_smartx_configs.driver_version,
                    splunk_web_uri,
                    splunk_rest_uri,
                    debug=ucc_smartx_configs.local_run,
                    cred=(splunk["username"], splunk["password"]),
                    headless=ucc_smartx_configs.headless_run,
                    test_case=test_case,
                )
                break
            except Exception as e:
                last_exc = e
                LOGGER.warning(
                    "Failed to configure the browser or login to Splunk instance for - Try={} \nTRACEBACK::{}".format(
                        try_number, traceback.format_exc()
                    )
                )
        else:
            LOGGER.error(
                "Could not connect to Browser or login to Splunk instance. Please check the logs for detailed error of each retry"
            )
>           raise (last_exc)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/plugin.py:198: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

request = <SubRequest 'ucc_smartx_selenium_helper' for <Function test_dropdown_list>>
ucc_smartx_configs = SmartConfigs(driver='chrome', driver_version='latest', local_run=False, retry_count=3, headless_run=False)
splunk = {'forwarder_host': 'splunk', 'host': 'splunk', 'password': 'Chang3d!', 'port': '8089', ...}
splunk_web_uri = 'http://splunk:8000/'
splunk_rest_uri = (<requests.sessions.Session object at 0x7f3e83291ba0>, 'https://splunk:8089/')

    @pytest.fixture(scope=get_browser_scope)
    def ucc_smartx_selenium_helper(
        request, ucc_smartx_configs, splunk, splunk_web_uri, splunk_rest_uri
    ):
        # Try to configure selenium & Login to splunk instance
        test_case = "{}_{}".format(
            ucc_smartx_configs.driver, request.node.nodeid.split("::")[-1]
        )
        for try_number in range(ucc_smartx_configs.retry_count):
            last_exc = Exception()
            try:
>               selenium_helper = SeleniumHelper(
                    ucc_smartx_configs.driver,
                    ucc_smartx_configs.driver_version,
                    splunk_web_uri,
                    splunk_rest_uri,
                    debug=ucc_smartx_configs.local_run,
                    cred=(splunk["username"], splunk["password"]),
                    headless=ucc_smartx_configs.headless_run,
                    test_case=test_case,
                )

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/plugin.py:176: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e831de590>
browser = 'chrome', browser_version = 'latest'
splunk_web_url = 'http://splunk:8000/'
splunk_mgmt_url = (<requests.sessions.Session object at 0x7f3e83291ba0>, 'https://splunk:8089/')
debug = False, cred = ('admin', 'Chang3d!'), headless = False
test_case = 'chrome_test_dropdown_list'

    def __init__(
        self,
        browser,
        browser_version,
        splunk_web_url,
        splunk_mgmt_url,
        debug=False,
        cred=("admin", "Chang3d!"),
        headless=False,
        test_case=None,
    ):
        self.splunk_web_url = splunk_web_url
        self.splunk_mgmt_url = splunk_mgmt_url
        self.cred = cred
        self.test_case = test_case
        self.skip_saucelab_job = False
    
        if "grid" in browser:
            self.skip_saucelab_job = True
            debug = True
    
        if not debug:
            # Using Saucelabs
            self.init_sauce_env_variables()
    
        try:
            if browser == "firefox":
                if debug:
                    self.browser = webdriver.Firefox(
                        firefox_options=self.get_local_firefox_opts(headless),
                        log_path="selenium.log",
                    )
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_firefox_opts(
                            browser_version
                        ),
                    )
    
            elif browser == "chrome":
                if debug:
                    self.browser = webdriver.Chrome(
                        chrome_options=self.get_local_chrome_opts(headless),
                        service_args=["--verbose", "--log-path=selenium.log"],
                    )
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_chrome_opts(
                            browser_version
                        ),
                    )
    
            # selenium local stack
            elif browser == "chrome_grid":
                google_cert_opts = {
                    "goog:chromeOptions": {
                        "w3c": True,
                        "args": ["ignore-certificate-errors", "ignore-ssl-errors=yes"],
                    }
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://chrome-grid:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts("chrome", google_cert_opts),
                )
            elif browser == "firefox_grid":
                firefox_cert_opts = {
                    "acceptInsecureCerts": True,
                    "acceptSslCerts": True,
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://firefox-grid:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts(
                        "firefox", firefox_cert_opts
                    ),
                )
            # kubernetes selenium
            elif browser == "chrome_k8s":
                google_cert_opts = {
                    "goog:chromeOptions": {
                        "w3c": True,
                        "args": ["ignore-certificate-errors", "ignore-ssl-errors=yes"],
                    }
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://selenium-hub.selenium.svc.cluster.local:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts("chrome", google_cert_opts),
                )
            elif browser == "firefox_k8s":
                firefox_cert_opts = {
                    "acceptInsecureCerts": True,
                    "acceptSslCerts": True,
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://selenium-hub.selenium.svc.cluster.local:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts(
                        "firefox", firefox_cert_opts
                    ),
                )
    
            elif browser == "edge":
                if debug:
                    self.browser = Edge(
                        executable_path="msedgedriver",
                        desired_capabilities=self.get_local_edge_opts(headless),
                        service_args=["--verbose", "--log-path=selenium.log"],
                    )
                else:
                    command_executor = EdgeRemoteConnection(
                        "https://ondemand.saucelabs.com:443/wd/hub"
                    )
                    options = EdgeOptions()
                    options.use_chromium = True
                    self.browser = webdriver.Remote(
                        command_executor=command_executor,
                        options=options,
                        desired_capabilities=self.get_sauce_edge_opts(browser_version),
                    )
    
            elif browser == "IE":
                if debug:
                    self.browser = webdriver.Ie(capabilities=self.get_local_ie_opts())
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_ie_opts(browser_version),
                    )
            elif browser == "safari":
                if debug:
                    self.browser = webdriver.Safari()
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_safari_opts(
                            browser_version
                        ),
                    )
            else:
                raise Exception(
                    "No valid browser found.! expected=[firefox, chrome, safari], got={}".format(
                        browser
                    )
                )
        except Exception as e:
            raise e
    
        try:
            self.browser_session = self.browser.session_id
>           self.login_to_splunk(*self.cred)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e831de590>
cred = ('admin', 'Chang3d!')

    def login_to_splunk(self, *cred):
        try:
>           login_page = LoginPage(self)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:444: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.pages.login.LoginPage object at 0x7f3e831dcd30>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e831de590>

    def __init__(self, ucc_smartx_selenium_helper):
        """
        :param ucc_smartx_selenium_helper: Fixture with selenium driver, urls(web, mgmt) and session key
        """
    
>       super().__init__(ucc_smartx_selenium_helper, ucc_smartx_rest_helper=None)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/pages/login.py:33: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.pages.login.LoginPage object at 0x7f3e831dcd30>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e831de590>
ucc_smartx_rest_helper = None, open_page = True

    def __init__(
        self, ucc_smartx_selenium_helper, ucc_smartx_rest_helper, open_page=True
    ):
        """
        :param ucc_smartx_selenium_helper: The selenium webdriver
        :param ucc_smartx_rest_helper: Splunk web & management url. {"web": , "mgmt": }
        """
        if ucc_smartx_selenium_helper:
            self.browser = ucc_smartx_selenium_helper.browser
            self.splunk_web_url = ucc_smartx_selenium_helper.splunk_web_url
            if open_page:
>               self.open()

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/pages/page.py:35: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.pages.login.LoginPage object at 0x7f3e831dcd30>

    def open(self):
        """
        Abstract Method. Open the page
        """
>       self.browser.get(self.splunk_web_url)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/pages/page.py:43: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.webdriver.WebDriver (session="a53453d7fc114b0b8d171298d9588ec6")>
url = 'http://splunk:8000/'

    def get(self, url):
        """
        Loads a web page in the current browser session.
        """
>       self.execute(Command.GET, {'url': url})

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

self = <selenium.webdriver.remote.webdriver.WebDriver (session="a53453d7fc114b0b8d171298d9588ec6")>
driver_command = 'get', params = {'url': 'http://splunk:8000/'}

    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 0x7f3e831dd9f0>
response = {'status': 500, 'value': '{"value": {"stacktrace": "\\tGetHandleVerifier [0x0084CE43+45171]\\n\\t(No symbol) [0x007D90...ge": "unknown error: net::ERR_NAME_NOT_RESOLVED\\n  (Session info: chrome=117.0.5938.63)", "error": "unknown error"}}'}

    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.WebDriverException: Message: unknown error: net::ERR_NAME_NOT_RESOLVED
E         (Session info: chrome=117.0.5938.63)

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

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

See this annotation in the file changed.

@github-actions github-actions / test-report-9.1.1__chrome_test_splunk_ta_example_addon_alert_actions

pytest ► tests.ui.test_splunk_ta_example_addon_alert_actions.chrome_TestAlertActions ► test_account_functionality

Failed test found in:
  test-results/test.xml
Error:
  request = <SubRequest 'ucc_smartx_selenium_wrapper' for <Function test_account_functionality>>
Raw output
request = <SubRequest 'ucc_smartx_selenium_wrapper' for <Function test_account_functionality>>

    @pytest.fixture(scope="function", autouse=True)
    def ucc_smartx_selenium_wrapper(request):
        """
        Calls ucc_smartx_selenium_helper fixture
        """
        if "ucc_smartx_selenium_helper" in request.fixturenames:
>           request.node.selenium_helper = request.getfixturevalue(
                "ucc_smartx_selenium_helper"
            )

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/plugin.py:254: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

request = <SubRequest 'ucc_smartx_selenium_helper' for <Function test_account_functionality>>
ucc_smartx_configs = SmartConfigs(driver='chrome', driver_version='latest', local_run=False, retry_count=3, headless_run=False)
splunk = {'forwarder_host': 'splunk', 'host': 'splunk', 'password': 'Chang3d!', 'port': '8089', ...}
splunk_web_uri = 'http://splunk:8000/'
splunk_rest_uri = (<requests.sessions.Session object at 0x7f3e83291ba0>, 'https://splunk:8089/')

    @pytest.fixture(scope=get_browser_scope)
    def ucc_smartx_selenium_helper(
        request, ucc_smartx_configs, splunk, splunk_web_uri, splunk_rest_uri
    ):
        # Try to configure selenium & Login to splunk instance
        test_case = "{}_{}".format(
            ucc_smartx_configs.driver, request.node.nodeid.split("::")[-1]
        )
        for try_number in range(ucc_smartx_configs.retry_count):
            last_exc = Exception()
            try:
                selenium_helper = SeleniumHelper(
                    ucc_smartx_configs.driver,
                    ucc_smartx_configs.driver_version,
                    splunk_web_uri,
                    splunk_rest_uri,
                    debug=ucc_smartx_configs.local_run,
                    cred=(splunk["username"], splunk["password"]),
                    headless=ucc_smartx_configs.headless_run,
                    test_case=test_case,
                )
                break
            except Exception as e:
                last_exc = e
                LOGGER.warning(
                    "Failed to configure the browser or login to Splunk instance for - Try={} \nTRACEBACK::{}".format(
                        try_number, traceback.format_exc()
                    )
                )
        else:
            LOGGER.error(
                "Could not connect to Browser or login to Splunk instance. Please check the logs for detailed error of each retry"
            )
>           raise (last_exc)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/plugin.py:198: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

request = <SubRequest 'ucc_smartx_selenium_helper' for <Function test_account_functionality>>
ucc_smartx_configs = SmartConfigs(driver='chrome', driver_version='latest', local_run=False, retry_count=3, headless_run=False)
splunk = {'forwarder_host': 'splunk', 'host': 'splunk', 'password': 'Chang3d!', 'port': '8089', ...}
splunk_web_uri = 'http://splunk:8000/'
splunk_rest_uri = (<requests.sessions.Session object at 0x7f3e83291ba0>, 'https://splunk:8089/')

    @pytest.fixture(scope=get_browser_scope)
    def ucc_smartx_selenium_helper(
        request, ucc_smartx_configs, splunk, splunk_web_uri, splunk_rest_uri
    ):
        # Try to configure selenium & Login to splunk instance
        test_case = "{}_{}".format(
            ucc_smartx_configs.driver, request.node.nodeid.split("::")[-1]
        )
        for try_number in range(ucc_smartx_configs.retry_count):
            last_exc = Exception()
            try:
>               selenium_helper = SeleniumHelper(
                    ucc_smartx_configs.driver,
                    ucc_smartx_configs.driver_version,
                    splunk_web_uri,
                    splunk_rest_uri,
                    debug=ucc_smartx_configs.local_run,
                    cred=(splunk["username"], splunk["password"]),
                    headless=ucc_smartx_configs.headless_run,
                    test_case=test_case,
                )

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/plugin.py:176: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e8312df90>
browser = 'chrome', browser_version = 'latest'
splunk_web_url = 'http://splunk:8000/'
splunk_mgmt_url = (<requests.sessions.Session object at 0x7f3e83291ba0>, 'https://splunk:8089/')
debug = False, cred = ('admin', 'Chang3d!'), headless = False
test_case = 'chrome_test_account_functionality'

    def __init__(
        self,
        browser,
        browser_version,
        splunk_web_url,
        splunk_mgmt_url,
        debug=False,
        cred=("admin", "Chang3d!"),
        headless=False,
        test_case=None,
    ):
        self.splunk_web_url = splunk_web_url
        self.splunk_mgmt_url = splunk_mgmt_url
        self.cred = cred
        self.test_case = test_case
        self.skip_saucelab_job = False
    
        if "grid" in browser:
            self.skip_saucelab_job = True
            debug = True
    
        if not debug:
            # Using Saucelabs
            self.init_sauce_env_variables()
    
        try:
            if browser == "firefox":
                if debug:
                    self.browser = webdriver.Firefox(
                        firefox_options=self.get_local_firefox_opts(headless),
                        log_path="selenium.log",
                    )
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_firefox_opts(
                            browser_version
                        ),
                    )
    
            elif browser == "chrome":
                if debug:
                    self.browser = webdriver.Chrome(
                        chrome_options=self.get_local_chrome_opts(headless),
                        service_args=["--verbose", "--log-path=selenium.log"],
                    )
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_chrome_opts(
                            browser_version
                        ),
                    )
    
            # selenium local stack
            elif browser == "chrome_grid":
                google_cert_opts = {
                    "goog:chromeOptions": {
                        "w3c": True,
                        "args": ["ignore-certificate-errors", "ignore-ssl-errors=yes"],
                    }
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://chrome-grid:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts("chrome", google_cert_opts),
                )
            elif browser == "firefox_grid":
                firefox_cert_opts = {
                    "acceptInsecureCerts": True,
                    "acceptSslCerts": True,
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://firefox-grid:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts(
                        "firefox", firefox_cert_opts
                    ),
                )
            # kubernetes selenium
            elif browser == "chrome_k8s":
                google_cert_opts = {
                    "goog:chromeOptions": {
                        "w3c": True,
                        "args": ["ignore-certificate-errors", "ignore-ssl-errors=yes"],
                    }
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://selenium-hub.selenium.svc.cluster.local:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts("chrome", google_cert_opts),
                )
            elif browser == "firefox_k8s":
                firefox_cert_opts = {
                    "acceptInsecureCerts": True,
                    "acceptSslCerts": True,
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://selenium-hub.selenium.svc.cluster.local:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts(
                        "firefox", firefox_cert_opts
                    ),
                )
    
            elif browser == "edge":
                if debug:
                    self.browser = Edge(
                        executable_path="msedgedriver",
                        desired_capabilities=self.get_local_edge_opts(headless),
                        service_args=["--verbose", "--log-path=selenium.log"],
                    )
                else:
                    command_executor = EdgeRemoteConnection(
                        "https://ondemand.saucelabs.com:443/wd/hub"
                    )
                    options = EdgeOptions()
                    options.use_chromium = True
                    self.browser = webdriver.Remote(
                        command_executor=command_executor,
                        options=options,
                        desired_capabilities=self.get_sauce_edge_opts(browser_version),
                    )
    
            elif browser == "IE":
                if debug:
                    self.browser = webdriver.Ie(capabilities=self.get_local_ie_opts())
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_ie_opts(browser_version),
                    )
            elif browser == "safari":
                if debug:
                    self.browser = webdriver.Safari()
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_safari_opts(
                            browser_version
                        ),
                    )
            else:
                raise Exception(
                    "No valid browser found.! expected=[firefox, chrome, safari], got={}".format(
                        browser
                    )
                )
        except Exception as e:
            raise e
    
        try:
            self.browser_session = self.browser.session_id
>           self.login_to_splunk(*self.cred)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e8312df90>
cred = ('admin', 'Chang3d!')

    def login_to_splunk(self, *cred):
        try:
>           login_page = LoginPage(self)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:444: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.pages.login.LoginPage object at 0x7f3e8312dcc0>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e8312df90>

    def __init__(self, ucc_smartx_selenium_helper):
        """
        :param ucc_smartx_selenium_helper: Fixture with selenium driver, urls(web, mgmt) and session key
        """
    
>       super().__init__(ucc_smartx_selenium_helper, ucc_smartx_rest_helper=None)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/pages/login.py:33: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.pages.login.LoginPage object at 0x7f3e8312dcc0>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e8312df90>
ucc_smartx_rest_helper = None, open_page = True

    def __init__(
        self, ucc_smartx_selenium_helper, ucc_smartx_rest_helper, open_page=True
    ):
        """
        :param ucc_smartx_selenium_helper: The selenium webdriver
        :param ucc_smartx_rest_helper: Splunk web & management url. {"web": , "mgmt": }
        """
        if ucc_smartx_selenium_helper:
            self.browser = ucc_smartx_selenium_helper.browser
            self.splunk_web_url = ucc_smartx_selenium_helper.splunk_web_url
            if open_page:
>               self.open()

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/pages/page.py:35: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.pages.login.LoginPage object at 0x7f3e8312dcc0>

    def open(self):
        """
        Abstract Method. Open the page
        """
>       self.browser.get(self.splunk_web_url)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/pages/page.py:43: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.webdriver.WebDriver (session="03953855f48a494f90c1317a431137e9")>
url = 'http://splunk:8000/'

    def get(self, url):
        """
        Loads a web page in the current browser session.
        """
>       self.execute(Command.GET, {'url': url})

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

self = <selenium.webdriver.remote.webdriver.WebDriver (session="03953855f48a494f90c1317a431137e9")>
driver_command = 'get', params = {'url': 'http://splunk:8000/'}

    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 0x7f3e8312d4b0>
response = {'status': 500, 'value': '{"value": {"stacktrace": "\\tGetHandleVerifier [0x005ECE43+45171]\\n\\t(No symbol) [0x005790...ge": "unknown error: net::ERR_NAME_NOT_RESOLVED\\n  (Session info: chrome=117.0.5938.63)", "error": "unknown error"}}'}

    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.WebDriverException: Message: unknown error: net::ERR_NAME_NOT_RESOLVED
E         (Session info: chrome=117.0.5938.63)

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

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

See this annotation in the file changed.

@github-actions github-actions / test-report-9.1.1__chrome_test_splunk_ta_example_addon_alert_actions

pytest ► tests.ui.test_splunk_ta_example_addon_alert_actions.chrome_TestAlertActions ► test_checkbox

Failed test found in:
  test-results/test.xml
Error:
  request = <SubRequest 'ucc_smartx_selenium_wrapper' for <Function test_checkbox>>
Raw output
request = <SubRequest 'ucc_smartx_selenium_wrapper' for <Function test_checkbox>>

    @pytest.fixture(scope="function", autouse=True)
    def ucc_smartx_selenium_wrapper(request):
        """
        Calls ucc_smartx_selenium_helper fixture
        """
        if "ucc_smartx_selenium_helper" in request.fixturenames:
>           request.node.selenium_helper = request.getfixturevalue(
                "ucc_smartx_selenium_helper"
            )

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/plugin.py:254: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

request = <SubRequest 'ucc_smartx_selenium_helper' for <Function test_checkbox>>
ucc_smartx_configs = SmartConfigs(driver='chrome', driver_version='latest', local_run=False, retry_count=3, headless_run=False)
splunk = {'forwarder_host': 'splunk', 'host': 'splunk', 'password': 'Chang3d!', 'port': '8089', ...}
splunk_web_uri = 'http://splunk:8000/'
splunk_rest_uri = (<requests.sessions.Session object at 0x7f3e83291ba0>, 'https://splunk:8089/')

    @pytest.fixture(scope=get_browser_scope)
    def ucc_smartx_selenium_helper(
        request, ucc_smartx_configs, splunk, splunk_web_uri, splunk_rest_uri
    ):
        # Try to configure selenium & Login to splunk instance
        test_case = "{}_{}".format(
            ucc_smartx_configs.driver, request.node.nodeid.split("::")[-1]
        )
        for try_number in range(ucc_smartx_configs.retry_count):
            last_exc = Exception()
            try:
                selenium_helper = SeleniumHelper(
                    ucc_smartx_configs.driver,
                    ucc_smartx_configs.driver_version,
                    splunk_web_uri,
                    splunk_rest_uri,
                    debug=ucc_smartx_configs.local_run,
                    cred=(splunk["username"], splunk["password"]),
                    headless=ucc_smartx_configs.headless_run,
                    test_case=test_case,
                )
                break
            except Exception as e:
                last_exc = e
                LOGGER.warning(
                    "Failed to configure the browser or login to Splunk instance for - Try={} \nTRACEBACK::{}".format(
                        try_number, traceback.format_exc()
                    )
                )
        else:
            LOGGER.error(
                "Could not connect to Browser or login to Splunk instance. Please check the logs for detailed error of each retry"
            )
>           raise (last_exc)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/plugin.py:198: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

request = <SubRequest 'ucc_smartx_selenium_helper' for <Function test_checkbox>>
ucc_smartx_configs = SmartConfigs(driver='chrome', driver_version='latest', local_run=False, retry_count=3, headless_run=False)
splunk = {'forwarder_host': 'splunk', 'host': 'splunk', 'password': 'Chang3d!', 'port': '8089', ...}
splunk_web_uri = 'http://splunk:8000/'
splunk_rest_uri = (<requests.sessions.Session object at 0x7f3e83291ba0>, 'https://splunk:8089/')

    @pytest.fixture(scope=get_browser_scope)
    def ucc_smartx_selenium_helper(
        request, ucc_smartx_configs, splunk, splunk_web_uri, splunk_rest_uri
    ):
        # Try to configure selenium & Login to splunk instance
        test_case = "{}_{}".format(
            ucc_smartx_configs.driver, request.node.nodeid.split("::")[-1]
        )
        for try_number in range(ucc_smartx_configs.retry_count):
            last_exc = Exception()
            try:
>               selenium_helper = SeleniumHelper(
                    ucc_smartx_configs.driver,
                    ucc_smartx_configs.driver_version,
                    splunk_web_uri,
                    splunk_rest_uri,
                    debug=ucc_smartx_configs.local_run,
                    cred=(splunk["username"], splunk["password"]),
                    headless=ucc_smartx_configs.headless_run,
                    test_case=test_case,
                )

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/plugin.py:176: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e82f9c790>
browser = 'chrome', browser_version = 'latest'
splunk_web_url = 'http://splunk:8000/'
splunk_mgmt_url = (<requests.sessions.Session object at 0x7f3e83291ba0>, 'https://splunk:8089/')
debug = False, cred = ('admin', 'Chang3d!'), headless = False
test_case = 'chrome_test_checkbox'

    def __init__(
        self,
        browser,
        browser_version,
        splunk_web_url,
        splunk_mgmt_url,
        debug=False,
        cred=("admin", "Chang3d!"),
        headless=False,
        test_case=None,
    ):
        self.splunk_web_url = splunk_web_url
        self.splunk_mgmt_url = splunk_mgmt_url
        self.cred = cred
        self.test_case = test_case
        self.skip_saucelab_job = False
    
        if "grid" in browser:
            self.skip_saucelab_job = True
            debug = True
    
        if not debug:
            # Using Saucelabs
            self.init_sauce_env_variables()
    
        try:
            if browser == "firefox":
                if debug:
                    self.browser = webdriver.Firefox(
                        firefox_options=self.get_local_firefox_opts(headless),
                        log_path="selenium.log",
                    )
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_firefox_opts(
                            browser_version
                        ),
                    )
    
            elif browser == "chrome":
                if debug:
                    self.browser = webdriver.Chrome(
                        chrome_options=self.get_local_chrome_opts(headless),
                        service_args=["--verbose", "--log-path=selenium.log"],
                    )
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_chrome_opts(
                            browser_version
                        ),
                    )
    
            # selenium local stack
            elif browser == "chrome_grid":
                google_cert_opts = {
                    "goog:chromeOptions": {
                        "w3c": True,
                        "args": ["ignore-certificate-errors", "ignore-ssl-errors=yes"],
                    }
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://chrome-grid:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts("chrome", google_cert_opts),
                )
            elif browser == "firefox_grid":
                firefox_cert_opts = {
                    "acceptInsecureCerts": True,
                    "acceptSslCerts": True,
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://firefox-grid:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts(
                        "firefox", firefox_cert_opts
                    ),
                )
            # kubernetes selenium
            elif browser == "chrome_k8s":
                google_cert_opts = {
                    "goog:chromeOptions": {
                        "w3c": True,
                        "args": ["ignore-certificate-errors", "ignore-ssl-errors=yes"],
                    }
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://selenium-hub.selenium.svc.cluster.local:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts("chrome", google_cert_opts),
                )
            elif browser == "firefox_k8s":
                firefox_cert_opts = {
                    "acceptInsecureCerts": True,
                    "acceptSslCerts": True,
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://selenium-hub.selenium.svc.cluster.local:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts(
                        "firefox", firefox_cert_opts
                    ),
                )
    
            elif browser == "edge":
                if debug:
                    self.browser = Edge(
                        executable_path="msedgedriver",
                        desired_capabilities=self.get_local_edge_opts(headless),
                        service_args=["--verbose", "--log-path=selenium.log"],
                    )
                else:
                    command_executor = EdgeRemoteConnection(
                        "https://ondemand.saucelabs.com:443/wd/hub"
                    )
                    options = EdgeOptions()
                    options.use_chromium = True
                    self.browser = webdriver.Remote(
                        command_executor=command_executor,
                        options=options,
                        desired_capabilities=self.get_sauce_edge_opts(browser_version),
                    )
    
            elif browser == "IE":
                if debug:
                    self.browser = webdriver.Ie(capabilities=self.get_local_ie_opts())
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_ie_opts(browser_version),
                    )
            elif browser == "safari":
                if debug:
                    self.browser = webdriver.Safari()
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_safari_opts(
                            browser_version
                        ),
                    )
            else:
                raise Exception(
                    "No valid browser found.! expected=[firefox, chrome, safari], got={}".format(
                        browser
                    )
                )
        except Exception as e:
            raise e
    
        try:
            self.browser_session = self.browser.session_id
>           self.login_to_splunk(*self.cred)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e82f9c790>
cred = ('admin', 'Chang3d!')

    def login_to_splunk(self, *cred):
        try:
>           login_page = LoginPage(self)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:444: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.pages.login.LoginPage object at 0x7f3e82f9e620>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e82f9c790>

    def __init__(self, ucc_smartx_selenium_helper):
        """
        :param ucc_smartx_selenium_helper: Fixture with selenium driver, urls(web, mgmt) and session key
        """
    
>       super().__init__(ucc_smartx_selenium_helper, ucc_smartx_rest_helper=None)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/pages/login.py:33: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.pages.login.LoginPage object at 0x7f3e82f9e620>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e82f9c790>
ucc_smartx_rest_helper = None, open_page = True

    def __init__(
        self, ucc_smartx_selenium_helper, ucc_smartx_rest_helper, open_page=True
    ):
        """
        :param ucc_smartx_selenium_helper: The selenium webdriver
        :param ucc_smartx_rest_helper: Splunk web & management url. {"web": , "mgmt": }
        """
        if ucc_smartx_selenium_helper:
            self.browser = ucc_smartx_selenium_helper.browser
            self.splunk_web_url = ucc_smartx_selenium_helper.splunk_web_url
            if open_page:
>               self.open()

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/pages/page.py:35: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.pages.login.LoginPage object at 0x7f3e82f9e620>

    def open(self):
        """
        Abstract Method. Open the page
        """
>       self.browser.get(self.splunk_web_url)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/pages/page.py:43: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.webdriver.WebDriver (session="43c372d0bceb490d8ca0314d867245c8")>
url = 'http://splunk:8000/'

    def get(self, url):
        """
        Loads a web page in the current browser session.
        """
>       self.execute(Command.GET, {'url': url})

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

self = <selenium.webdriver.remote.webdriver.WebDriver (session="43c372d0bceb490d8ca0314d867245c8")>
driver_command = 'get', params = {'url': 'http://splunk:8000/'}

    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 0x7f3e82f9e3e0>
response = {'status': 500, 'value': '{"value": {"stacktrace": "\\tGetHandleVerifier [0x008ACE43+45171]\\n\\t(No symbol) [0x008390...ge": "unknown error: net::ERR_NAME_NOT_RESOLVED\\n  (Session info: chrome=117.0.5938.63)", "error": "unknown error"}}'}

    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.WebDriverException: Message: unknown error: net::ERR_NAME_NOT_RESOLVED
E         (Session info: chrome=117.0.5938.63)

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

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

See this annotation in the file changed.

@github-actions github-actions / test-report-9.1.1__chrome_test_splunk_ta_example_addon_alert_actions

pytest ► tests.ui.test_splunk_ta_example_addon_alert_actions.chrome_TestAlertActions ► test_single_select

Failed test found in:
  test-results/test.xml
Error:
  request = <SubRequest 'ucc_smartx_selenium_wrapper' for <Function test_single_select>>
Raw output
request = <SubRequest 'ucc_smartx_selenium_wrapper' for <Function test_single_select>>

    @pytest.fixture(scope="function", autouse=True)
    def ucc_smartx_selenium_wrapper(request):
        """
        Calls ucc_smartx_selenium_helper fixture
        """
        if "ucc_smartx_selenium_helper" in request.fixturenames:
>           request.node.selenium_helper = request.getfixturevalue(
                "ucc_smartx_selenium_helper"
            )

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/plugin.py:254: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

request = <SubRequest 'ucc_smartx_selenium_helper' for <Function test_single_select>>
ucc_smartx_configs = SmartConfigs(driver='chrome', driver_version='latest', local_run=False, retry_count=3, headless_run=False)
splunk = {'forwarder_host': 'splunk', 'host': 'splunk', 'password': 'Chang3d!', 'port': '8089', ...}
splunk_web_uri = 'http://splunk:8000/'
splunk_rest_uri = (<requests.sessions.Session object at 0x7f3e83291ba0>, 'https://splunk:8089/')

    @pytest.fixture(scope=get_browser_scope)
    def ucc_smartx_selenium_helper(
        request, ucc_smartx_configs, splunk, splunk_web_uri, splunk_rest_uri
    ):
        # Try to configure selenium & Login to splunk instance
        test_case = "{}_{}".format(
            ucc_smartx_configs.driver, request.node.nodeid.split("::")[-1]
        )
        for try_number in range(ucc_smartx_configs.retry_count):
            last_exc = Exception()
            try:
                selenium_helper = SeleniumHelper(
                    ucc_smartx_configs.driver,
                    ucc_smartx_configs.driver_version,
                    splunk_web_uri,
                    splunk_rest_uri,
                    debug=ucc_smartx_configs.local_run,
                    cred=(splunk["username"], splunk["password"]),
                    headless=ucc_smartx_configs.headless_run,
                    test_case=test_case,
                )
                break
            except Exception as e:
                last_exc = e
                LOGGER.warning(
                    "Failed to configure the browser or login to Splunk instance for - Try={} \nTRACEBACK::{}".format(
                        try_number, traceback.format_exc()
                    )
                )
        else:
            LOGGER.error(
                "Could not connect to Browser or login to Splunk instance. Please check the logs for detailed error of each retry"
            )
>           raise (last_exc)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/plugin.py:198: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

request = <SubRequest 'ucc_smartx_selenium_helper' for <Function test_single_select>>
ucc_smartx_configs = SmartConfigs(driver='chrome', driver_version='latest', local_run=False, retry_count=3, headless_run=False)
splunk = {'forwarder_host': 'splunk', 'host': 'splunk', 'password': 'Chang3d!', 'port': '8089', ...}
splunk_web_uri = 'http://splunk:8000/'
splunk_rest_uri = (<requests.sessions.Session object at 0x7f3e83291ba0>, 'https://splunk:8089/')

    @pytest.fixture(scope=get_browser_scope)
    def ucc_smartx_selenium_helper(
        request, ucc_smartx_configs, splunk, splunk_web_uri, splunk_rest_uri
    ):
        # Try to configure selenium & Login to splunk instance
        test_case = "{}_{}".format(
            ucc_smartx_configs.driver, request.node.nodeid.split("::")[-1]
        )
        for try_number in range(ucc_smartx_configs.retry_count):
            last_exc = Exception()
            try:
>               selenium_helper = SeleniumHelper(
                    ucc_smartx_configs.driver,
                    ucc_smartx_configs.driver_version,
                    splunk_web_uri,
                    splunk_rest_uri,
                    debug=ucc_smartx_configs.local_run,
                    cred=(splunk["username"], splunk["password"]),
                    headless=ucc_smartx_configs.headless_run,
                    test_case=test_case,
                )

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/plugin.py:176: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e82fc8280>
browser = 'chrome', browser_version = 'latest'
splunk_web_url = 'http://splunk:8000/'
splunk_mgmt_url = (<requests.sessions.Session object at 0x7f3e83291ba0>, 'https://splunk:8089/')
debug = False, cred = ('admin', 'Chang3d!'), headless = False
test_case = 'chrome_test_single_select'

    def __init__(
        self,
        browser,
        browser_version,
        splunk_web_url,
        splunk_mgmt_url,
        debug=False,
        cred=("admin", "Chang3d!"),
        headless=False,
        test_case=None,
    ):
        self.splunk_web_url = splunk_web_url
        self.splunk_mgmt_url = splunk_mgmt_url
        self.cred = cred
        self.test_case = test_case
        self.skip_saucelab_job = False
    
        if "grid" in browser:
            self.skip_saucelab_job = True
            debug = True
    
        if not debug:
            # Using Saucelabs
            self.init_sauce_env_variables()
    
        try:
            if browser == "firefox":
                if debug:
                    self.browser = webdriver.Firefox(
                        firefox_options=self.get_local_firefox_opts(headless),
                        log_path="selenium.log",
                    )
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_firefox_opts(
                            browser_version
                        ),
                    )
    
            elif browser == "chrome":
                if debug:
                    self.browser = webdriver.Chrome(
                        chrome_options=self.get_local_chrome_opts(headless),
                        service_args=["--verbose", "--log-path=selenium.log"],
                    )
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_chrome_opts(
                            browser_version
                        ),
                    )
    
            # selenium local stack
            elif browser == "chrome_grid":
                google_cert_opts = {
                    "goog:chromeOptions": {
                        "w3c": True,
                        "args": ["ignore-certificate-errors", "ignore-ssl-errors=yes"],
                    }
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://chrome-grid:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts("chrome", google_cert_opts),
                )
            elif browser == "firefox_grid":
                firefox_cert_opts = {
                    "acceptInsecureCerts": True,
                    "acceptSslCerts": True,
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://firefox-grid:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts(
                        "firefox", firefox_cert_opts
                    ),
                )
            # kubernetes selenium
            elif browser == "chrome_k8s":
                google_cert_opts = {
                    "goog:chromeOptions": {
                        "w3c": True,
                        "args": ["ignore-certificate-errors", "ignore-ssl-errors=yes"],
                    }
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://selenium-hub.selenium.svc.cluster.local:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts("chrome", google_cert_opts),
                )
            elif browser == "firefox_k8s":
                firefox_cert_opts = {
                    "acceptInsecureCerts": True,
                    "acceptSslCerts": True,
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://selenium-hub.selenium.svc.cluster.local:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts(
                        "firefox", firefox_cert_opts
                    ),
                )
    
            elif browser == "edge":
                if debug:
                    self.browser = Edge(
                        executable_path="msedgedriver",
                        desired_capabilities=self.get_local_edge_opts(headless),
                        service_args=["--verbose", "--log-path=selenium.log"],
                    )
                else:
                    command_executor = EdgeRemoteConnection(
                        "https://ondemand.saucelabs.com:443/wd/hub"
                    )
                    options = EdgeOptions()
                    options.use_chromium = True
                    self.browser = webdriver.Remote(
                        command_executor=command_executor,
                        options=options,
                        desired_capabilities=self.get_sauce_edge_opts(browser_version),
                    )
    
            elif browser == "IE":
                if debug:
                    self.browser = webdriver.Ie(capabilities=self.get_local_ie_opts())
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_ie_opts(browser_version),
                    )
            elif browser == "safari":
                if debug:
                    self.browser = webdriver.Safari()
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_safari_opts(
                            browser_version
                        ),
                    )
            else:
                raise Exception(
                    "No valid browser found.! expected=[firefox, chrome, safari], got={}".format(
                        browser
                    )
                )
        except Exception as e:
            raise e
    
        try:
            self.browser_session = self.browser.session_id
>           self.login_to_splunk(*self.cred)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e82fc8280>
cred = ('admin', 'Chang3d!')

    def login_to_splunk(self, *cred):
        try:
>           login_page = LoginPage(self)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:444: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.pages.login.LoginPage object at 0x7f3e82fca380>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e82fc8280>

    def __init__(self, ucc_smartx_selenium_helper):
        """
        :param ucc_smartx_selenium_helper: Fixture with selenium driver, urls(web, mgmt) and session key
        """
    
>       super().__init__(ucc_smartx_selenium_helper, ucc_smartx_rest_helper=None)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/pages/login.py:33: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.pages.login.LoginPage object at 0x7f3e82fca380>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e82fc8280>
ucc_smartx_rest_helper = None, open_page = True

    def __init__(
        self, ucc_smartx_selenium_helper, ucc_smartx_rest_helper, open_page=True
    ):
        """
        :param ucc_smartx_selenium_helper: The selenium webdriver
        :param ucc_smartx_rest_helper: Splunk web & management url. {"web": , "mgmt": }
        """
        if ucc_smartx_selenium_helper:
            self.browser = ucc_smartx_selenium_helper.browser
            self.splunk_web_url = ucc_smartx_selenium_helper.splunk_web_url
            if open_page:
>               self.open()

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/pages/page.py:35: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.pages.login.LoginPage object at 0x7f3e82fca380>

    def open(self):
        """
        Abstract Method. Open the page
        """
>       self.browser.get(self.splunk_web_url)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/pages/page.py:43: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.webdriver.WebDriver (session="9c2f664457744fd896ab0227f0eec66f")>
url = 'http://splunk:8000/'

    def get(self, url):
        """
        Loads a web page in the current browser session.
        """
>       self.execute(Command.GET, {'url': url})

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

self = <selenium.webdriver.remote.webdriver.WebDriver (session="9c2f664457744fd896ab0227f0eec66f")>
driver_command = 'get', params = {'url': 'http://splunk:8000/'}

    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 0x7f3e82fc8b80>
response = {'status': 500, 'value': '{"value": {"stacktrace": "\\tGetHandleVerifier [0x008FCE43+45171]\\n\\t(No symbol) [0x008890...ge": "unknown error: net::ERR_NAME_NOT_RESOLVED\\n  (Session info: chrome=117.0.5938.63)", "error": "unknown error"}}'}

    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.WebDriverException: Message: unknown error: net::ERR_NAME_NOT_RESOLVED
E         (Session info: chrome=117.0.5938.63)

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

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

See this annotation in the file changed.

@github-actions github-actions / test-report-9.1.1__chrome_test_splunk_ta_example_addon_alert_actions

pytest ► tests.ui.test_splunk_ta_example_addon_alert_actions.chrome_TestAlertActions ► test_toggle

Failed test found in:
  test-results/test.xml
Error:
  request = <SubRequest 'ucc_smartx_selenium_wrapper' for <Function test_toggle>>
Raw output
request = <SubRequest 'ucc_smartx_selenium_wrapper' for <Function test_toggle>>

    @pytest.fixture(scope="function", autouse=True)
    def ucc_smartx_selenium_wrapper(request):
        """
        Calls ucc_smartx_selenium_helper fixture
        """
        if "ucc_smartx_selenium_helper" in request.fixturenames:
>           request.node.selenium_helper = request.getfixturevalue(
                "ucc_smartx_selenium_helper"
            )

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/plugin.py:254: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

request = <SubRequest 'ucc_smartx_selenium_helper' for <Function test_toggle>>
ucc_smartx_configs = SmartConfigs(driver='chrome', driver_version='latest', local_run=False, retry_count=3, headless_run=False)
splunk = {'forwarder_host': 'splunk', 'host': 'splunk', 'password': 'Chang3d!', 'port': '8089', ...}
splunk_web_uri = 'http://splunk:8000/'
splunk_rest_uri = (<requests.sessions.Session object at 0x7f3e83291ba0>, 'https://splunk:8089/')

    @pytest.fixture(scope=get_browser_scope)
    def ucc_smartx_selenium_helper(
        request, ucc_smartx_configs, splunk, splunk_web_uri, splunk_rest_uri
    ):
        # Try to configure selenium & Login to splunk instance
        test_case = "{}_{}".format(
            ucc_smartx_configs.driver, request.node.nodeid.split("::")[-1]
        )
        for try_number in range(ucc_smartx_configs.retry_count):
            last_exc = Exception()
            try:
                selenium_helper = SeleniumHelper(
                    ucc_smartx_configs.driver,
                    ucc_smartx_configs.driver_version,
                    splunk_web_uri,
                    splunk_rest_uri,
                    debug=ucc_smartx_configs.local_run,
                    cred=(splunk["username"], splunk["password"]),
                    headless=ucc_smartx_configs.headless_run,
                    test_case=test_case,
                )
                break
            except Exception as e:
                last_exc = e
                LOGGER.warning(
                    "Failed to configure the browser or login to Splunk instance for - Try={} \nTRACEBACK::{}".format(
                        try_number, traceback.format_exc()
                    )
                )
        else:
            LOGGER.error(
                "Could not connect to Browser or login to Splunk instance. Please check the logs for detailed error of each retry"
            )
>           raise (last_exc)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/plugin.py:198: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

request = <SubRequest 'ucc_smartx_selenium_helper' for <Function test_toggle>>
ucc_smartx_configs = SmartConfigs(driver='chrome', driver_version='latest', local_run=False, retry_count=3, headless_run=False)
splunk = {'forwarder_host': 'splunk', 'host': 'splunk', 'password': 'Chang3d!', 'port': '8089', ...}
splunk_web_uri = 'http://splunk:8000/'
splunk_rest_uri = (<requests.sessions.Session object at 0x7f3e83291ba0>, 'https://splunk:8089/')

    @pytest.fixture(scope=get_browser_scope)
    def ucc_smartx_selenium_helper(
        request, ucc_smartx_configs, splunk, splunk_web_uri, splunk_rest_uri
    ):
        # Try to configure selenium & Login to splunk instance
        test_case = "{}_{}".format(
            ucc_smartx_configs.driver, request.node.nodeid.split("::")[-1]
        )
        for try_number in range(ucc_smartx_configs.retry_count):
            last_exc = Exception()
            try:
>               selenium_helper = SeleniumHelper(
                    ucc_smartx_configs.driver,
                    ucc_smartx_configs.driver_version,
                    splunk_web_uri,
                    splunk_rest_uri,
                    debug=ucc_smartx_configs.local_run,
                    cred=(splunk["username"], splunk["password"]),
                    headless=ucc_smartx_configs.headless_run,
                    test_case=test_case,
                )

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/plugin.py:176: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e8312d960>
browser = 'chrome', browser_version = 'latest'
splunk_web_url = 'http://splunk:8000/'
splunk_mgmt_url = (<requests.sessions.Session object at 0x7f3e83291ba0>, 'https://splunk:8089/')
debug = False, cred = ('admin', 'Chang3d!'), headless = False
test_case = 'chrome_test_toggle'

    def __init__(
        self,
        browser,
        browser_version,
        splunk_web_url,
        splunk_mgmt_url,
        debug=False,
        cred=("admin", "Chang3d!"),
        headless=False,
        test_case=None,
    ):
        self.splunk_web_url = splunk_web_url
        self.splunk_mgmt_url = splunk_mgmt_url
        self.cred = cred
        self.test_case = test_case
        self.skip_saucelab_job = False
    
        if "grid" in browser:
            self.skip_saucelab_job = True
            debug = True
    
        if not debug:
            # Using Saucelabs
            self.init_sauce_env_variables()
    
        try:
            if browser == "firefox":
                if debug:
                    self.browser = webdriver.Firefox(
                        firefox_options=self.get_local_firefox_opts(headless),
                        log_path="selenium.log",
                    )
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_firefox_opts(
                            browser_version
                        ),
                    )
    
            elif browser == "chrome":
                if debug:
                    self.browser = webdriver.Chrome(
                        chrome_options=self.get_local_chrome_opts(headless),
                        service_args=["--verbose", "--log-path=selenium.log"],
                    )
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_chrome_opts(
                            browser_version
                        ),
                    )
    
            # selenium local stack
            elif browser == "chrome_grid":
                google_cert_opts = {
                    "goog:chromeOptions": {
                        "w3c": True,
                        "args": ["ignore-certificate-errors", "ignore-ssl-errors=yes"],
                    }
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://chrome-grid:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts("chrome", google_cert_opts),
                )
            elif browser == "firefox_grid":
                firefox_cert_opts = {
                    "acceptInsecureCerts": True,
                    "acceptSslCerts": True,
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://firefox-grid:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts(
                        "firefox", firefox_cert_opts
                    ),
                )
            # kubernetes selenium
            elif browser == "chrome_k8s":
                google_cert_opts = {
                    "goog:chromeOptions": {
                        "w3c": True,
                        "args": ["ignore-certificate-errors", "ignore-ssl-errors=yes"],
                    }
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://selenium-hub.selenium.svc.cluster.local:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts("chrome", google_cert_opts),
                )
            elif browser == "firefox_k8s":
                firefox_cert_opts = {
                    "acceptInsecureCerts": True,
                    "acceptSslCerts": True,
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://selenium-hub.selenium.svc.cluster.local:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts(
                        "firefox", firefox_cert_opts
                    ),
                )
    
            elif browser == "edge":
                if debug:
                    self.browser = Edge(
                        executable_path="msedgedriver",
                        desired_capabilities=self.get_local_edge_opts(headless),
                        service_args=["--verbose", "--log-path=selenium.log"],
                    )
                else:
                    command_executor = EdgeRemoteConnection(
                        "https://ondemand.saucelabs.com:443/wd/hub"
                    )
                    options = EdgeOptions()
                    options.use_chromium = True
                    self.browser = webdriver.Remote(
                        command_executor=command_executor,
                        options=options,
                        desired_capabilities=self.get_sauce_edge_opts(browser_version),
                    )
    
            elif browser == "IE":
                if debug:
                    self.browser = webdriver.Ie(capabilities=self.get_local_ie_opts())
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_ie_opts(browser_version),
                    )
            elif browser == "safari":
                if debug:
                    self.browser = webdriver.Safari()
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_safari_opts(
                            browser_version
                        ),
                    )
            else:
                raise Exception(
                    "No valid browser found.! expected=[firefox, chrome, safari], got={}".format(
                        browser
                    )
                )
        except Exception as e:
            raise e
    
        try:
            self.browser_session = self.browser.session_id
>           self.login_to_splunk(*self.cred)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e8312d960>
cred = ('admin', 'Chang3d!')

    def login_to_splunk(self, *cred):
        try:
>           login_page = LoginPage(self)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:444: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.pages.login.LoginPage object at 0x7f3e8312ca30>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e8312d960>

    def __init__(self, ucc_smartx_selenium_helper):
        """
        :param ucc_smartx_selenium_helper: Fixture with selenium driver, urls(web, mgmt) and session key
        """
    
>       super().__init__(ucc_smartx_selenium_helper, ucc_smartx_rest_helper=None)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/pages/login.py:33: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.pages.login.LoginPage object at 0x7f3e8312ca30>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e8312d960>
ucc_smartx_rest_helper = None, open_page = True

    def __init__(
        self, ucc_smartx_selenium_helper, ucc_smartx_rest_helper, open_page=True
    ):
        """
        :param ucc_smartx_selenium_helper: The selenium webdriver
        :param ucc_smartx_rest_helper: Splunk web & management url. {"web": , "mgmt": }
        """
        if ucc_smartx_selenium_helper:
            self.browser = ucc_smartx_selenium_helper.browser
            self.splunk_web_url = ucc_smartx_selenium_helper.splunk_web_url
            if open_page:
>               self.open()

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/pages/page.py:35: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.pages.login.LoginPage object at 0x7f3e8312ca30>

    def open(self):
        """
        Abstract Method. Open the page
        """
>       self.browser.get(self.splunk_web_url)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/pages/page.py:43: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.webdriver.WebDriver (session="cc7ac09eb07e4d25a136d724aca2d7c8")>
url = 'http://splunk:8000/'

    def get(self, url):
        """
        Loads a web page in the current browser session.
        """
>       self.execute(Command.GET, {'url': url})

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

self = <selenium.webdriver.remote.webdriver.WebDriver (session="cc7ac09eb07e4d25a136d724aca2d7c8")>
driver_command = 'get', params = {'url': 'http://splunk:8000/'}

    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 0x7f3e8312dc90>
response = {'status': 500, 'value': '{"value": {"stacktrace": "\\tGetHandleVerifier [0x00B2CE43+45171]\\n\\t(No symbol) [0x00AB90...ge": "unknown error: net::ERR_NAME_NOT_RESOLVED\\n  (Session info: chrome=117.0.5938.63)", "error": "unknown error"}}'}

    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.WebDriverException: Message: unknown error: net::ERR_NAME_NOT_RESOLVED
E         (Session info: chrome=117.0.5938.63)

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

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

See this annotation in the file changed.

@github-actions github-actions / test-report-9.1.1__chrome_test_splunk_ta_example_addon_alert_actions

pytest ► tests.ui.test_splunk_ta_example_addon_alert_actions.chrome_TestAlertActions ► test_alert_action_save

Failed test found in:
  test-results/test.xml
Error:
  request = <SubRequest 'ucc_smartx_selenium_wrapper' for <Function test_alert_action_save>>
Raw output
request = <SubRequest 'ucc_smartx_selenium_wrapper' for <Function test_alert_action_save>>

    @pytest.fixture(scope="function", autouse=True)
    def ucc_smartx_selenium_wrapper(request):
        """
        Calls ucc_smartx_selenium_helper fixture
        """
        if "ucc_smartx_selenium_helper" in request.fixturenames:
>           request.node.selenium_helper = request.getfixturevalue(
                "ucc_smartx_selenium_helper"
            )

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/plugin.py:254: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

request = <SubRequest 'ucc_smartx_selenium_helper' for <Function test_alert_action_save>>
ucc_smartx_configs = SmartConfigs(driver='chrome', driver_version='latest', local_run=False, retry_count=3, headless_run=False)
splunk = {'forwarder_host': 'splunk', 'host': 'splunk', 'password': 'Chang3d!', 'port': '8089', ...}
splunk_web_uri = 'http://splunk:8000/'
splunk_rest_uri = (<requests.sessions.Session object at 0x7f3e83291ba0>, 'https://splunk:8089/')

    @pytest.fixture(scope=get_browser_scope)
    def ucc_smartx_selenium_helper(
        request, ucc_smartx_configs, splunk, splunk_web_uri, splunk_rest_uri
    ):
        # Try to configure selenium & Login to splunk instance
        test_case = "{}_{}".format(
            ucc_smartx_configs.driver, request.node.nodeid.split("::")[-1]
        )
        for try_number in range(ucc_smartx_configs.retry_count):
            last_exc = Exception()
            try:
                selenium_helper = SeleniumHelper(
                    ucc_smartx_configs.driver,
                    ucc_smartx_configs.driver_version,
                    splunk_web_uri,
                    splunk_rest_uri,
                    debug=ucc_smartx_configs.local_run,
                    cred=(splunk["username"], splunk["password"]),
                    headless=ucc_smartx_configs.headless_run,
                    test_case=test_case,
                )
                break
            except Exception as e:
                last_exc = e
                LOGGER.warning(
                    "Failed to configure the browser or login to Splunk instance for - Try={} \nTRACEBACK::{}".format(
                        try_number, traceback.format_exc()
                    )
                )
        else:
            LOGGER.error(
                "Could not connect to Browser or login to Splunk instance. Please check the logs for detailed error of each retry"
            )
>           raise (last_exc)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/plugin.py:198: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

request = <SubRequest 'ucc_smartx_selenium_helper' for <Function test_alert_action_save>>
ucc_smartx_configs = SmartConfigs(driver='chrome', driver_version='latest', local_run=False, retry_count=3, headless_run=False)
splunk = {'forwarder_host': 'splunk', 'host': 'splunk', 'password': 'Chang3d!', 'port': '8089', ...}
splunk_web_uri = 'http://splunk:8000/'
splunk_rest_uri = (<requests.sessions.Session object at 0x7f3e83291ba0>, 'https://splunk:8089/')

    @pytest.fixture(scope=get_browser_scope)
    def ucc_smartx_selenium_helper(
        request, ucc_smartx_configs, splunk, splunk_web_uri, splunk_rest_uri
    ):
        # Try to configure selenium & Login to splunk instance
        test_case = "{}_{}".format(
            ucc_smartx_configs.driver, request.node.nodeid.split("::")[-1]
        )
        for try_number in range(ucc_smartx_configs.retry_count):
            last_exc = Exception()
            try:
>               selenium_helper = SeleniumHelper(
                    ucc_smartx_configs.driver,
                    ucc_smartx_configs.driver_version,
                    splunk_web_uri,
                    splunk_rest_uri,
                    debug=ucc_smartx_configs.local_run,
                    cred=(splunk["username"], splunk["password"]),
                    headless=ucc_smartx_configs.headless_run,
                    test_case=test_case,
                )

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/plugin.py:176: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e830c75b0>
browser = 'chrome', browser_version = 'latest'
splunk_web_url = 'http://splunk:8000/'
splunk_mgmt_url = (<requests.sessions.Session object at 0x7f3e83291ba0>, 'https://splunk:8089/')
debug = False, cred = ('admin', 'Chang3d!'), headless = False
test_case = 'chrome_test_alert_action_save'

    def __init__(
        self,
        browser,
        browser_version,
        splunk_web_url,
        splunk_mgmt_url,
        debug=False,
        cred=("admin", "Chang3d!"),
        headless=False,
        test_case=None,
    ):
        self.splunk_web_url = splunk_web_url
        self.splunk_mgmt_url = splunk_mgmt_url
        self.cred = cred
        self.test_case = test_case
        self.skip_saucelab_job = False
    
        if "grid" in browser:
            self.skip_saucelab_job = True
            debug = True
    
        if not debug:
            # Using Saucelabs
            self.init_sauce_env_variables()
    
        try:
            if browser == "firefox":
                if debug:
                    self.browser = webdriver.Firefox(
                        firefox_options=self.get_local_firefox_opts(headless),
                        log_path="selenium.log",
                    )
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_firefox_opts(
                            browser_version
                        ),
                    )
    
            elif browser == "chrome":
                if debug:
                    self.browser = webdriver.Chrome(
                        chrome_options=self.get_local_chrome_opts(headless),
                        service_args=["--verbose", "--log-path=selenium.log"],
                    )
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_chrome_opts(
                            browser_version
                        ),
                    )
    
            # selenium local stack
            elif browser == "chrome_grid":
                google_cert_opts = {
                    "goog:chromeOptions": {
                        "w3c": True,
                        "args": ["ignore-certificate-errors", "ignore-ssl-errors=yes"],
                    }
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://chrome-grid:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts("chrome", google_cert_opts),
                )
            elif browser == "firefox_grid":
                firefox_cert_opts = {
                    "acceptInsecureCerts": True,
                    "acceptSslCerts": True,
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://firefox-grid:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts(
                        "firefox", firefox_cert_opts
                    ),
                )
            # kubernetes selenium
            elif browser == "chrome_k8s":
                google_cert_opts = {
                    "goog:chromeOptions": {
                        "w3c": True,
                        "args": ["ignore-certificate-errors", "ignore-ssl-errors=yes"],
                    }
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://selenium-hub.selenium.svc.cluster.local:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts("chrome", google_cert_opts),
                )
            elif browser == "firefox_k8s":
                firefox_cert_opts = {
                    "acceptInsecureCerts": True,
                    "acceptSslCerts": True,
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://selenium-hub.selenium.svc.cluster.local:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts(
                        "firefox", firefox_cert_opts
                    ),
                )
    
            elif browser == "edge":
                if debug:
                    self.browser = Edge(
                        executable_path="msedgedriver",
                        desired_capabilities=self.get_local_edge_opts(headless),
                        service_args=["--verbose", "--log-path=selenium.log"],
                    )
                else:
                    command_executor = EdgeRemoteConnection(
                        "https://ondemand.saucelabs.com:443/wd/hub"
                    )
                    options = EdgeOptions()
                    options.use_chromium = True
                    self.browser = webdriver.Remote(
                        command_executor=command_executor,
                        options=options,
                        desired_capabilities=self.get_sauce_edge_opts(browser_version),
                    )
    
            elif browser == "IE":
                if debug:
                    self.browser = webdriver.Ie(capabilities=self.get_local_ie_opts())
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_ie_opts(browser_version),
                    )
            elif browser == "safari":
                if debug:
                    self.browser = webdriver.Safari()
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_safari_opts(
                            browser_version
                        ),
                    )
            else:
                raise Exception(
                    "No valid browser found.! expected=[firefox, chrome, safari], got={}".format(
                        browser
                    )
                )
        except Exception as e:
            raise e
    
        try:
            self.browser_session = self.browser.session_id
>           self.login_to_splunk(*self.cred)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e830c75b0>
cred = ('admin', 'Chang3d!')

    def login_to_splunk(self, *cred):
        try:
>           login_page = LoginPage(self)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:444: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.pages.login.LoginPage object at 0x7f3e830c72e0>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e830c75b0>

    def __init__(self, ucc_smartx_selenium_helper):
        """
        :param ucc_smartx_selenium_helper: Fixture with selenium driver, urls(web, mgmt) and session key
        """
    
>       super().__init__(ucc_smartx_selenium_helper, ucc_smartx_rest_helper=None)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/pages/login.py:33: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.pages.login.LoginPage object at 0x7f3e830c72e0>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e830c75b0>
ucc_smartx_rest_helper = None, open_page = True

    def __init__(
        self, ucc_smartx_selenium_helper, ucc_smartx_rest_helper, open_page=True
    ):
        """
        :param ucc_smartx_selenium_helper: The selenium webdriver
        :param ucc_smartx_rest_helper: Splunk web & management url. {"web": , "mgmt": }
        """
        if ucc_smartx_selenium_helper:
            self.browser = ucc_smartx_selenium_helper.browser
            self.splunk_web_url = ucc_smartx_selenium_helper.splunk_web_url
            if open_page:
>               self.open()

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/pages/page.py:35: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.pages.login.LoginPage object at 0x7f3e830c72e0>

    def open(self):
        """
        Abstract Method. Open the page
        """
>       self.browser.get(self.splunk_web_url)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/pages/page.py:43: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.webdriver.WebDriver (session="b997e3aa96db4bd1afff52b5a74274f3")>
url = 'http://splunk:8000/'

    def get(self, url):
        """
        Loads a web page in the current browser session.
        """
>       self.execute(Command.GET, {'url': url})

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

self = <selenium.webdriver.remote.webdriver.WebDriver (session="b997e3aa96db4bd1afff52b5a74274f3")>
driver_command = 'get', params = {'url': 'http://splunk:8000/'}

    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 0x7f3e830c7490>
response = {'status': 500, 'value': '{"value": {"stacktrace": "\\tGetHandleVerifier [0x010ACE43+45171]\\n\\t(No symbol) [0x010390...ge": "unknown error: net::ERR_NAME_NOT_RESOLVED\\n  (Session info: chrome=117.0.5938.63)", "error": "unknown error"}}'}

    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.WebDriverException: Message: unknown error: net::ERR_NAME_NOT_RESOLVED
E         (Session info: chrome=117.0.5938.63)

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

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

See this annotation in the file changed.

@github-actions github-actions / test-report-9.1.1__chrome_test_splunk_ta_example_addon_alert_actions

pytest ► tests.ui.test_splunk_ta_example_addon_alert_actions.chrome_TestAlertActions ► test_alert_help_text_entity

Failed test found in:
  test-results/test.xml
Error:
  request = <SubRequest 'ucc_smartx_selenium_wrapper' for <Function test_alert_help_text_entity>>
Raw output
request = <SubRequest 'ucc_smartx_selenium_wrapper' for <Function test_alert_help_text_entity>>

    @pytest.fixture(scope="function", autouse=True)
    def ucc_smartx_selenium_wrapper(request):
        """
        Calls ucc_smartx_selenium_helper fixture
        """
        if "ucc_smartx_selenium_helper" in request.fixturenames:
>           request.node.selenium_helper = request.getfixturevalue(
                "ucc_smartx_selenium_helper"
            )

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/plugin.py:254: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

request = <SubRequest 'ucc_smartx_selenium_helper' for <Function test_alert_help_text_entity>>
ucc_smartx_configs = SmartConfigs(driver='chrome', driver_version='latest', local_run=False, retry_count=3, headless_run=False)
splunk = {'forwarder_host': 'splunk', 'host': 'splunk', 'password': 'Chang3d!', 'port': '8089', ...}
splunk_web_uri = 'http://splunk:8000/'
splunk_rest_uri = (<requests.sessions.Session object at 0x7f3e83291ba0>, 'https://splunk:8089/')

    @pytest.fixture(scope=get_browser_scope)
    def ucc_smartx_selenium_helper(
        request, ucc_smartx_configs, splunk, splunk_web_uri, splunk_rest_uri
    ):
        # Try to configure selenium & Login to splunk instance
        test_case = "{}_{}".format(
            ucc_smartx_configs.driver, request.node.nodeid.split("::")[-1]
        )
        for try_number in range(ucc_smartx_configs.retry_count):
            last_exc = Exception()
            try:
                selenium_helper = SeleniumHelper(
                    ucc_smartx_configs.driver,
                    ucc_smartx_configs.driver_version,
                    splunk_web_uri,
                    splunk_rest_uri,
                    debug=ucc_smartx_configs.local_run,
                    cred=(splunk["username"], splunk["password"]),
                    headless=ucc_smartx_configs.headless_run,
                    test_case=test_case,
                )
                break
            except Exception as e:
                last_exc = e
                LOGGER.warning(
                    "Failed to configure the browser or login to Splunk instance for - Try={} \nTRACEBACK::{}".format(
                        try_number, traceback.format_exc()
                    )
                )
        else:
            LOGGER.error(
                "Could not connect to Browser or login to Splunk instance. Please check the logs for detailed error of each retry"
            )
>           raise (last_exc)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/plugin.py:198: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

request = <SubRequest 'ucc_smartx_selenium_helper' for <Function test_alert_help_text_entity>>
ucc_smartx_configs = SmartConfigs(driver='chrome', driver_version='latest', local_run=False, retry_count=3, headless_run=False)
splunk = {'forwarder_host': 'splunk', 'host': 'splunk', 'password': 'Chang3d!', 'port': '8089', ...}
splunk_web_uri = 'http://splunk:8000/'
splunk_rest_uri = (<requests.sessions.Session object at 0x7f3e83291ba0>, 'https://splunk:8089/')

    @pytest.fixture(scope=get_browser_scope)
    def ucc_smartx_selenium_helper(
        request, ucc_smartx_configs, splunk, splunk_web_uri, splunk_rest_uri
    ):
        # Try to configure selenium & Login to splunk instance
        test_case = "{}_{}".format(
            ucc_smartx_configs.driver, request.node.nodeid.split("::")[-1]
        )
        for try_number in range(ucc_smartx_configs.retry_count):
            last_exc = Exception()
            try:
>               selenium_helper = SeleniumHelper(
                    ucc_smartx_configs.driver,
                    ucc_smartx_configs.driver_version,
                    splunk_web_uri,
                    splunk_rest_uri,
                    debug=ucc_smartx_configs.local_run,
                    cred=(splunk["username"], splunk["password"]),
                    headless=ucc_smartx_configs.headless_run,
                    test_case=test_case,
                )

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/plugin.py:176: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e83006260>
browser = 'chrome', browser_version = 'latest'
splunk_web_url = 'http://splunk:8000/'
splunk_mgmt_url = (<requests.sessions.Session object at 0x7f3e83291ba0>, 'https://splunk:8089/')
debug = False, cred = ('admin', 'Chang3d!'), headless = False
test_case = 'chrome_test_alert_help_text_entity'

    def __init__(
        self,
        browser,
        browser_version,
        splunk_web_url,
        splunk_mgmt_url,
        debug=False,
        cred=("admin", "Chang3d!"),
        headless=False,
        test_case=None,
    ):
        self.splunk_web_url = splunk_web_url
        self.splunk_mgmt_url = splunk_mgmt_url
        self.cred = cred
        self.test_case = test_case
        self.skip_saucelab_job = False
    
        if "grid" in browser:
            self.skip_saucelab_job = True
            debug = True
    
        if not debug:
            # Using Saucelabs
            self.init_sauce_env_variables()
    
        try:
            if browser == "firefox":
                if debug:
                    self.browser = webdriver.Firefox(
                        firefox_options=self.get_local_firefox_opts(headless),
                        log_path="selenium.log",
                    )
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_firefox_opts(
                            browser_version
                        ),
                    )
    
            elif browser == "chrome":
                if debug:
                    self.browser = webdriver.Chrome(
                        chrome_options=self.get_local_chrome_opts(headless),
                        service_args=["--verbose", "--log-path=selenium.log"],
                    )
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_chrome_opts(
                            browser_version
                        ),
                    )
    
            # selenium local stack
            elif browser == "chrome_grid":
                google_cert_opts = {
                    "goog:chromeOptions": {
                        "w3c": True,
                        "args": ["ignore-certificate-errors", "ignore-ssl-errors=yes"],
                    }
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://chrome-grid:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts("chrome", google_cert_opts),
                )
            elif browser == "firefox_grid":
                firefox_cert_opts = {
                    "acceptInsecureCerts": True,
                    "acceptSslCerts": True,
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://firefox-grid:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts(
                        "firefox", firefox_cert_opts
                    ),
                )
            # kubernetes selenium
            elif browser == "chrome_k8s":
                google_cert_opts = {
                    "goog:chromeOptions": {
                        "w3c": True,
                        "args": ["ignore-certificate-errors", "ignore-ssl-errors=yes"],
                    }
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://selenium-hub.selenium.svc.cluster.local:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts("chrome", google_cert_opts),
                )
            elif browser == "firefox_k8s":
                firefox_cert_opts = {
                    "acceptInsecureCerts": True,
                    "acceptSslCerts": True,
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://selenium-hub.selenium.svc.cluster.local:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts(
                        "firefox", firefox_cert_opts
                    ),
                )
    
            elif browser == "edge":
                if debug:
                    self.browser = Edge(
                        executable_path="msedgedriver",
                        desired_capabilities=self.get_local_edge_opts(headless),
                        service_args=["--verbose", "--log-path=selenium.log"],
                    )
                else:
                    command_executor = EdgeRemoteConnection(
                        "https://ondemand.saucelabs.com:443/wd/hub"
                    )
                    options = EdgeOptions()
                    options.use_chromium = True
                    self.browser = webdriver.Remote(
                        command_executor=command_executor,
                        options=options,
                        desired_capabilities=self.get_sauce_edge_opts(browser_version),
                    )
    
            elif browser == "IE":
                if debug:
                    self.browser = webdriver.Ie(capabilities=self.get_local_ie_opts())
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_ie_opts(browser_version),
                    )
            elif browser == "safari":
                if debug:
                    self.browser = webdriver.Safari()
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_safari_opts(
                            browser_version
                        ),
                    )
            else:
                raise Exception(
                    "No valid browser found.! expected=[firefox, chrome, safari], got={}".format(
                        browser
                    )
                )
        except Exception as e:
            raise e
    
        try:
            self.browser_session = self.browser.session_id
>           self.login_to_splunk(*self.cred)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e83006260>
cred = ('admin', 'Chang3d!')

    def login_to_splunk(self, *cred):
        try:
>           login_page = LoginPage(self)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:444: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.pages.login.LoginPage object at 0x7f3e83006440>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e83006260>

    def __init__(self, ucc_smartx_selenium_helper):
        """
        :param ucc_smartx_selenium_helper: Fixture with selenium driver, urls(web, mgmt) and session key
        """
    
>       super().__init__(ucc_smartx_selenium_helper, ucc_smartx_rest_helper=None)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/pages/login.py:33: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.pages.login.LoginPage object at 0x7f3e83006440>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e83006260>
ucc_smartx_rest_helper = None, open_page = True

    def __init__(
        self, ucc_smartx_selenium_helper, ucc_smartx_rest_helper, open_page=True
    ):
        """
        :param ucc_smartx_selenium_helper: The selenium webdriver
        :param ucc_smartx_rest_helper: Splunk web & management url. {"web": , "mgmt": }
        """
        if ucc_smartx_selenium_helper:
            self.browser = ucc_smartx_selenium_helper.browser
            self.splunk_web_url = ucc_smartx_selenium_helper.splunk_web_url
            if open_page:
>               self.open()

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/pages/page.py:35: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.pages.login.LoginPage object at 0x7f3e83006440>

    def open(self):
        """
        Abstract Method. Open the page
        """
>       self.browser.get(self.splunk_web_url)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/pages/page.py:43: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.webdriver.WebDriver (session="e1fb11a6b8ad4633aea20dca50c45015")>
url = 'http://splunk:8000/'

    def get(self, url):
        """
        Loads a web page in the current browser session.
        """
>       self.execute(Command.GET, {'url': url})

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

self = <selenium.webdriver.remote.webdriver.WebDriver (session="e1fb11a6b8ad4633aea20dca50c45015")>
driver_command = 'get', params = {'url': 'http://splunk:8000/'}

    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 0x7f3e830049a0>
response = {'status': 500, 'value': '{"value": {"stacktrace": "\\tGetHandleVerifier [0x010ECE43+45171]\\n\\t(No symbol) [0x010790...ge": "unknown error: net::ERR_NAME_NOT_RESOLVED\\n  (Session info: chrome=117.0.5938.63)", "error": "unknown error"}}'}

    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.WebDriverException: Message: unknown error: net::ERR_NAME_NOT_RESOLVED
E         (Session info: chrome=117.0.5938.63)

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

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

See this annotation in the file changed.

@github-actions github-actions / test-report-9.1.1__chrome_test_splunk_ta_example_addon_alert_actions

pytest ► tests.ui.test_splunk_ta_example_addon_alert_actions.chrome_TestAlertActions ► test_alert_action_label_entity

Failed test found in:
  test-results/test.xml
Error:
  request = <SubRequest 'ucc_smartx_selenium_wrapper' for <Function test_alert_action_label_entity>>
Raw output
request = <SubRequest 'ucc_smartx_selenium_wrapper' for <Function test_alert_action_label_entity>>

    @pytest.fixture(scope="function", autouse=True)
    def ucc_smartx_selenium_wrapper(request):
        """
        Calls ucc_smartx_selenium_helper fixture
        """
        if "ucc_smartx_selenium_helper" in request.fixturenames:
>           request.node.selenium_helper = request.getfixturevalue(
                "ucc_smartx_selenium_helper"
            )

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/plugin.py:254: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

request = <SubRequest 'ucc_smartx_selenium_helper' for <Function test_alert_action_label_entity>>
ucc_smartx_configs = SmartConfigs(driver='chrome', driver_version='latest', local_run=False, retry_count=3, headless_run=False)
splunk = {'forwarder_host': 'splunk', 'host': 'splunk', 'password': 'Chang3d!', 'port': '8089', ...}
splunk_web_uri = 'http://splunk:8000/'
splunk_rest_uri = (<requests.sessions.Session object at 0x7f3e83291ba0>, 'https://splunk:8089/')

    @pytest.fixture(scope=get_browser_scope)
    def ucc_smartx_selenium_helper(
        request, ucc_smartx_configs, splunk, splunk_web_uri, splunk_rest_uri
    ):
        # Try to configure selenium & Login to splunk instance
        test_case = "{}_{}".format(
            ucc_smartx_configs.driver, request.node.nodeid.split("::")[-1]
        )
        for try_number in range(ucc_smartx_configs.retry_count):
            last_exc = Exception()
            try:
                selenium_helper = SeleniumHelper(
                    ucc_smartx_configs.driver,
                    ucc_smartx_configs.driver_version,
                    splunk_web_uri,
                    splunk_rest_uri,
                    debug=ucc_smartx_configs.local_run,
                    cred=(splunk["username"], splunk["password"]),
                    headless=ucc_smartx_configs.headless_run,
                    test_case=test_case,
                )
                break
            except Exception as e:
                last_exc = e
                LOGGER.warning(
                    "Failed to configure the browser or login to Splunk instance for - Try={} \nTRACEBACK::{}".format(
                        try_number, traceback.format_exc()
                    )
                )
        else:
            LOGGER.error(
                "Could not connect to Browser or login to Splunk instance. Please check the logs for detailed error of each retry"
            )
>           raise (last_exc)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/plugin.py:198: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

request = <SubRequest 'ucc_smartx_selenium_helper' for <Function test_alert_action_label_entity>>
ucc_smartx_configs = SmartConfigs(driver='chrome', driver_version='latest', local_run=False, retry_count=3, headless_run=False)
splunk = {'forwarder_host': 'splunk', 'host': 'splunk', 'password': 'Chang3d!', 'port': '8089', ...}
splunk_web_uri = 'http://splunk:8000/'
splunk_rest_uri = (<requests.sessions.Session object at 0x7f3e83291ba0>, 'https://splunk:8089/')

    @pytest.fixture(scope=get_browser_scope)
    def ucc_smartx_selenium_helper(
        request, ucc_smartx_configs, splunk, splunk_web_uri, splunk_rest_uri
    ):
        # Try to configure selenium & Login to splunk instance
        test_case = "{}_{}".format(
            ucc_smartx_configs.driver, request.node.nodeid.split("::")[-1]
        )
        for try_number in range(ucc_smartx_configs.retry_count):
            last_exc = Exception()
            try:
>               selenium_helper = SeleniumHelper(
                    ucc_smartx_configs.driver,
                    ucc_smartx_configs.driver_version,
                    splunk_web_uri,
                    splunk_rest_uri,
                    debug=ucc_smartx_configs.local_run,
                    cred=(splunk["username"], splunk["password"]),
                    headless=ucc_smartx_configs.headless_run,
                    test_case=test_case,
                )

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/plugin.py:176: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e831e25f0>
browser = 'chrome', browser_version = 'latest'
splunk_web_url = 'http://splunk:8000/'
splunk_mgmt_url = (<requests.sessions.Session object at 0x7f3e83291ba0>, 'https://splunk:8089/')
debug = False, cred = ('admin', 'Chang3d!'), headless = False
test_case = 'chrome_test_alert_action_label_entity'

    def __init__(
        self,
        browser,
        browser_version,
        splunk_web_url,
        splunk_mgmt_url,
        debug=False,
        cred=("admin", "Chang3d!"),
        headless=False,
        test_case=None,
    ):
        self.splunk_web_url = splunk_web_url
        self.splunk_mgmt_url = splunk_mgmt_url
        self.cred = cred
        self.test_case = test_case
        self.skip_saucelab_job = False
    
        if "grid" in browser:
            self.skip_saucelab_job = True
            debug = True
    
        if not debug:
            # Using Saucelabs
            self.init_sauce_env_variables()
    
        try:
            if browser == "firefox":
                if debug:
                    self.browser = webdriver.Firefox(
                        firefox_options=self.get_local_firefox_opts(headless),
                        log_path="selenium.log",
                    )
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_firefox_opts(
                            browser_version
                        ),
                    )
    
            elif browser == "chrome":
                if debug:
                    self.browser = webdriver.Chrome(
                        chrome_options=self.get_local_chrome_opts(headless),
                        service_args=["--verbose", "--log-path=selenium.log"],
                    )
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_chrome_opts(
                            browser_version
                        ),
                    )
    
            # selenium local stack
            elif browser == "chrome_grid":
                google_cert_opts = {
                    "goog:chromeOptions": {
                        "w3c": True,
                        "args": ["ignore-certificate-errors", "ignore-ssl-errors=yes"],
                    }
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://chrome-grid:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts("chrome", google_cert_opts),
                )
            elif browser == "firefox_grid":
                firefox_cert_opts = {
                    "acceptInsecureCerts": True,
                    "acceptSslCerts": True,
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://firefox-grid:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts(
                        "firefox", firefox_cert_opts
                    ),
                )
            # kubernetes selenium
            elif browser == "chrome_k8s":
                google_cert_opts = {
                    "goog:chromeOptions": {
                        "w3c": True,
                        "args": ["ignore-certificate-errors", "ignore-ssl-errors=yes"],
                    }
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://selenium-hub.selenium.svc.cluster.local:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts("chrome", google_cert_opts),
                )
            elif browser == "firefox_k8s":
                firefox_cert_opts = {
                    "acceptInsecureCerts": True,
                    "acceptSslCerts": True,
                }
    
                self.browser = webdriver.Remote(
                    command_executor="http://selenium-hub.selenium.svc.cluster.local:4444/wd/hub",
                    desired_capabilities=self.get_grid_opts(
                        "firefox", firefox_cert_opts
                    ),
                )
    
            elif browser == "edge":
                if debug:
                    self.browser = Edge(
                        executable_path="msedgedriver",
                        desired_capabilities=self.get_local_edge_opts(headless),
                        service_args=["--verbose", "--log-path=selenium.log"],
                    )
                else:
                    command_executor = EdgeRemoteConnection(
                        "https://ondemand.saucelabs.com:443/wd/hub"
                    )
                    options = EdgeOptions()
                    options.use_chromium = True
                    self.browser = webdriver.Remote(
                        command_executor=command_executor,
                        options=options,
                        desired_capabilities=self.get_sauce_edge_opts(browser_version),
                    )
    
            elif browser == "IE":
                if debug:
                    self.browser = webdriver.Ie(capabilities=self.get_local_ie_opts())
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_ie_opts(browser_version),
                    )
            elif browser == "safari":
                if debug:
                    self.browser = webdriver.Safari()
                else:
                    self.browser = webdriver.Remote(
                        command_executor="https://ondemand.saucelabs.com:443/wd/hub",
                        desired_capabilities=self.get_sauce_safari_opts(
                            browser_version
                        ),
                    )
            else:
                raise Exception(
                    "No valid browser found.! expected=[firefox, chrome, safari], got={}".format(
                        browser
                    )
                )
        except Exception as e:
            raise e
    
        try:
            self.browser_session = self.browser.session_id
>           self.login_to_splunk(*self.cred)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e831e25f0>
cred = ('admin', 'Chang3d!')

    def login_to_splunk(self, *cred):
        try:
>           login_page = LoginPage(self)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/base_test.py:444: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.pages.login.LoginPage object at 0x7f3e831e0eb0>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e831e25f0>

    def __init__(self, ucc_smartx_selenium_helper):
        """
        :param ucc_smartx_selenium_helper: Fixture with selenium driver, urls(web, mgmt) and session key
        """
    
>       super().__init__(ucc_smartx_selenium_helper, ucc_smartx_rest_helper=None)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/pages/login.py:33: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.pages.login.LoginPage object at 0x7f3e831e0eb0>
ucc_smartx_selenium_helper = <pytest_splunk_addon_ui_smartx.base_test.SeleniumHelper object at 0x7f3e831e25f0>
ucc_smartx_rest_helper = None, open_page = True

    def __init__(
        self, ucc_smartx_selenium_helper, ucc_smartx_rest_helper, open_page=True
    ):
        """
        :param ucc_smartx_selenium_helper: The selenium webdriver
        :param ucc_smartx_rest_helper: Splunk web & management url. {"web": , "mgmt": }
        """
        if ucc_smartx_selenium_helper:
            self.browser = ucc_smartx_selenium_helper.browser
            self.splunk_web_url = ucc_smartx_selenium_helper.splunk_web_url
            if open_page:
>               self.open()

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/pages/page.py:35: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pytest_splunk_addon_ui_smartx.pages.login.LoginPage object at 0x7f3e831e0eb0>

    def open(self):
        """
        Abstract Method. Open the page
        """
>       self.browser.get(self.splunk_web_url)

/usr/local/lib/python3.10/dist-packages/pytest_splunk_addon_ui_smartx/pages/page.py:43: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.webdriver.WebDriver (session="941fba187ece4448b720e419f3c84067")>
url = 'http://splunk:8000/'

    def get(self, url):
        """
        Loads a web page in the current browser session.
        """
>       self.execute(Command.GET, {'url': url})

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

self = <selenium.webdriver.remote.webdriver.WebDriver (session="941fba187ece4448b720e419f3c84067")>
driver_command = 'get', params = {'url': 'http://splunk:8000/'}

    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 0x7f3e831e1ba0>
response = {'status': 500, 'value': '{"value": {"stacktrace": "\\tGetHandleVerifier [0x005CCE43+45171]\\n\\t(No symbol) [0x005590...ge": "unknown error: net::ERR_NAME_NOT_RESOLVED\\n  (Session info: chrome=117.0.5938.63)", "error": "unknown error"}}'}

    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.WebDriverException: Message: unknown error: net::ERR_NAME_NOT_RESOLVED
E         (Session info: chrome=117.0.5938.63)

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