New paste Repaste Download
============================= 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 = <test_add_prospects_to_list.TestPPS object at 0x7f00defb6d60>
    @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 = <selenium.webdriver.support.wait.WebDriverWait (session="f2eeb71201e94ea30c1f8d8b90e93501")>
method = <selenium.webdriver.support.expected_conditions.visibility_of_element_located object at 0x7f00def15460>
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 = <test_add_prospects_to_list.TestPPS object at 0x7f00defb6ee0>
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 = <selenium.webdriver.support.wait.WebDriverWait (session="16972a1adcca5c1a37e16d36e0ec6748")>
method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x7f00de833f10>
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 = <test_add_prospects_to_list.TestPPS object at 0x7f00defb6f40>
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 = <selenium.webdriver.support.wait.WebDriverWait (session="63519d987351e7bd85e676e45a881b56")>
method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x7f00de835460>
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 = <test_remove_filters.TestPPS object at 0x7f00defe0e50>
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 = <selenium.webdriver.support.wait.WebDriverWait (session="8ccb94e0feb3b791262de3a9492890b3")>
method = <selenium.webdriver.support.expected_conditions.visibility_of_element_located object at 0x7f00de7a5340>
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 = <test_show_all.TestPPS object at 0x7f00def6dbe0>
    @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 = <selenium.webdriver.support.wait.WebDriverWait (session="7289f93238f7aa49a50daded3f3f7495")>
method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x7f00de7fc640>
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 = <tests.ui_tests.pps_cps.pps.Plans.test_add_to_list_not_enough_credits.TestPPS object at 0x7f00def79910>
    @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 = <selenium.webdriver.support.wait.WebDriverWait (session="e22c9d4323e02df834ba4711c99bcdf4")>
method = <selenium.webdriver.support.expected_conditions.visibility_of_element_located object at 0x7f00de7902b0>
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 = <tests.ui_tests.pps_cps.pps.Search.test_load_search.TestPPS object at 0x7f00def93760>
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 = <selenium.webdriver.support.wait.WebDriverWait (session="13c25f1eade300054d388a2267beeac9")>
method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x7f00de773f40>
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 = <tests.ui_tests.pps_cps.pps.Search.test_load_search.TestPPS object at 0x7f00def93970>
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 = <selenium.webdriver.support.wait.WebDriverWait (session="935e7f2d49153343c07f39a115484d4d")>
method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x7f00de7732b0>
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 = <tests.ui_tests.pps_cps.pps.Search.test_remove_search.TestPPS object at 0x7f00def93f40>
    @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 = <selenium.webdriver.support.wait.WebDriverWait (session="599ce8ae4c24e4eb4522ba84ea2094b9")>
method = <selenium.webdriver.support.expected_conditions.presence_of_all_elements_located object at 0x7f00de833f40>
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 = <tests.ui_tests.pps_cps.pps.Search.test_remove_search.TestPPS object at 0x7f00def93370>
    @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 = <selenium.webdriver.support.wait.WebDriverWait (session="e97070a584bbda7128e32ac1657b4d7e")>
method = <selenium.webdriver.support.expected_conditions.presence_of_all_elements_located object at 0x7f00de737a00>
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 = <tests.ui_tests.pps_cps.pps.Search.test_rename_search.TestPPS object at 0x7f00def2c5e0>
    @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 = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x7f00de5d1790>
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', '<anonymous>')
                    if line:
                        file = "%s:%s" % (file, line)
                    meth = self._value_or_default(frame, 'methodName', '<anonymous>')
                    if 'className' in frame:
                        meth = "%s.%s" % (frame['className'], meth)
                    msg = "    at %s (%s)"
                    msg = msg % (meth, file)
                    stacktrace.append(msg)
            except TypeError:
                pass
        if exception_class == ErrorInResponseException:
            raise exception_class(response, message)
        elif exception_class == UnexpectedAlertPresentException:
            alert_text = None
            if 'data' in value:
                alert_text = value['data'].get('text')
            elif 'alert' in value:
                alert_text = value['alert'].get('text')
            raise exception_class(message, screen, stacktrace, alert_text)
>       raise exception_class(message, screen, stacktrace)
E       selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"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 = <tests.ui_tests.pps_cps.pps.Search.test_rename_search.TestPPS object at 0x7f00def2c730>
    @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 = <selenium.webdriver.support.wait.WebDriverWait (session="b4b62d18bcfbf1da67ebb0fd35438e82")>
method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x7f00de7fc100>
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 = <tests.ui_tests.pps_cps.pps.Search.test_save_search.TestPPS object at 0x7f00def35130>
    @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 = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x7f00de5e14f0>
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', '<anonymous>')
                    if line:
                        file = "%s:%s" % (file, line)
                    meth = self._value_or_default(frame, 'methodName', '<anonymous>')
                    if 'className' in frame:
                        meth = "%s.%s" % (frame['className'], meth)
                    msg = "    at %s (%s)"
                    msg = msg % (meth, file)
                    stacktrace.append(msg)
            except TypeError:
                pass
        if exception_class == ErrorInResponseException:
            raise exception_class(response, message)
        elif exception_class == UnexpectedAlertPresentException:
            alert_text = None
            if 'data' in value:
                alert_text = value['data'].get('text')
            elif 'alert' in value:
                alert_text = value['alert'].get('text')
            raise exception_class(message, screen, stacktrace, alert_text)
>       raise exception_class(message, screen, stacktrace)
E       selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"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 = <tests.ui_tests.pps_cps.pps.Search.test_save_search.TestPPS object at 0x7f00def35280>
    @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 = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x7f00de6321c0>
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', '<anonymous>')
                    if line:
                        file = "%s:%s" % (file, line)
                    meth = self._value_or_default(frame, 'methodName', '<anonymous>')
                    if 'className' in frame:
                        meth = "%s.%s" % (frame['className'], meth)
                    msg = "    at %s (%s)"
                    msg = msg % (meth, file)
                    stacktrace.append(msg)
            except TypeError:
                pass
        if exception_class == ErrorInResponseException:
            raise exception_class(response, message)
        elif exception_class == UnexpectedAlertPresentException:
            alert_text = None
            if 'data' in value:
                alert_text = value['data'].get('text')
            elif 'alert' in value:
                alert_text = value['alert'].get('text')
            raise exception_class(message, screen, stacktrace, alert_text)
>       raise exception_class(message, screen, stacktrace)
E       selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"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 = <tests.ui_tests.pps_cps.pps.Search.test_save_search.TestPPS object at 0x7f00def35400>
    @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 = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x7f00de7c1670>
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', '<anonymous>')
                    if line:
                        file = "%s:%s" % (file, line)
                    meth = self._value_or_default(frame, 'methodName', '<anonymous>')
                    if 'className' in frame:
                        meth = "%s.%s" % (frame['className'], meth)
                    msg = "    at %s (%s)"
                    msg = msg % (meth, file)
                    stacktrace.append(msg)
            except TypeError:
                pass
        if exception_class == ErrorInResponseException:
            raise exception_class(response, message)
        elif exception_class == UnexpectedAlertPresentException:
            alert_text = None
            if 'data' in value:
                alert_text = value['data'].get('text')
            elif 'alert' in value:
                alert_text = value['alert'].get('text')
            raise exception_class(message, screen, stacktrace, alert_text)
>       raise exception_class(message, screen, stacktrace)
E       selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"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 = <tests.ui_tests.pps_cps.pps.Search.test_save_search.TestPPS object at 0x7f00def35580>
    @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 = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x7f00de7a5a30>
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', '<anonymous>')
                    if line:
                        file = "%s:%s" % (file, line)
                    meth = self._value_or_default(frame, 'methodName', '<anonymous>')
                    if 'className' in frame:
                        meth = "%s.%s" % (frame['className'], meth)
                    msg = "    at %s (%s)"
                    msg = msg % (meth, file)
                    stacktrace.append(msg)
            except TypeError:
                pass
        if exception_class == ErrorInResponseException:
            raise exception_class(response, message)
        elif exception_class == UnexpectedAlertPresentException:
            alert_text = None
            if 'data' in value:
                alert_text = value['data'].get('text')
            elif 'alert' in value:
                alert_text = value['alert'].get('text')
            raise exception_class(message, screen, stacktrace, alert_text)
>       raise exception_class(message, screen, stacktrace)
E       selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"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 = <tests.ui_tests.pps_cps.pps.Search.test_save_search.TestPPS object at 0x7f00def35700>
    @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 = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x7f00de625a00>
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', '<anonymous>')
                    if line:
                        file = "%s:%s" % (file, line)
                    meth = self._value_or_default(frame, 'methodName', '<anonymous>')
                    if 'className' in frame:
                        meth = "%s.%s" % (frame['className'], meth)
                    msg = "    at %s (%s)"
                    msg = msg % (meth, file)
                    stacktrace.append(msg)
            except TypeError:
                pass
        if exception_class == ErrorInResponseException:
            raise exception_class(response, message)
        elif exception_class == UnexpectedAlertPresentException:
            alert_text = None
            if 'data' in value:
                alert_text = value['data'].get('text')
            elif 'alert' in value:
                alert_text = value['alert'].get('text')
            raise exception_class(message, screen, stacktrace, alert_text)
>       raise exception_class(message, screen, stacktrace)
E       selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"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 = <tests.ui_tests.pps_cps.pps.Search.test_save_search.TestPPS object at 0x7f00def35880>
    @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 = <selenium.webdriver.support.wait.WebDriverWait (session="daa2dc86c47c0d70b536fb01b313ca4e")>
method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x7f00de6b0370>
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) ======
Filename: None. Size: 102kb. View raw, , hex, or download this file.

This paste expires on 2024-11-20 19:06:11.662221. Pasted through deprecated-web.