============================= test session starts ============================== platform linux -- Python 3.9.13, pytest-7.1.2, pluggy-1.0.0 -- /usr/bin/python3 cachedir: .pytest_cache rootdir: /var/lib/jenkins/workspace/pps plugins: xdist-3.0.2, rerunfailures-10.2, allure-pytest-2.8.34 collecting ... collected 88 items tests/ui_tests/pps_cps/pps/Other cases/test_add_prospects_to_list.py::TestPPS::test_add_all_prospects_to_list[chrome] RERUN tests/ui_tests/pps_cps/pps/Other cases/test_add_prospects_to_list.py::TestPPS::test_add_all_prospects_to_list[chrome] RERUN tests/ui_tests/pps_cps/pps/Other cases/test_add_prospects_to_list.py::TestPPS::test_add_all_prospects_to_list[chrome] FAILED tests/ui_tests/pps_cps/pps/Other cases/test_add_prospects_to_list.py::TestPPS::test_create_prospects_list_error[chrome-0-List with the same name already exists.] RERUN tests/ui_tests/pps_cps/pps/Other cases/test_add_prospects_to_list.py::TestPPS::test_create_prospects_list_error[chrome-0-List with the same name already exists.] RERUN tests/ui_tests/pps_cps/pps/Other cases/test_add_prospects_to_list.py::TestPPS::test_create_prospects_list_error[chrome-0-List with the same name already exists.] FAILED tests/ui_tests/pps_cps/pps/Other cases/test_add_prospects_to_list.py::TestPPS::test_create_prospects_list_error[chrome--Please, put new list name] RERUN tests/ui_tests/pps_cps/pps/Other cases/test_add_prospects_to_list.py::TestPPS::test_create_prospects_list_error[chrome--Please, put new list name] RERUN tests/ui_tests/pps_cps/pps/Other cases/test_add_prospects_to_list.py::TestPPS::test_create_prospects_list_error[chrome--Please, put new list name] FAILED tests/ui_tests/pps_cps/pps/Other cases/test_clear_filters.py::TestPPS::test_clear_filters[chrome-First name-Enter name] PASSED tests/ui_tests/pps_cps/pps/Other cases/test_clear_filters.py::TestPPS::test_clear_filters[chrome-Location-Select prospect's location] PASSED tests/ui_tests/pps_cps/pps/Other cases/test_clear_filters.py::TestPPS::test_clear_filters[chrome-Job title-Enter one or more job titles] PASSED tests/ui_tests/pps_cps/pps/Other cases/test_clear_filters.py::TestPPS::test_clear_filters[chrome-Last name-Enter name] PASSED tests/ui_tests/pps_cps/pps/Other cases/test_clear_filters.py::TestPPS::test_clear_filters[chrome-Skills-Enter prospect's expertise] PASSED tests/ui_tests/pps_cps/pps/Other cases/test_clear_filters.py::TestPPS::test_clear_filters[chrome-Company name-Enter company name] PASSED tests/ui_tests/pps_cps/pps/Other cases/test_clear_filters.py::TestPPS::test_clear_filters[chrome-Company location-Select company location] PASSED tests/ui_tests/pps_cps/pps/Other cases/test_clear_filters.py::TestPPS::test_clear_filters[chrome-Industry-Select industry] PASSED tests/ui_tests/pps_cps/pps/Other cases/test_clear_filters.py::TestPPS::test_clear_filters[chrome-Size-Choose number of employees] PASSED tests/ui_tests/pps_cps/pps/Other cases/test_clear_filters.py::TestPPS::test_clear_filters[chrome-Founded-Select founding date] PASSED tests/ui_tests/pps_cps/pps/Other cases/test_clear_filters.py::TestPPS::test_clear_filters[chrome-Revenue-Select company's revenue range] PASSED tests/ui_tests/pps_cps/pps/Other cases/test_clear_filters.py::TestPPS::test_clear_filters[chrome-Specialties-Select company's specialties] PASSED tests/ui_tests/pps_cps/pps/Other cases/test_pagination.py::TestPPS::test_pagination[chrome] PASSED tests/ui_tests/pps_cps/pps/Other cases/test_remove_filters.py::TestPPS::test_remove_filter[chrome-Location-ukr-Ukraine-Select prospect's location] PASSED tests/ui_tests/pps_cps/pps/Other cases/test_remove_filters.py::TestPPS::test_remove_filter[chrome-Job title-man-Project Manager-Enter one or more job titles] PASSED tests/ui_tests/pps_cps/pps/Other cases/test_remove_filters.py::TestPPS::test_remove_filter[chrome-Skills-man-management-Enter prospect's expertise] PASSED tests/ui_tests/pps_cps/pps/Other cases/test_remove_filters.py::TestPPS::test_remove_filter[chrome-Company name-Snov.io-Snov.io-Enter company name] PASSED tests/ui_tests/pps_cps/pps/Other cases/test_remove_filters.py::TestPPS::test_remove_filter[chrome-Company location-ukr-Ukraine-Select company location] PASSED tests/ui_tests/pps_cps/pps/Other cases/test_remove_filters.py::TestPPS::test_remove_filter[chrome-Industry-ani-Animation-Select industry] PASSED tests/ui_tests/pps_cps/pps/Other cases/test_remove_filters.py::TestPPS::test_remove_filter[chrome-Specialties-DevOps-DevOps-Select company's specialties] RERUN tests/ui_tests/pps_cps/pps/Other cases/test_remove_filters.py::TestPPS::test_remove_filter[chrome-Specialties-DevOps-DevOps-Select company's specialties] RERUN tests/ui_tests/pps_cps/pps/Other cases/test_remove_filters.py::TestPPS::test_remove_filter[chrome-Specialties-DevOps-DevOps-Select company's specialties] FAILED tests/ui_tests/pps_cps/pps/Other cases/test_remove_filters.py::TestPPS::test_remove_filter_prospect_name[chrome-First name-Anna-Enter name] PASSED tests/ui_tests/pps_cps/pps/Other cases/test_remove_filters.py::TestPPS::test_remove_filter_prospect_name[chrome-Last name-Smith-Enter name] PASSED tests/ui_tests/pps_cps/pps/Other cases/test_reset_all_filters.py::TestPPS::test_reset_all_filters[chrome] PASSED tests/ui_tests/pps_cps/pps/Other cases/test_show_all.py::TestPPS::test_save_recent_search[chrome] RERUN tests/ui_tests/pps_cps/pps/Other cases/test_show_all.py::TestPPS::test_save_recent_search[chrome] RERUN tests/ui_tests/pps_cps/pps/Other cases/test_show_all.py::TestPPS::test_save_recent_search[chrome] FAILED tests/ui_tests/pps_cps/pps/Plans/test_add_to_list_not_enough_credits.py::TestPPS::test_add_prospects_to_list_not_enough_credits[chrome] RERUN tests/ui_tests/pps_cps/pps/Plans/test_add_to_list_not_enough_credits.py::TestPPS::test_add_prospects_to_list_not_enough_credits[chrome] RERUN tests/ui_tests/pps_cps/pps/Plans/test_add_to_list_not_enough_credits.py::TestPPS::test_add_prospects_to_list_not_enough_credits[chrome] FAILED tests/ui_tests/pps_cps/pps/Plans/test_check_credits.py::TestPPS::test_credits_after_adding[chrome-United States] RERUN tests/ui_tests/pps_cps/pps/Plans/test_check_credits.py::TestPPS::test_credits_after_adding[chrome-United States] PASSED tests/ui_tests/pps_cps/pps/Plans/test_dbs_search_no_credits.py::TestPPS::test_dbs_search_no_credits[chrome-rk-10-10-2023-1@snov.io] PASSED tests/ui_tests/pps_cps/pps/Plans/test_dbs_search_no_credits.py::TestPPS::test_dbs_search_no_credits[chrome-rk-10-10-2023-4@snov.io] PASSED tests/ui_tests/pps_cps/pps/Plans/test_free_plan_limit.py::TestPPS::test_dbs_search_no_credits[chrome] PASSED tests/ui_tests/pps_cps/pps/Search/test_first_search.py::TestPPS::test_interactive_tooltip[chrome] PASSED tests/ui_tests/pps_cps/pps/Search/test_first_search.py::TestPPS::test_first_default_filters[chrome] PASSED tests/ui_tests/pps_cps/pps/Search/test_load_search.py::TestPPS::test_load_saved_search_from_filters_panel[chrome-Job title-list_of_positions0] RERUN tests/ui_tests/pps_cps/pps/Search/test_load_search.py::TestPPS::test_load_saved_search_from_filters_panel[chrome-Job title-list_of_positions0] RERUN tests/ui_tests/pps_cps/pps/Search/test_load_search.py::TestPPS::test_load_saved_search_from_filters_panel[chrome-Job title-list_of_positions0] FAILED tests/ui_tests/pps_cps/pps/Search/test_load_search.py::TestPPS::test_load_saved_search_from_details[chrome-Job title-list_of_positions0] RERUN tests/ui_tests/pps_cps/pps/Search/test_load_search.py::TestPPS::test_load_saved_search_from_details[chrome-Job title-list_of_positions0] RERUN tests/ui_tests/pps_cps/pps/Search/test_load_search.py::TestPPS::test_load_saved_search_from_details[chrome-Job title-list_of_positions0] FAILED tests/ui_tests/pps_cps/pps/Search/test_mix_search.py::TestPPS::test_search_by_company_location_and_job[chrome-General Manager-United States] PASSED tests/ui_tests/pps_cps/pps/Search/test_mix_search.py::TestPPS::test_search_by_company_location_and_job[chrome-CEO-Ukraine] PASSED tests/ui_tests/pps_cps/pps/Search/test_mix_search.py::TestPPS::test_search_by_company_and_job[chrome-Apple-Cheng] PASSED tests/ui_tests/pps_cps/pps/Search/test_open_in_new_tab.py::TestPPS::test_open_saved_search_in_new_tab[chrome] PASSED tests/ui_tests/pps_cps/pps/Search/test_open_in_new_tab.py::TestPPS::test_open_saved_search_in_new_tab_open_details[chrome-0] PASSED tests/ui_tests/pps_cps/pps/Search/test_open_in_new_tab.py::TestPPS::test_open_saved_search_in_new_tab_open_details[chrome-1] PASSED tests/ui_tests/pps_cps/pps/Search/test_remove_search.py::TestPPS::test_delete_search[chrome] RERUN tests/ui_tests/pps_cps/pps/Search/test_remove_search.py::TestPPS::test_delete_search[chrome] RERUN tests/ui_tests/pps_cps/pps/Search/test_remove_search.py::TestPPS::test_delete_search[chrome] FAILED tests/ui_tests/pps_cps/pps/Search/test_remove_search.py::TestPPS::test_delete_search_on_details[chrome] RERUN tests/ui_tests/pps_cps/pps/Search/test_remove_search.py::TestPPS::test_delete_search_on_details[chrome] RERUN tests/ui_tests/pps_cps/pps/Search/test_remove_search.py::TestPPS::test_delete_search_on_details[chrome] FAILED tests/ui_tests/pps_cps/pps/Search/test_rename_search.py::TestPPS::test_rename_saved_search_from_menu[chrome] RERUN tests/ui_tests/pps_cps/pps/Search/test_rename_search.py::TestPPS::test_rename_saved_search_from_menu[chrome] RERUN tests/ui_tests/pps_cps/pps/Search/test_rename_search.py::TestPPS::test_rename_saved_search_from_menu[chrome] FAILED tests/ui_tests/pps_cps/pps/Search/test_rename_search.py::TestPPS::test_rename_saved_search_from_details[chrome] RERUN tests/ui_tests/pps_cps/pps/Search/test_rename_search.py::TestPPS::test_rename_saved_search_from_details[chrome] RERUN tests/ui_tests/pps_cps/pps/Search/test_rename_search.py::TestPPS::test_rename_saved_search_from_details[chrome] FAILED tests/ui_tests/pps_cps/pps/Search/test_save_search.py::TestPPS::test_save_recent_search[chrome] RERUN tests/ui_tests/pps_cps/pps/Search/test_save_search.py::TestPPS::test_save_recent_search[chrome] RERUN tests/ui_tests/pps_cps/pps/Search/test_save_search.py::TestPPS::test_save_recent_search[chrome] FAILED tests/ui_tests/pps_cps/pps/Search/test_save_search.py::TestPPS::test_save_search_filter_panel[chrome] RERUN tests/ui_tests/pps_cps/pps/Search/test_save_search.py::TestPPS::test_save_search_filter_panel[chrome] RERUN tests/ui_tests/pps_cps/pps/Search/test_save_search.py::TestPPS::test_save_search_filter_panel[chrome] FAILED tests/ui_tests/pps_cps/pps/Search/test_save_search.py::TestPPS::test_save_search_open_details[chrome] RERUN tests/ui_tests/pps_cps/pps/Search/test_save_search.py::TestPPS::test_save_search_open_details[chrome] RERUN tests/ui_tests/pps_cps/pps/Search/test_save_search.py::TestPPS::test_save_search_open_details[chrome] FAILED tests/ui_tests/pps_cps/pps/Search/test_save_search.py::TestPPS::test_save_search_with_already_exist_name[chrome] RERUN tests/ui_tests/pps_cps/pps/Search/test_save_search.py::TestPPS::test_save_search_with_already_exist_name[chrome] RERUN tests/ui_tests/pps_cps/pps/Search/test_save_search.py::TestPPS::test_save_search_with_already_exist_name[chrome] FAILED tests/ui_tests/pps_cps/pps/Search/test_save_search.py::TestPPS::test_save_search_enter_spaces_and_cancel[chrome] RERUN tests/ui_tests/pps_cps/pps/Search/test_save_search.py::TestPPS::test_save_search_enter_spaces_and_cancel[chrome] RERUN tests/ui_tests/pps_cps/pps/Search/test_save_search.py::TestPPS::test_save_search_enter_spaces_and_cancel[chrome] FAILED tests/ui_tests/pps_cps/pps/Search/test_save_search.py::TestPPS::test_save_more_10_searches[chrome] RERUN tests/ui_tests/pps_cps/pps/Search/test_save_search.py::TestPPS::test_save_more_10_searches[chrome] RERUN tests/ui_tests/pps_cps/pps/Search/test_save_search.py::TestPPS::test_save_more_10_searches[chrome] FAILED tests/ui_tests/pps_cps/pps/Search/test_search_by_company_founded.py::TestPPS::test_search_by_founded[chrome] PASSED tests/ui_tests/pps_cps/pps/Search/test_search_by_company_industry.py::TestPPS::test_search_by_industry[chrome-Apparel & Fashion-Apparel & Fashion] PASSED tests/ui_tests/pps_cps/pps/Search/test_search_by_company_industry.py::TestPPS::test_search_by_industry[chrome-ban-Banking] PASSED tests/ui_tests/pps_cps/pps/Search/test_search_by_company_location.py::TestPPS::test_search_by_company_location[chrome-New York-New York, United States] PASSED tests/ui_tests/pps_cps/pps/Search/test_search_by_company_location.py::TestPPS::test_search_by_company_location[chrome-California-California, United States] PASSED tests/ui_tests/pps_cps/pps/Search/test_search_by_company_location.py::TestPPS::test_search_by_company_location[chrome-Ukraine-Ukraine] PASSED tests/ui_tests/pps_cps/pps/Search/test_search_by_company_name.py::TestPPS::test_search_by_company_name[chrome-Microsoft] PASSED tests/ui_tests/pps_cps/pps/Search/test_search_by_company_name.py::TestPPS::test_search_by_company_name[chrome-Apple] PASSED tests/ui_tests/pps_cps/pps/Search/test_search_by_company_revenue.py::TestPPS::test_search_by_company_revenue[chrome] PASSED tests/ui_tests/pps_cps/pps/Search/test_search_by_company_size.py::TestPPS::test_search_by_company_size[chrome] PASSED tests/ui_tests/pps_cps/pps/Search/test_search_by_company_specialties.py::TestPPS::test_search_by_specialties[chrome-DevOps-1] PASSED tests/ui_tests/pps_cps/pps/Search/test_search_by_company_specialties.py::TestPPS::test_search_by_specialties[chrome-man-2] PASSED tests/ui_tests/pps_cps/pps/Search/test_search_by_prospect_job.py::TestPPS::test_search_by_prospect_job[chrome-Job title-man-General Manager] PASSED tests/ui_tests/pps_cps/pps/Search/test_search_by_prospect_job.py::TestPPS::test_search_by_prospect_job[chrome-Job title-Python Developer-Python Developer] PASSED tests/ui_tests/pps_cps/pps/Search/test_search_by_prospect_job.py::TestPPS::test_search_by_prospect_job[chrome-Job title-HR -HR Manager] PASSED tests/ui_tests/pps_cps/pps/Search/test_search_by_prospect_job.py::TestPPS::test_search_by_prospect_job_exclude[chrome-Job title-manager-General Manager] RERUN tests/ui_tests/pps_cps/pps/Search/test_search_by_prospect_job.py::TestPPS::test_search_by_prospect_job_exclude[chrome-Job title-manager-General Manager] PASSED tests/ui_tests/pps_cps/pps/Search/test_search_by_prospect_job.py::TestPPS::test_search_by_prospect_job_exclude[chrome-Job title-developer-.NET Developer] RERUN tests/ui_tests/pps_cps/pps/Search/test_search_by_prospect_job.py::TestPPS::test_search_by_prospect_job_exclude[chrome-Job title-developer-.NET Developer] PASSED tests/ui_tests/pps_cps/pps/Search/test_search_by_prospect_job.py::TestPPS::test_search_by_prospect_job_exclude[chrome-Job title-qa-QA Engineer] PASSED tests/ui_tests/pps_cps/pps/Search/test_search_by_prospect_location.py::TestPPS::test_prospect_location[chrome-New York-New York, United States] PASSED tests/ui_tests/pps_cps/pps/Search/test_search_by_prospect_location.py::TestPPS::test_prospect_location[chrome-California-California, United States] PASSED tests/ui_tests/pps_cps/pps/Search/test_search_by_prospect_name.py::TestPPS::test_search_by_prospect_name[chrome-Last name-Jackson] PASSED tests/ui_tests/pps_cps/pps/Search/test_search_by_prospect_name.py::TestPPS::test_search_by_prospect_name[chrome-First name-Anna] PASSED tests/ui_tests/pps_cps/pps/Search/test_search_by_skills.py::TestPPS::test_search_by_skills[chrome-man-management] PASSED tests/ui_tests/pps_cps/pps/Search/test_search_by_skills.py::TestPPS::test_search_by_skills[chrome-bus-business development] PASSED tests/ui_tests/pps_cps/pps/Validation/test_enter_less_2_characters.py::TestPPS::test_less_3_char[chrome-Job title-Please enter 2 or more characters] PASSED tests/ui_tests/pps_cps/pps/Validation/test_enter_less_2_characters.py::TestPPS::test_less_3_char[chrome-Skills-Please enter 3 or more characters] PASSED tests/ui_tests/pps_cps/pps/Validation/test_enter_less_2_characters.py::TestPPS::test_less_3_char[chrome-Company name-Please enter 3 or more characters] PASSED tests/ui_tests/pps_cps/pps/Validation/test_enter_less_2_characters.py::TestPPS::test_less_3_char[chrome-Specialties-Please enter 3 or more characters] PASSED tests/ui_tests/pps_cps/pps/Validation/test_enter_less_2_characters.py::TestPPS::test_english_text_dropdown[chrome-Location-Please enter 3 or more characters] PASSED tests/ui_tests/pps_cps/pps/Validation/test_enter_less_2_characters.py::TestPPS::test_english_text_dropdown[chrome-Company location-Please enter 3 or more characters] PASSED tests/ui_tests/pps_cps/pps/Validation/test_limit_10_filters.py::TestPPS::test_limit_10_filter[chrome-Location] PASSED tests/ui_tests/pps_cps/pps/Validation/test_limit_10_filters.py::TestPPS::test_limit_10_filter[chrome-Job title] PASSED tests/ui_tests/pps_cps/pps/Validation/test_limit_10_filters.py::TestPPS::test_limit_10_filter[chrome-Company name] PASSED tests/ui_tests/pps_cps/pps/Validation/test_limit_10_filters.py::TestPPS::test_limit_10_filter[chrome-Company location] PASSED tests/ui_tests/pps_cps/pps/Validation/test_limit_10_filters.py::TestPPS::test_limit_10_filter[chrome-Specialties] PASSED tests/ui_tests/pps_cps/pps/Validation/test_not_found_data.py::TestPPS::test_no_data_found[chrome] PASSED =================================== FAILURES =================================== ________________ TestPPS.test_add_all_prospects_to_list[chrome] ________________ self = @allure.title("Add all prospect per page") @allure.severity(Severity.BLOCKER) def test_add_all_prospects_to_list(self): self.prospects_page = ProspectsPage(self.driver) self.pps_page.search_by_def_data(TestDataPPS.USER_PPS, TestDataGeneral.PASSWORD_GENERAL) prospect_names_pps = self.pps_page.get_prospect_names().sort() > created_list_name = self.pps_page.add_selected_prospects_to_new_list() tests/ui_tests/pps_cps/pps/Other cases/test_add_prospects_to_list.py:17: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/pps_page.py:328: in add_selected_prospects_to_new_list self.click_general_checkbox() tests/scr/pages/pps_page.py:290: in click_general_checkbox self.do_click(self.GENERAL_CHECKBOX) tests/scr/pages/base_page.py:15: in do_click WebDriverWait(self.driver, 20).until(EC.visibility_of_element_located(by_locator)).click() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = method = message = '' def until(self, method, message=''): """Calls the method provided with the driver as an argument until the \ return value is not False.""" screen = None stacktrace = None end_time = time.time() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.time() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: /usr/local/lib/python3.9/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException _ TestPPS.test_create_prospects_list_error[chrome-0-List with the same name already exists.] _ self = list_name = 0, error = 'List with the same name already exists.' @allure.title("Create prospects list error") @allure.severity(Severity.BLOCKER) @pytest.mark.parametrize('list_name, error', [ ( TestDataPPS.DEF_INDEX, TestDataGeneral.CREATE_ALREADY_EXIST_PROSPECT_LIST_ERROR, ), ( '', TestDataGeneral.CREATE_LIST_WITHOUT_NAME_ERROR ), ]) def test_create_prospects_list_error(self, list_name, error): > self.pps_page.search_by_def_data(TestDataPPS.USER_PPS_STATIC, TestDataGeneral.PASSWORD_GENERAL_NEW) tests/ui_tests/pps_cps/pps/Other cases/test_add_prospects_to_list.py:37: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/pps_page.py:592: in search_by_def_data self.login_and_open_pps_page(login, password) tests/scr/pages/pps_page.py:100: in login_and_open_pps_page self.open_pps_page() tests/scr/pages/pps_page.py:104: in open_pps_page self.wait_element(self.CHECK_SEARCH_RESULTS) tests/scr/pages/base_page.py:58: in wait_element element = wait.until(EC.presence_of_element_located(by_locator)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = method = message = '' def until(self, method, message=''): """Calls the method provided with the driver as an argument until the \ return value is not False.""" screen = None stacktrace = None end_time = time.time() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.time() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: /usr/local/lib/python3.9/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException _ TestPPS.test_create_prospects_list_error[chrome--Please, put new list name] __ self = list_name = '', error = 'Please, put new list name' @allure.title("Create prospects list error") @allure.severity(Severity.BLOCKER) @pytest.mark.parametrize('list_name, error', [ ( TestDataPPS.DEF_INDEX, TestDataGeneral.CREATE_ALREADY_EXIST_PROSPECT_LIST_ERROR, ), ( '', TestDataGeneral.CREATE_LIST_WITHOUT_NAME_ERROR ), ]) def test_create_prospects_list_error(self, list_name, error): > self.pps_page.search_by_def_data(TestDataPPS.USER_PPS_STATIC, TestDataGeneral.PASSWORD_GENERAL_NEW) tests/ui_tests/pps_cps/pps/Other cases/test_add_prospects_to_list.py:37: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/pps_page.py:592: in search_by_def_data self.login_and_open_pps_page(login, password) tests/scr/pages/pps_page.py:100: in login_and_open_pps_page self.open_pps_page() tests/scr/pages/pps_page.py:104: in open_pps_page self.wait_element(self.CHECK_SEARCH_RESULTS) tests/scr/pages/base_page.py:58: in wait_element element = wait.until(EC.presence_of_element_located(by_locator)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = method = message = '' def until(self, method, message=''): """Calls the method provided with the driver as an argument until the \ return value is not False.""" screen = None stacktrace = None end_time = time.time() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.time() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: /usr/local/lib/python3.9/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException _ TestPPS.test_remove_filter[chrome-Specialties-DevOps-DevOps-Select company's specialties] _ self = filter_name = 'Specialties', data_to_fill = 'DevOps', approved_data = 'DevOps' place_holder = "Select company's specialties" @pytest.mark.parametrize('filter_name, data_to_fill, approved_data, place_holder', [ ( TestDataPPS.P_LOCATION, 'ukr', 'Ukraine', TestDataPPS.filter_placeholders[TestDataPPS.P_LOCATION] ), ( TestDataPPS.P_JOB_TITLE, TestDataPPS.DEF_DATA_TO_FILL, 'Project Manager', TestDataPPS.filter_placeholders[TestDataPPS.P_JOB_TITLE] ), ( TestDataPPS.P_SKILLS, TestDataPPS.DEF_DATA_TO_FILL, 'management', TestDataPPS.filter_placeholders[TestDataPPS.P_SKILLS] ), ( TestDataPPS.C_COMPANY_NAME, 'Snov.io', 'Snov.io', TestDataPPS.filter_placeholders[TestDataPPS.C_COMPANY_NAME] ), ( TestDataPPS.C_COMPANY_LOCATION, 'ukr', 'Ukraine', TestDataPPS.filter_placeholders[TestDataPPS.C_COMPANY_LOCATION] ), ( TestDataPPS.C_INDUSTRY, 'ani', 'Animation', TestDataPPS.filter_placeholders[TestDataPPS.C_INDUSTRY] ), ( TestDataPPS.C_SPECIALTIES, 'DevOps', 'DevOps', TestDataPPS.filter_placeholders[TestDataPPS.C_SPECIALTIES] ) ]) @allure.title("remove elastic filter") @allure.severity(Severity.BLOCKER) def test_remove_filter(self, filter_name, data_to_fill, approved_data, place_holder): self.pps_page.login_and_open_pps_page(TestDataPPS.USER_PPS, TestDataGeneral.PASSWORD_GENERAL) > self.pps_page.choose_elastic_filter(filter_name, data_to_fill, approved_data) tests/ui_tests/pps_cps/pps/Other cases/test_remove_filters.py:58: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/pps_page.py:135: in choose_elastic_filter self.do_click(option_selector_by_name) tests/scr/pages/base_page.py:15: in do_click WebDriverWait(self.driver, 20).until(EC.visibility_of_element_located(by_locator)).click() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = method = message = '' def until(self, method, message=''): """Calls the method provided with the driver as an argument until the \ return value is not False.""" screen = None stacktrace = None end_time = time.time() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.time() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: /usr/local/lib/python3.9/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException ___________________ TestPPS.test_save_recent_search[chrome] ____________________ self = @allure.title("show all") @allure.severity(Severity.BLOCKER) def test_save_recent_search(self): > self.pps_page.login_and_open_pps_page(TestDataPPS.USER_PPS_STATIC, TestDataGeneral.PASSWORD_GENERAL_NEW) tests/ui_tests/pps_cps/pps/Other cases/test_show_all.py:14: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/pps_page.py:100: in login_and_open_pps_page self.open_pps_page() tests/scr/pages/pps_page.py:104: in open_pps_page self.wait_element(self.CHECK_SEARCH_RESULTS) tests/scr/pages/base_page.py:58: in wait_element element = wait.until(EC.presence_of_element_located(by_locator)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = method = message = '' def until(self, method, message=''): """Calls the method provided with the driver as an argument until the \ return value is not False.""" screen = None stacktrace = None end_time = time.time() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.time() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: /usr/local/lib/python3.9/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException ________ TestPPS.test_add_prospects_to_list_not_enough_credits[chrome] _________ self = @allure.title("Add prospects not enough credits") @allure.severity(Severity.BLOCKER) def test_add_prospects_to_list_not_enough_credits(self): self.pps_page.login_and_open_pps_page(TestDataPPS.USER_PPS_NOT_ENOUGH_CREDITS, TestDataGeneral.PASSWORD_GENERAL_NEW) self.pps_page.choose_company_size(TestDataPPS.LIST_OF_SIZES[4]) self.pps_page.click_search_and_wait_results() > self.pps_page.click_general_checkbox() tests/ui_tests/pps_cps/pps/Plans/test_add_to_list_not_enough_credits.py:16: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/pps_page.py:290: in click_general_checkbox self.do_click(self.GENERAL_CHECKBOX) tests/scr/pages/base_page.py:15: in do_click WebDriverWait(self.driver, 20).until(EC.visibility_of_element_located(by_locator)).click() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = method = message = '' def until(self, method, message=''): """Calls the method provided with the driver as an argument until the \ return value is not False.""" screen = None stacktrace = None end_time = time.time() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.time() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: /usr/local/lib/python3.9/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException _ TestPPS.test_load_saved_search_from_filters_panel[chrome-Job title-list_of_positions0] _ self = filter_name = 'Job title' list_of_positions = ['QA Engineer', 'Project Manager', 'Software developer'] @pytest.mark.parametrize('filter_name, list_of_positions', [ ( TestDataPPS.P_JOB_TITLE, ['QA Engineer', 'Project Manager', 'Software developer'] ) ]) @allure.title("Load saved search from filters panel") @allure.severity(Severity.BLOCKER) def test_load_saved_search_from_filters_panel(self, filter_name, list_of_positions): > self.pps_page.login_and_open_pps_page(TestDataPPS.USER_PPS_STATIC, TestDataGeneral.PASSWORD_GENERAL_NEW) tests/ui_tests/pps_cps/pps/Search/test_load_search.py:19: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/pps_page.py:100: in login_and_open_pps_page self.open_pps_page() tests/scr/pages/pps_page.py:104: in open_pps_page self.wait_element(self.CHECK_SEARCH_RESULTS) tests/scr/pages/base_page.py:58: in wait_element element = wait.until(EC.presence_of_element_located(by_locator)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = method = message = '' def until(self, method, message=''): """Calls the method provided with the driver as an argument until the \ return value is not False.""" screen = None stacktrace = None end_time = time.time() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.time() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: /usr/local/lib/python3.9/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException _ TestPPS.test_load_saved_search_from_details[chrome-Job title-list_of_positions0] _ self = filter_name = 'Job title' list_of_positions = ['QA Engineer', 'Project Manager', 'Software developer'] @pytest.mark.parametrize('filter_name, list_of_positions', [ ( TestDataPPS.P_JOB_TITLE, ['QA Engineer', 'Project Manager', 'Software developer'] ) ]) @allure.title("Load saved search from details") @allure.severity(Severity.BLOCKER) def test_load_saved_search_from_details(self, filter_name, list_of_positions): > self.pps_page.login_and_open_pps_page(TestDataPPS.USER_PPS_STATIC, TestDataGeneral.PASSWORD_GENERAL_NEW) tests/ui_tests/pps_cps/pps/Search/test_load_search.py:33: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/pps_page.py:100: in login_and_open_pps_page self.open_pps_page() tests/scr/pages/pps_page.py:104: in open_pps_page self.wait_element(self.CHECK_SEARCH_RESULTS) tests/scr/pages/base_page.py:58: in wait_element element = wait.until(EC.presence_of_element_located(by_locator)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = method = message = '' def until(self, method, message=''): """Calls the method provided with the driver as an argument until the \ return value is not False.""" screen = None stacktrace = None end_time = time.time() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.time() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: /usr/local/lib/python3.9/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException ______________________ TestPPS.test_delete_search[chrome] ______________________ self = @allure.title("Delete search") @allure.severity(Severity.BLOCKER) def test_delete_search(self): self.pps_page.login_and_open_pps_page(TestDataPPS.USER_PPS, TestDataGeneral.PASSWORD_GENERAL) > self.pps_page.remove_saved_search(TestDataPPS.DEF_INDEX) tests/ui_tests/pps_cps/pps/Search/test_remove_search.py:15: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/pps_page.py:635: in remove_saved_search self.click_yes_confirm_deletion(index) tests/scr/pages/pps_page.py:444: in click_yes_confirm_deletion self.click_one_of_elements(self.BUTTON_YES_CONFIRM_DELETION, counter) tests/scr/pages/base_page.py:21: in click_one_of_elements x = WebDriverWait(self.driver, 10, 1).until(EC.presence_of_all_elements_located(by_locator)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = method = message = '' def until(self, method, message=''): """Calls the method provided with the driver as an argument until the \ return value is not False.""" screen = None stacktrace = None end_time = time.time() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.time() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: /usr/local/lib/python3.9/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException ________________ TestPPS.test_delete_search_on_details[chrome] _________________ self = @allure.title("Delete search from open details") @allure.severity(Severity.BLOCKER) def test_delete_search_on_details(self): self.pps_page.login_and_open_pps_page(TestDataPPS.USER_PPS, TestDataGeneral.PASSWORD_GENERAL) index = len(self.pps_page.get_saved_search_names()) - 5 > self.pps_page.remove_saved_search(index, True) tests/ui_tests/pps_cps/pps/Search/test_remove_search.py:22: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/pps_page.py:635: in remove_saved_search self.click_yes_confirm_deletion(index) tests/scr/pages/pps_page.py:444: in click_yes_confirm_deletion self.click_one_of_elements(self.BUTTON_YES_CONFIRM_DELETION, counter) tests/scr/pages/base_page.py:21: in click_one_of_elements x = WebDriverWait(self.driver, 10, 1).until(EC.presence_of_all_elements_located(by_locator)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = method = message = '' def until(self, method, message=''): """Calls the method provided with the driver as an argument until the \ return value is not False.""" screen = None stacktrace = None end_time = time.time() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.time() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: /usr/local/lib/python3.9/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException ______________ TestPPS.test_rename_saved_search_from_menu[chrome] ______________ self = @allure.title("Rename search") @allure.severity(Severity.CRITICAL) def test_rename_saved_search_from_menu(self): self.pps_page.login_and_open_pps_page(TestDataPPS.USER_PPS, TestDataGeneral.PASSWORD_GENERAL) > self.pps_page.rename_saved_search(TestDataPPS.DEF_INDEX) tests/ui_tests/pps_cps/pps/Search/test_rename_search.py:14: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/pps_page.py:617: in rename_saved_search self.choose_rename_filter_from_menu(index) tests/scr/pages/pps_page.py:436: in choose_rename_filter_from_menu assert self.get_atr(self.BUTTON_MODAL_SAVE_SEARCH, TestDataPPS.DISABLE_ATR) tests/scr/pages/base_page.py:124: in get_atr style = self.driver.find_element(*locator).get_attribute(atr) /usr/local/lib/python3.9/dist-packages/selenium/webdriver/remote/webdriver.py:976: in find_element return self.execute(Command.FIND_ELEMENT, { /usr/local/lib/python3.9/dist-packages/selenium/webdriver/remote/webdriver.py:321: in execute self.error_handler.check_response(response) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = response = {'status': 404, 'value': '{"value":{"error":"no such element","message":"no such element: Unable to locate element: {\...wn>\\n#16 0x55d865b1c847 \\u003Cunknown>\\n#17 0x55d865b2c243 \\u003Cunknown>\\n#18 0x7f2b8d09c6db start_thread\\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', '') if line: file = "%s:%s" % (file, line) meth = self._value_or_default(frame, 'methodName', '') 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":"xpath","selector":"//*[contains(text(), "Save")]/ancestor::button[@class="modal-snovio__btn btn-snovio minimize confirm"]"} E (Session info: headless chrome=114.0.5735.133) /usr/local/lib/python3.9/dist-packages/selenium/webdriver/remote/errorhandler.py:242: NoSuchElementException ____________ TestPPS.test_rename_saved_search_from_details[chrome] _____________ self = @allure.title("Rename search from details") @allure.severity(Severity.NORMAL) def test_rename_saved_search_from_details(self): > self.pps_page.login_and_open_pps_page(TestDataPPS.USER_PPS_STATIC, TestDataGeneral.PASSWORD_GENERAL_NEW) tests/ui_tests/pps_cps/pps/Search/test_rename_search.py:19: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/pps_page.py:100: in login_and_open_pps_page self.open_pps_page() tests/scr/pages/pps_page.py:104: in open_pps_page self.wait_element(self.CHECK_SEARCH_RESULTS) tests/scr/pages/base_page.py:58: in wait_element element = wait.until(EC.presence_of_element_located(by_locator)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = method = message = '' def until(self, method, message=''): """Calls the method provided with the driver as an argument until the \ return value is not False.""" screen = None stacktrace = None end_time = time.time() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.time() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: /usr/local/lib/python3.9/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException ___________________ TestPPS.test_save_recent_search[chrome] ____________________ self = @allure.title("Save recent search") @allure.severity(Severity.BLOCKER) def test_save_recent_search(self): self.pps_page.search_by_def_data(TestDataPPS.USER_PPS, TestDataGeneral.PASSWORD_GENERAL) self.pps_page.refresh_page() > self.pps_page.save_search(TestDataPPS.DEF_INDEX) tests/ui_tests/pps_cps/pps/Search/test_save_search.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/pps_page.py:647: in save_search self.add_search_name() tests/scr/pages/pps_page.py:651: in add_search_name self.enter_saved_search_name(search_name) tests/scr/pages/pps_page.py:369: in enter_saved_search_name self.check_disabled_save_search_button() tests/scr/pages/pps_page.py:403: in check_disabled_save_search_button assert TestDataPPS.DISABLE_ATR in self.get_atr(self.SAVE_SEARCH_BUTTON, 'class') tests/scr/pages/base_page.py:124: in get_atr style = self.driver.find_element(*locator).get_attribute(atr) /usr/local/lib/python3.9/dist-packages/selenium/webdriver/remote/webdriver.py:976: in find_element return self.execute(Command.FIND_ELEMENT, { /usr/local/lib/python3.9/dist-packages/selenium/webdriver/remote/webdriver.py:321: in execute self.error_handler.check_response(response) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = response = {'status': 404, 'value': '{"value":{"error":"no such element","message":"no such element: Unable to locate element: {\...wn>\\n#16 0x556405da5847 \\u003Cunknown>\\n#17 0x556405db5243 \\u003Cunknown>\\n#18 0x7fa71c3ec6db start_thread\\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', '') if line: file = "%s:%s" % (file, line) meth = self._value_or_default(frame, 'methodName', '') 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":"xpath","selector":"//*[contains(text(), "Save search")]//ancestor::button"} E (Session info: headless chrome=114.0.5735.133) /usr/local/lib/python3.9/dist-packages/selenium/webdriver/remote/errorhandler.py:242: NoSuchElementException ________________ TestPPS.test_save_search_filter_panel[chrome] _________________ self = @allure.title("Save recent search from filter panel") @allure.severity(Severity.BLOCKER) def test_save_search_filter_panel(self): self.pps_page.search_by_def_data(TestDataPPS.USER_SAVE, TestDataGeneral.PASSWORD_GENERAL_NEW) self.pps_page.click_save_on_filter_panel() > self.pps_page.add_search_name(True) tests/ui_tests/pps_cps/pps/Search/test_save_search.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/pps_page.py:651: in add_search_name self.enter_saved_search_name(search_name) tests/scr/pages/pps_page.py:369: in enter_saved_search_name self.check_disabled_save_search_button() tests/scr/pages/pps_page.py:403: in check_disabled_save_search_button assert TestDataPPS.DISABLE_ATR in self.get_atr(self.SAVE_SEARCH_BUTTON, 'class') tests/scr/pages/base_page.py:124: in get_atr style = self.driver.find_element(*locator).get_attribute(atr) /usr/local/lib/python3.9/dist-packages/selenium/webdriver/remote/webdriver.py:976: in find_element return self.execute(Command.FIND_ELEMENT, { /usr/local/lib/python3.9/dist-packages/selenium/webdriver/remote/webdriver.py:321: in execute self.error_handler.check_response(response) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = response = {'status': 404, 'value': '{"value":{"error":"no such element","message":"no such element: Unable to locate element: {\...wn>\\n#16 0x55fdadf87847 \\u003Cunknown>\\n#17 0x55fdadf97243 \\u003Cunknown>\\n#18 0x7f34087b26db start_thread\\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', '') if line: file = "%s:%s" % (file, line) meth = self._value_or_default(frame, 'methodName', '') 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":"xpath","selector":"//*[contains(text(), "Save search")]//ancestor::button"} E (Session info: headless chrome=114.0.5735.133) /usr/local/lib/python3.9/dist-packages/selenium/webdriver/remote/errorhandler.py:242: NoSuchElementException ________________ TestPPS.test_save_search_open_details[chrome] _________________ self = @allure.title("Save recent search from open details") @allure.severity(Severity.NORMAL) def test_save_search_open_details(self): self.pps_page.search_by_def_data(TestDataPPS.USER_PPS, TestDataGeneral.PASSWORD_GENERAL) self.pps_page.refresh_page() index = len(self.pps_page.get_saved_search_names()) + 1 > self.pps_page.save_search(index, True) tests/ui_tests/pps_cps/pps/Search/test_save_search.py:34: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/pps_page.py:647: in save_search self.add_search_name() tests/scr/pages/pps_page.py:651: in add_search_name self.enter_saved_search_name(search_name) tests/scr/pages/pps_page.py:369: in enter_saved_search_name self.check_disabled_save_search_button() tests/scr/pages/pps_page.py:403: in check_disabled_save_search_button assert TestDataPPS.DISABLE_ATR in self.get_atr(self.SAVE_SEARCH_BUTTON, 'class') tests/scr/pages/base_page.py:124: in get_atr style = self.driver.find_element(*locator).get_attribute(atr) /usr/local/lib/python3.9/dist-packages/selenium/webdriver/remote/webdriver.py:976: in find_element return self.execute(Command.FIND_ELEMENT, { /usr/local/lib/python3.9/dist-packages/selenium/webdriver/remote/webdriver.py:321: in execute self.error_handler.check_response(response) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = response = {'status': 404, 'value': '{"value":{"error":"no such element","message":"no such element: Unable to locate element: {\...wn>\\n#16 0x56101684b847 \\u003Cunknown>\\n#17 0x56101685b243 \\u003Cunknown>\\n#18 0x7f07c59326db start_thread\\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', '') if line: file = "%s:%s" % (file, line) meth = self._value_or_default(frame, 'methodName', '') 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":"xpath","selector":"//*[contains(text(), "Save search")]//ancestor::button"} E (Session info: headless chrome=114.0.5735.133) /usr/local/lib/python3.9/dist-packages/selenium/webdriver/remote/errorhandler.py:242: NoSuchElementException ___________ TestPPS.test_save_search_with_already_exist_name[chrome] ___________ self = @allure.title("Save search with already exist name") @allure.severity(Severity.NORMAL) def test_save_search_with_already_exist_name(self): self.pps_page.login_and_open_pps_page(TestDataPPS.USER_PPS, TestDataGeneral.PASSWORD_GENERAL) name_of_saved_search = self.pps_page.get_saved_search_names()[TestDataPPS.DEF_INDEX] self.pps_page.def_search() self.pps_page.click_save_on_filter_panel() > self.pps_page.enter_saved_search_name(name_of_saved_search) tests/ui_tests/pps_cps/pps/Search/test_save_search.py:43: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/pps_page.py:369: in enter_saved_search_name self.check_disabled_save_search_button() tests/scr/pages/pps_page.py:403: in check_disabled_save_search_button assert TestDataPPS.DISABLE_ATR in self.get_atr(self.SAVE_SEARCH_BUTTON, 'class') tests/scr/pages/base_page.py:124: in get_atr style = self.driver.find_element(*locator).get_attribute(atr) /usr/local/lib/python3.9/dist-packages/selenium/webdriver/remote/webdriver.py:976: in find_element return self.execute(Command.FIND_ELEMENT, { /usr/local/lib/python3.9/dist-packages/selenium/webdriver/remote/webdriver.py:321: in execute self.error_handler.check_response(response) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = response = {'status': 404, 'value': '{"value":{"error":"no such element","message":"no such element: Unable to locate element: {\...wn>\\n#16 0x55df71d0b847 \\u003Cunknown>\\n#17 0x55df71d1b243 \\u003Cunknown>\\n#18 0x7f0addc4e6db start_thread\\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', '') if line: file = "%s:%s" % (file, line) meth = self._value_or_default(frame, 'methodName', '') 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":"xpath","selector":"//*[contains(text(), "Save search")]//ancestor::button"} E (Session info: headless chrome=114.0.5735.133) /usr/local/lib/python3.9/dist-packages/selenium/webdriver/remote/errorhandler.py:242: NoSuchElementException ___________ TestPPS.test_save_search_enter_spaces_and_cancel[chrome] ___________ self = @allure.title("Save search with already exist name") @allure.severity(Severity.NORMAL) def test_save_search_enter_spaces_and_cancel(self): self.pps_page.login_and_open_pps_page(TestDataPPS.USER_PPS, TestDataGeneral.PASSWORD_GENERAL) self.pps_page.click_save_search(TestDataPPS.DEF_INDEX) > self.pps_page.enter_saved_search_name(' ') tests/ui_tests/pps_cps/pps/Search/test_save_search.py:53: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/pps_page.py:369: in enter_saved_search_name self.check_disabled_save_search_button() tests/scr/pages/pps_page.py:403: in check_disabled_save_search_button assert TestDataPPS.DISABLE_ATR in self.get_atr(self.SAVE_SEARCH_BUTTON, 'class') tests/scr/pages/base_page.py:124: in get_atr style = self.driver.find_element(*locator).get_attribute(atr) /usr/local/lib/python3.9/dist-packages/selenium/webdriver/remote/webdriver.py:976: in find_element return self.execute(Command.FIND_ELEMENT, { /usr/local/lib/python3.9/dist-packages/selenium/webdriver/remote/webdriver.py:321: in execute self.error_handler.check_response(response) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = response = {'status': 404, 'value': '{"value":{"error":"no such element","message":"no such element: Unable to locate element: {\...wn>\\n#16 0x5647210de847 \\u003Cunknown>\\n#17 0x5647210ee243 \\u003Cunknown>\\n#18 0x7faa472716db start_thread\\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', '') if line: file = "%s:%s" % (file, line) meth = self._value_or_default(frame, 'methodName', '') 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":"xpath","selector":"//*[contains(text(), "Save search")]//ancestor::button"} E (Session info: headless chrome=114.0.5735.133) /usr/local/lib/python3.9/dist-packages/selenium/webdriver/remote/errorhandler.py:242: NoSuchElementException __________________ TestPPS.test_save_more_10_searches[chrome] __________________ self = @allure.title("Save more 10 searches") @allure.severity(Severity.NORMAL) def test_save_more_10_searches(self): > self.pps_page.login_and_open_pps_page(TestDataPPS.USER_PPS_STATIC, TestDataGeneral.PASSWORD_GENERAL_NEW) tests/ui_tests/pps_cps/pps/Search/test_save_search.py:60: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/pps_page.py:100: in login_and_open_pps_page self.open_pps_page() tests/scr/pages/pps_page.py:104: in open_pps_page self.wait_element(self.CHECK_SEARCH_RESULTS) tests/scr/pages/base_page.py:58: in wait_element element = wait.until(EC.presence_of_element_located(by_locator)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = method = message = '' def until(self, method, message=''): """Calls the method provided with the driver as an argument until the \ return value is not False.""" screen = None stacktrace = None end_time = time.time() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.time() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: /usr/local/lib/python3.9/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException =============================== warnings summary =============================== ../../../../../usr/lib/python3/dist-packages/urllib3/util/selectors.py:14 /usr/lib/python3/dist-packages/urllib3/util/selectors.py:14: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.10 it will stop working from collections import namedtuple, Mapping ../../../../../usr/lib/python3/dist-packages/urllib3/_collections.py:2 /usr/lib/python3/dist-packages/urllib3/_collections.py:2: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.10 it will stop working from collections import Mapping, MutableMapping tests/ui_tests/pps_cps/pps/Other cases/test_add_prospects_to_list.py: 9 warnings tests/ui_tests/pps_cps/pps/Other cases/test_clear_filters.py: 12 warnings tests/ui_tests/pps_cps/pps/Other cases/test_pagination.py: 1 warning tests/ui_tests/pps_cps/pps/Other cases/test_remove_filters.py: 11 warnings tests/ui_tests/pps_cps/pps/Other cases/test_reset_all_filters.py: 1 warning tests/ui_tests/pps_cps/pps/Other cases/test_show_all.py: 3 warnings tests/ui_tests/pps_cps/pps/Plans/test_add_to_list_not_enough_credits.py: 3 warnings tests/ui_tests/pps_cps/pps/Plans/test_check_credits.py: 2 warnings tests/ui_tests/pps_cps/pps/Plans/test_dbs_search_no_credits.py: 2 warnings tests/ui_tests/pps_cps/pps/Plans/test_free_plan_limit.py: 1 warning tests/ui_tests/pps_cps/pps/Search/test_first_search.py: 2 warnings tests/ui_tests/pps_cps/pps/Search/test_load_search.py: 6 warnings tests/ui_tests/pps_cps/pps/Search/test_mix_search.py: 3 warnings tests/ui_tests/pps_cps/pps/Search/test_open_in_new_tab.py: 3 warnings tests/ui_tests/pps_cps/pps/Search/test_remove_search.py: 6 warnings tests/ui_tests/pps_cps/pps/Search/test_rename_search.py: 6 warnings tests/ui_tests/pps_cps/pps/Search/test_save_search.py: 18 warnings tests/ui_tests/pps_cps/pps/Search/test_search_by_company_founded.py: 1 warning tests/ui_tests/pps_cps/pps/Search/test_search_by_company_industry.py: 2 warnings tests/ui_tests/pps_cps/pps/Search/test_search_by_company_location.py: 3 warnings tests/ui_tests/pps_cps/pps/Search/test_search_by_company_name.py: 2 warnings tests/ui_tests/pps_cps/pps/Search/test_search_by_company_revenue.py: 1 warning tests/ui_tests/pps_cps/pps/Search/test_search_by_company_size.py: 1 warning tests/ui_tests/pps_cps/pps/Search/test_search_by_company_specialties.py: 2 warnings tests/ui_tests/pps_cps/pps/Search/test_search_by_prospect_job.py: 8 warnings tests/ui_tests/pps_cps/pps/Search/test_search_by_prospect_location.py: 2 warnings tests/ui_tests/pps_cps/pps/Search/test_search_by_prospect_name.py: 2 warnings tests/ui_tests/pps_cps/pps/Search/test_search_by_skills.py: 2 warnings tests/ui_tests/pps_cps/pps/Validation/test_enter_less_2_characters.py: 6 warnings tests/ui_tests/pps_cps/pps/Validation/test_limit_10_filters.py: 5 warnings tests/ui_tests/pps_cps/pps/Validation/test_not_found_data.py: 1 warning /var/lib/jenkins/workspace/pps/tests/conftest.py:27: DeprecationWarning: use options instead of chrome_options driver = webdriver.Chrome(ChromeDriverManager().install(), chrome_options=chromeOptions) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED tests/ui_tests/pps_cps/pps/Other cases/test_add_prospects_to_list.py::TestPPS::test_add_all_prospects_to_list[chrome] FAILED tests/ui_tests/pps_cps/pps/Other cases/test_add_prospects_to_list.py::TestPPS::test_create_prospects_list_error[chrome-0-List with the same name already exists.] FAILED tests/ui_tests/pps_cps/pps/Other cases/test_add_prospects_to_list.py::TestPPS::test_create_prospects_list_error[chrome--Please, put new list name] FAILED tests/ui_tests/pps_cps/pps/Other cases/test_remove_filters.py::TestPPS::test_remove_filter[chrome-Specialties-DevOps-DevOps-Select company's specialties] FAILED tests/ui_tests/pps_cps/pps/Other cases/test_show_all.py::TestPPS::test_save_recent_search[chrome] FAILED tests/ui_tests/pps_cps/pps/Plans/test_add_to_list_not_enough_credits.py::TestPPS::test_add_prospects_to_list_not_enough_credits[chrome] FAILED tests/ui_tests/pps_cps/pps/Search/test_load_search.py::TestPPS::test_load_saved_search_from_filters_panel[chrome-Job title-list_of_positions0] FAILED tests/ui_tests/pps_cps/pps/Search/test_load_search.py::TestPPS::test_load_saved_search_from_details[chrome-Job title-list_of_positions0] FAILED tests/ui_tests/pps_cps/pps/Search/test_remove_search.py::TestPPS::test_delete_search[chrome] FAILED tests/ui_tests/pps_cps/pps/Search/test_remove_search.py::TestPPS::test_delete_search_on_details[chrome] FAILED tests/ui_tests/pps_cps/pps/Search/test_rename_search.py::TestPPS::test_rename_saved_search_from_menu[chrome] FAILED tests/ui_tests/pps_cps/pps/Search/test_rename_search.py::TestPPS::test_rename_saved_search_from_details[chrome] FAILED tests/ui_tests/pps_cps/pps/Search/test_save_search.py::TestPPS::test_save_recent_search[chrome] FAILED tests/ui_tests/pps_cps/pps/Search/test_save_search.py::TestPPS::test_save_search_filter_panel[chrome] FAILED tests/ui_tests/pps_cps/pps/Search/test_save_search.py::TestPPS::test_save_search_open_details[chrome] FAILED tests/ui_tests/pps_cps/pps/Search/test_save_search.py::TestPPS::test_save_search_with_already_exist_name[chrome] FAILED tests/ui_tests/pps_cps/pps/Search/test_save_search.py::TestPPS::test_save_search_enter_spaces_and_cancel[chrome] FAILED tests/ui_tests/pps_cps/pps/Search/test_save_search.py::TestPPS::test_save_more_10_searches[chrome] ====== 18 failed, 70 passed, 129 warnings, 39 rerun in 4125.74s (1:08:45) ======