GUI acceptance tests using environment deployed from packages.

Build: #2097 failed

Job: Onezone automations failed

Stages & jobs

  1. Acceptance Test

user sees bagit metadata files and directory tree in aip tab and directory tree in dip tab in archive browser after creating archive with bagit layout and include dip option[1oz 1op deployed]: Test case result

The below summarizes the result of the test " user sees bagit metadata files and directory tree in aip tab and directory tree in dip tab in archive browser after creating archive with bagit layout and include dip option[1oz 1op deployed]" in build 2,097 of Onedata Products - gui acceptance pkg - Chrome oneprovider archives tests.
Description
user sees bagit metadata files and directory tree in aip tab and directory tree in dip tab in archive browser after creating archive with bagit layout and include dip option[1oz 1op deployed]
Test class
gui.scenarios.test_oneprovider_archives
Method
test_user_sees_bagit_metadata_files_and_directory_tree_in_aip_tab_and_directory_tree_in_dip_tab_in_archive_browser_after_creating_archive_with_bagit_layout_and_include_dip_option[1oz_1op_deployed]
Jira Issue
Duration
3 mins
Status
Failed (New Failure)

Error Log

RuntimeError: no  item found in DataRow in archive browser in Oneprovider page
web_elem_root = <selenium.webdriver.remote.webelement.WebElement (session="d11827700bbf8df674356481e2e30f8b", element="ffff6040-6177-4216-9aa5-ffb33a475ef5")>
css_sel = '.secondary-description'
err_msg = 'no  item found in DataRow in archive browser in Oneprovider page'

    def find_web_elem(web_elem_root, css_sel, err_msg):
        try:
            _scroll_to_css_sel(web_elem_root, css_sel)
>           item = web_elem_root.find_element_by_css_selector(css_sel)

tests/gui/utils/generic.py:101: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.webelement.WebElement (session="d11827700bbf8df674356481e2e30f8b", element="ffff6040-6177-4216-9aa5-ffb33a475ef5")>
css_selector = '.secondary-description'

    def find_element_by_css_selector(self, css_selector):
        """Finds element within this element's children by CSS selector.
    
            :Args:
             - css_selector - CSS selector string, ex: 'a.nav#home'
    
            :Returns:
             - WebElement - the element if it was found
    
            :Raises:
             - NoSuchElementException - if the element wasn't found
    
            :Usage:
                element = element.find_element_by_css_selector('#foo')
            """
>       return self.find_element(by=By.CSS_SELECTOR, value=css_selector)

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

self = <selenium.webdriver.remote.webelement.WebElement (session="d11827700bbf8df674356481e2e30f8b", element="ffff6040-6177-4216-9aa5-ffb33a475ef5")>
by = 'css selector', value = '.secondary-description'

    def find_element(self, by=By.ID, value=None):
        """
            Find an element given a By strategy and locator. Prefer the find_element_by_* methods when
            possible.
    
            :Usage:
                element = element.find_element(By.ID, 'foo')
    
            :rtype: WebElement
            """
        if self._w3c:
            if by == By.ID:
                by = By.CSS_SELECTOR
                value = '[id="%s"]' % value
            elif by == By.TAG_NAME:
                by = By.CSS_SELECTOR
            elif by == By.CLASS_NAME:
                by = By.CSS_SELECTOR
                value = ".%s" % value
            elif by == By.NAME:
                by = By.CSS_SELECTOR
                value = '[name="%s"]' % value
    
        return self._execute(Command.FIND_CHILD_ELEMENT,
>                            {"using": by, "value": value})['value']

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

self = <selenium.webdriver.remote.webelement.WebElement (session="d11827700bbf8df674356481e2e30f8b", element="ffff6040-6177-4216-9aa5-ffb33a475ef5")>
command = 'findChildElement'
params = {'id': 'ffff6040-6177-4216-9aa5-ffb33a475ef5', 'sessionId': 'd11827700bbf8df674356481e2e30f8b', 'using': 'css selector', 'value': '.secondary-description'}

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

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

self = <selenium.webdriver.chrome.webdriver.WebDriver (session="d11827700bbf8df674356481e2e30f8b")>
driver_command = 'findChildElement'
params = {'id': 'ffff6040-6177-4216-9aa5-ffb33a475ef5', 'using': 'css selector', 'value': '.secondary-description'}

    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.6/dist-packages/selenium/webdriver/remote/webdriver.py:320: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x7fa9b6404e48>
response = {'status': 404, 'value': '{"value":{"error":"no such element","message":"no such element: Unable to locate element: {\...ondary-description\\"}\\n  (Session info: chrome=78.0.3904.70)","stacktrace":"#0 0x5617009b67e9 \\u003Cunknown>\\n"}}'}

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

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

During handling of the above exception, another exception occurred:

request = <FixtureRequest for <Function 'test_user_sees_bagit_metadata_files_and_directory_tree_in_aip_tab_and_directory_tree_in_dip_tab_in_archive_browser_after_creating_archive_with_bagit_layout_and_include_dip_option[1oz_1op_deployed]'>>

    @pytest.mark.usefixtures(*function_args)
    def scenario_wrapper(request):
>       _execute_scenario(feature, scenario, request, encoding)

/usr/local/lib/python3.6/dist-packages/pytest_bdd/scenario.py:227: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/local/lib/python3.6/dist-packages/pytest_bdd/scenario.py:189: in _execute_scenario
    _execute_step_function(request, scenario, step, step_func)
/usr/local/lib/python3.6/dist-packages/pytest_bdd/scenario.py:130: in _execute_step_function
    step_func(**kwargs)
tests/utils/bdd_utils.py:78: in wrapper
    return fun(*ba.args, **ba.kwargs)
<decorator-gen-1131>:2: in create_archive
    ???
tests/utils/utils.py:95: in wrapper
    return fun(*args, **kwargs)
tests/gui/meta_steps/oneprovider/archives.py:72: in create_archive
    displays, option, popups)
tests/gui/meta_steps/oneprovider/archives.py:131: in _create_archive
    displays, description)
<decorator-gen-1133>:2: in copy_archive_id_to_tmp_memory
    ???
tests/utils/utils.py:95: in wrapper
    return fun(*args, **kwargs)
tests/gui/meta_steps/oneprovider/archives.py:148: in copy_archive_id_to_tmp_memory
    click_menu_for_archive(browser_id, tmp_memory, description)
tests/utils/bdd_utils.py:78: in wrapper
    return fun(*ba.args, **ba.kwargs)
tests/gui/steps/oneprovider/archives.py:201: in click_menu_for_archive
    archive = get_archive_with_description(browser, description)
tests/gui/steps/oneprovider/archives.py:41: in get_archive_with_description
    if description == archive.description:
tests/gui/utils/core/web_elements.py:76: in __get__
    item = super(Label, self).__get__(instance, owner)
tests/gui/utils/core/web_elements.py:29: in __get__
    lambda: self._format_msg('no {item} item found '
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

web_elem_root = <selenium.webdriver.remote.webelement.WebElement (session="d11827700bbf8df674356481e2e30f8b", element="ffff6040-6177-4216-9aa5-ffb33a475ef5")>
css_sel = '.secondary-description'
err_msg = 'no  item found in DataRow in archive browser in Oneprovider page'

    def find_web_elem(web_elem_root, css_sel, err_msg):
        try:
            _scroll_to_css_sel(web_elem_root, css_sel)
            item = web_elem_root.find_element_by_css_selector(css_sel)
        except NoSuchElementException:
            with suppress(TypeError):
                err_msg = err_msg()
>           raise RuntimeError(err_msg)
E           RuntimeError: no  item found in DataRow in archive browser in Oneprovider page

tests/gui/utils/generic.py:105: RuntimeError