GUI acceptance tests using environment deployed from packages.
Build: #2097 failed
Job: Onezone automations failed
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