Report generated on 09-Sep-2020 at 13:53:39 by pytest-html v2.1.1
Packages | {"pluggy": "0.13.1", "py": "1.9.0", "pytest": "6.0.1"} |
Platform | Windows-10-10.0.19041-SP0 |
Plugins | {"allure-pytest": "2.8.18", "datadir": "1.3.1", "html": "2.1.1", "metadata": "1.10.0"} |
Python | 3.8.5 |
12 tests ran in 68.78 seconds.
(Un)check the boxes to filter the results.
10 passed, 0 skipped, 2 failed, 1 errors, 0 expected failures, 0 unexpected passesResult | Test | Duration | Links |
---|---|---|---|
No results found. Try to check the filters | |||
Error | test_login_role.py::TestLoginRole::test_verify_role_manager::setup | 1.82 | |
request = <SubRequest 'authenticate' for <Function test_verify_role_manager>> @pytest.fixture def authenticate(request): marker = request.node.get_closest_marker("role") if marker is None: return None role = marker.args[0] if role != engagex_login_helper.get_logged_role() and role in ['superadmin','manager','ta','trainer']: email = pytest.config[role]['email'] password = pytest.config[role]['password'] > engagex_login_helper.login(email,password) test\conftest.py:173: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ helper\engagex_login_helper.py:10: in login pg_login.login(email,password) pages\login_page.py:29: in login self.btn_login.click_button() core\page_factory.py:193: in click_button self.click() c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\webelement.py:80: in click self._execute(Command.CLICK_ELEMENT) c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\webelement.py:633: in _execute return self._parent.execute(command, params) c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\webdriver.py:321: in execute self.error_handler.check_response(response) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x000002679AF63A90> response = {'status': 404, 'value': '{"value":{"error":"stale element reference","message":"stale element reference: element is n...\n\\tRtlGetAppContainerNamedObjectPath [0x76EF74A4+228]\\n\\tRtlGetAppContainerNamedObjectPath [0x76EF7474+180]\\n"}}'} def check_response(self, response): """ Checks that a JSON response from the WebDriver does not have an error. :Args: - response - The JSON response from the WebDriver server as a dictionary object. :Raises: If the response contains an error message. """ status = response.get('status', None) if status is None or status == ErrorCode.SUCCESS: return value = None message = response.get("message", "") screen = response.get("screen", "") stacktrace = None if isinstance(status, int): value_json = response.get('value', None) if value_json and isinstance(value_json, basestring): import json try: value = json.loads(value_json) if len(value.keys()) == 1: value = value['value'] status = value.get('error', None) if status is None: status = value["status"] message = value["value"] if not isinstance(message, basestring): value = message message = message.get('message') else: message = value.get('message', None) except ValueError: pass exception_class = ErrorInResponseException if status in ErrorCode.NO_SUCH_ELEMENT: exception_class = NoSuchElementException elif status in ErrorCode.NO_SUCH_FRAME: exception_class = NoSuchFrameException elif status in ErrorCode.NO_SUCH_WINDOW: exception_class = NoSuchWindowException elif status in ErrorCode.STALE_ELEMENT_REFERENCE: exception_class = StaleElementReferenceException elif status in ErrorCode.ELEMENT_NOT_VISIBLE: exception_class = ElementNotVisibleException elif status in ErrorCode.INVALID_ELEMENT_STATE: exception_class = InvalidElementStateException elif status in ErrorCode.INVALID_SELECTOR \ or status in ErrorCode.INVALID_XPATH_SELECTOR \ or status in ErrorCode.INVALID_XPATH_SELECTOR_RETURN_TYPER: exception_class = InvalidSelectorException elif status in ErrorCode.ELEMENT_IS_NOT_SELECTABLE: exception_class = ElementNotSelectableException elif status in ErrorCode.ELEMENT_NOT_INTERACTABLE: exception_class = ElementNotInteractableException elif status in ErrorCode.INVALID_COOKIE_DOMAIN: exception_class = InvalidCookieDomainException elif status in ErrorCode.UNABLE_TO_SET_COOKIE: exception_class = UnableToSetCookieException elif status in ErrorCode.TIMEOUT: exception_class = TimeoutException elif status in ErrorCode.SCRIPT_TIMEOUT: exception_class = TimeoutException elif status in ErrorCode.UNKNOWN_ERROR: exception_class = WebDriverException elif status in ErrorCode.UNEXPECTED_ALERT_OPEN: exception_class = UnexpectedAlertPresentException elif status in ErrorCode.NO_ALERT_OPEN: exception_class = NoAlertPresentException elif status in ErrorCode.IME_NOT_AVAILABLE: exception_class = ImeNotAvailableException elif status in ErrorCode.IME_ENGINE_ACTIVATION_FAILED: exception_class = ImeActivationFailedException elif status in ErrorCode.MOVE_TARGET_OUT_OF_BOUNDS: exception_class = MoveTargetOutOfBoundsException elif status in ErrorCode.JAVASCRIPT_ERROR: exception_class = JavascriptException elif status in ErrorCode.SESSION_NOT_CREATED: exception_class = SessionNotCreatedException elif status in ErrorCode.INVALID_ARGUMENT: exception_class = InvalidArgumentException elif status in ErrorCode.NO_SUCH_COOKIE: exception_class = NoSuchCookieException elif status in ErrorCode.UNABLE_TO_CAPTURE_SCREEN: exception_class = ScreenshotException elif status in ErrorCode.ELEMENT_CLICK_INTERCEPTED: exception_class = ElementClickInterceptedException elif status in ErrorCode.INSECURE_CERTIFICATE: exception_class = InsecureCertificateException elif status in ErrorCode.INVALID_COORDINATES: exception_class = InvalidCoordinatesException elif status in ErrorCode.INVALID_SESSION_ID: exception_class = InvalidSessionIdException elif status in ErrorCode.UNKNOWN_METHOD: exception_class = UnknownMethodException else: exception_class = WebDriverException if value == '' or value is None: value = response['value'] if isinstance(value, basestring): if exception_class == ErrorInResponseException: raise exception_class(response, value) raise exception_class(value) if message == "" and 'message' in value: message = value['message'] screen = None if 'screen' in value: screen = value['screen'] stacktrace = None if 'stackTrace' in value and value['stackTrace']: stacktrace = [] try: for frame in value['stackTrace']: line = self._value_or_default(frame, 'lineNumber', '') file = self._value_or_default(frame, 'fileName', '<anonymous>') if line: file = "%s:%s" % (file, line) meth = self._value_or_default(frame, 'methodName', '<anonymous>') if 'className' in frame: meth = "%s.%s" % (frame['className'], meth) msg = " at %s (%s)" msg = msg % (meth, file) stacktrace.append(msg) except TypeError: pass if exception_class == ErrorInResponseException: raise exception_class(response, message) elif exception_class == UnexpectedAlertPresentException: alert_text = None if 'data' in value: alert_text = value['data'].get('text') elif 'alert' in value: alert_text = value['alert'].get('text') raise exception_class(message, screen, stacktrace, alert_text) > raise exception_class(message, screen, stacktrace) E selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document E (Session info: chrome=85.0.4183.83) c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\errorhandler.py:242: StaleElementReferenceException | |||
Failed | test_login_role.py::TestLoginRole::test_verify_role_superadmin_and_click_on_add_course | 5.17 | |
self = <test_login_role.TestLoginRole object at 0x000002679AEFF7C0>, authenticate = None, initialize_pages = None testdata = {'home_url': '#/courses/activated/all'} @pytest.mark.test_details("SLUB-T1413","high","Role Based Access","Pavan") @pytest.mark.role("superadmin") def test_verify_role_superadmin_and_click_on_add_course(self,authenticate,initialize_pages,testdata): ''' Objective : To verify logged in user is Superadmin . Step1: Navigate to engageX Login url and login with superadmin credentials Step2: Verify whether user is logged in is SuperAdmin Step3: Check whether add_course and then Click on Add course button . Step4: Close the popup ''' #STEP1 and STEP2 : Covered in authenticate(fixture) #Step3: Check whether add_course and then Click on Add course button . > assert self.pg_home.add_course.is_displayed() == True test\test_login_role.py:54: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <pages.home_page.HomePage object at 0x000002679AEFF130>, loc = 'add_course' def __getattr__(self, loc): logging.debug(f"the current locator to be found {loc} on url {self.driver.current_url}") if loc in self.locators.keys(): error = "" for loc_pair in self.locators[loc]: loc_pair[0] = self.TYPE_OF_LOCATORS[loc_pair[0].lower()] loc_pair = tuple(loc_pair) try: element = WebDriverWait(self.driver, self.timeout).until( EC.presence_of_element_located(loc_pair) ) except (StaleElementReferenceException, NoSuchElementException, TimeoutException) as e: error = e logging.warning(f"the locator {loc} on url {self.driver.current_url} is not present") continue try: element = WebDriverWait(self.driver, self.timeout).until( EC.visibility_of_element_located(loc_pair) ) except (StaleElementReferenceException, NoSuchElementException, TimeoutException) as e: error = e logging.warning(f"the locator {loc} on url {self.driver.current_url} is not visible") continue element = self.get_web_element(*loc_pair) element._locator = loc_pair logging.debug(f"the locator {loc} is found!") return element > raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) E selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: add_course core\page_factory.py:72: NoSuchElementException -------------------------------Captured log call-------------------------------- [33mWARNING [0m setup:page_factory.py:56 the locator add_course on url http://dockerv2.simplilearn.com:8875/#/login is not present | |||
Failed | test_registration.py::TestRegistration::test_trainer_registration_functionality | 3.92 | |
self = <test_registration.TestRegistration object at 0x000002679B887370>, initialize_pages = None testdata = {'profile_url': '#/profile/', 'query': "SELECT email,user_id,first_name,last_name,primary_country_code,primary_mobile_... engageX_test.user where email = '<<email>>' and status = '1'", 'register_url': '#/register', 'selectvalue': 'IN', ...} @pytest.mark.test_details("SLUB-T1403","high","Access","Pavan") def test_trainer_registration_functionality(self,initialize_pages,testdata): ''' Objective : To check New Trainer Registration Functionality Step1: Navigate to engageX Login url and click on Register Step2: Generating random email and enter user email and click next Step3: Enter all the details on Trainer Registration Page and click on Register Step4: Validate registered data present in the database Step5: Verify registered user redirecting to Profile Page ''' #STEP1: Navigate to engageX Login url and click on Register pytest.driver.get(pytest.config['login_url']) self.pg_login.btn_register.click_button() assert pytest.config['url'] + testdata['register_url'] == pytest.driver.current_url , " Expected url is not found on RegistrationPage " #STEP2: Generating random email and enter user email and click next email = utils.generate_random_email() self.pg_registration.check_registration(email) #STEP3: Enter all the details on Trainer Registration Page and click on Register logging.info(f" New Trainer Registration Started - {email} ") self.pg_registration.new_trainer_registeration(**testdata['user_details']) assert self.pg_registration.txt_email.is_enabled() == False , " Expected Email textbox is in enabled state " self.pg_registration.verify_checkbox_selected() > self.pg_registration.select_list(testdata['selectvalue']) test\test_registration.py:56: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pages\registration_page.py:28: in select_list self.dr_countries.select_element_by_value(selectvalue) core\page_factory.py:143: in select_element_by_value select.select_by_value(value) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <selenium.webdriver.support.select.Select object at 0x000002679B8810D0>, value = 'IN' def select_by_value(self, value): """Select all options that have a value matching the argument. That is, when given "foo" this would select an option like: <option value="foo">Bar</option> :Args: - value - The value to match against throws NoSuchElementException If there is no option with specisied value in SELECT """ css = "option[value =%s]" % self._escapeString(value) opts = self._el.find_elements(By.CSS_SELECTOR, css) matched = False for opt in opts: self._setSelected(opt) if not self.is_multiple: return matched = True if not matched: > raise NoSuchElementException("Cannot locate option with value: %s" % value) E selenium.common.exceptions.NoSuchElementException: Message: Cannot locate option with value: IN c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\support\select.py:87: NoSuchElementException -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_registration.py:52 New Trainer Registration Started - Test785@yopmail.com | |||
Passed | test_forgot_password.py::TestForgotPassword::test_forgot_password_functionality | 3.36 | |
-------------------------------Captured log setup------------------------------- [32mINFO [0m setup:conftest.py:134 reading config from path "config.json" [32mINFO [0m setup:conftest.py:109 creating driver for provided browser - chrome | |||
Passed | test_login.py::TestLogin::test_invalid_credentials | 4.68 | |
No log output captured. | |||
Passed | test_login.py::TestLogin::test_valid_credentials | 6.82 | |
No log output captured. | |||
Passed | test_login_role.py::TestLoginRole::test_verify_role_ta | 3.19 | |
No log output captured. | |||
Passed | test_login_role.py::TestLoginRole::test_verify_role_trainer_and_check_trainer_tab_present | 5.12 | |
-------------------------------Captured log call-------------------------------- [33mWARNING [0m setup:page_factory.py:56 the locator mod_trainers on url http://dockerv2.simplilearn.com:8875/#/courses/activated/all is not present | |||
Passed | test_registration.py::TestRegistration::test_approve_registered_trainer | 3.29 | |
No log output captured. | |||
Passed | test_role_based_access.py::TestRoleBasedAccess::test_tabs_present_login_admin | 2.38 | |
No log output captured. | |||
Passed | test_role_based_access.py::TestRoleBasedAccess::test_tabs_present_login_manager | 2.48 | |
No log output captured. | |||
Passed | test_role_based_access.py::TestRoleBasedAccess::test_tabs_present_login_ta | 2.25 | |
No log output captured. | |||
Passed | test_role_based_access.py::TestRoleBasedAccess::test_tabs_present_login_trainer | 2.11 | |
No log output captured. |