============================= 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/bds plugins: xdist-3.0.2, rerunfailures-10.2, allure-pytest-2.8.34 collecting ... collected 64 items tests/ui_tests/bds/test_download.py::TestDownloadFilesResults::test_download_files[chrome-no results.txt-True] PASSED tests/ui_tests/bds/test_download.py::TestDownloadFilesResults::test_download_files[chrome-valid for emails.csv-None] PASSED tests/ui_tests/bds/test_filters_for_emails.py::TestEmailsFilters::test_search_emails_without_checkbox[chrome] PASSED tests/ui_tests/bds/test_filters_for_emails.py::TestEmailsFilters::test_search_emails_generic[chrome-None-None] PASSED tests/ui_tests/bds/test_filters_for_emails.py::TestEmailsFilters::test_search_emails_generic[chrome-True-True] PASSED tests/ui_tests/bds/test_filters_for_prospects.py::TestProspectFilters::test_find_prospect_by_position_exact[chrome-position filter.csv-Project Manager-None] RERUN tests/ui_tests/bds/test_filters_for_prospects.py::TestProspectFilters::test_find_prospect_by_position_exact[chrome-position filter.csv-Project Manager-None] RERUN tests/ui_tests/bds/test_filters_for_prospects.py::TestProspectFilters::test_find_prospect_by_position_exact[chrome-position filter.csv-Project Manager-None] FAILED tests/ui_tests/bds/test_filters_for_prospects.py::TestProspectFilters::test_find_prospect_by_position_exact[chrome-position filter.csv-manager-True] RERUN tests/ui_tests/bds/test_filters_for_prospects.py::TestProspectFilters::test_find_prospect_by_position_exact[chrome-position filter.csv-manager-True] RERUN tests/ui_tests/bds/test_filters_for_prospects.py::TestProspectFilters::test_find_prospect_by_position_exact[chrome-position filter.csv-manager-True] FAILED tests/ui_tests/bds/test_filters_for_prospects.py::TestProspectFilters::test_find_prospect_by_position_contains_company_names[chrome-apple company names.txt-Project Manager-None] RERUN tests/ui_tests/bds/test_filters_for_prospects.py::TestProspectFilters::test_find_prospect_by_position_contains_company_names[chrome-apple company names.txt-Project Manager-None] RERUN tests/ui_tests/bds/test_filters_for_prospects.py::TestProspectFilters::test_find_prospect_by_position_contains_company_names[chrome-apple company names.txt-Project Manager-None] FAILED tests/ui_tests/bds/test_filters_for_prospects.py::TestProspectFilters::test_find_prospect_by_position_contains_company_names[chrome-apple company names.txt-hr-True] RERUN tests/ui_tests/bds/test_filters_for_prospects.py::TestProspectFilters::test_find_prospect_by_position_contains_company_names[chrome-apple company names.txt-hr-True] RERUN tests/ui_tests/bds/test_filters_for_prospects.py::TestProspectFilters::test_find_prospect_by_position_contains_company_names[chrome-apple company names.txt-hr-True] FAILED tests/ui_tests/bds/test_filters_for_prospects.py::TestProspectFilters::test_find_prospect_by_position_exact_company_list[chrome-test prospects-Project Manager] RERUN tests/ui_tests/bds/test_filters_for_prospects.py::TestProspectFilters::test_find_prospect_by_position_exact_company_list[chrome-test prospects-Project Manager] RERUN tests/ui_tests/bds/test_filters_for_prospects.py::TestProspectFilters::test_find_prospect_by_position_exact_company_list[chrome-test prospects-Project Manager] FAILED tests/ui_tests/bds/test_filters_for_prospects.py::TestProspectFilters::test_save_more_5_filters[chrome] PASSED tests/ui_tests/bds/test_filters_for_prospects.py::TestProspectFilters::test_save_more_50_positions_delete_filter[chrome] PASSED tests/ui_tests/bds/test_filters_for_prospects.py::TestProspectFilters::test_find_prospect_by_country[chrome-test prospects-United States] RERUN tests/ui_tests/bds/test_filters_for_prospects.py::TestProspectFilters::test_find_prospect_by_country[chrome-test prospects-United States] RERUN tests/ui_tests/bds/test_filters_for_prospects.py::TestProspectFilters::test_find_prospect_by_country[chrome-test prospects-United States] FAILED tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_free_user_upload_file[chrome-None-None-rk-00-00-2023-0@snov.io] RERUN tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_free_user_upload_file[chrome-None-None-rk-00-00-2023-0@snov.io] RERUN tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_free_user_upload_file[chrome-None-None-rk-00-00-2023-0@snov.io] FAILED tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_free_user_upload_file[chrome-True-None-rk-00-00-2023-0@snov.io] RERUN tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_free_user_upload_file[chrome-True-None-rk-00-00-2023-0@snov.io] RERUN tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_free_user_upload_file[chrome-True-None-rk-00-00-2023-0@snov.io] FAILED tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_free_user_upload_file[chrome-True-True-rk-00-00-2023-0@snov.io] RERUN tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_free_user_upload_file[chrome-True-True-rk-00-00-2023-0@snov.io] RERUN tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_free_user_upload_file[chrome-True-True-rk-00-00-2023-0@snov.io] FAILED tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_free_user_upload_file[chrome-None-None-rk-00-00-2023-01@snov.io] RERUN tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_free_user_upload_file[chrome-None-None-rk-00-00-2023-01@snov.io] RERUN tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_free_user_upload_file[chrome-None-None-rk-00-00-2023-01@snov.io] FAILED tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_free_user_upload_file[chrome-True-None-rk-00-00-2023-02@snov.io] RERUN tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_free_user_upload_file[chrome-True-None-rk-00-00-2023-02@snov.io] RERUN tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_free_user_upload_file[chrome-True-None-rk-00-00-2023-02@snov.io] FAILED tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_free_user_upload_file[chrome-True-True-rk-00-00-2023-02@snov.io] RERUN tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_free_user_upload_file[chrome-True-True-rk-00-00-2023-02@snov.io] RERUN tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_free_user_upload_file[chrome-True-True-rk-00-00-2023-02@snov.io] FAILED tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_limit_active_tasks[chrome-True-rk-10-10-2023-20@snov.io] RERUN tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_limit_active_tasks[chrome-True-rk-10-10-2023-20@snov.io] RERUN tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_limit_active_tasks[chrome-True-rk-10-10-2023-20@snov.io] FAILED tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_cancel_add_to_list[chrome] PASSED tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_watch_tutorial_see_guide[chrome] PASSED tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_invisible_separators[chrome-valid txt.txt] PASSED tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_invisible_separators[chrome-valid xls.xls] PASSED tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_invisible_separators[chrome-valid xlsx.xlsx] PASSED tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_find_by_file_several_columns[chrome-True] PASSED tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_find_by_file_several_columns[chrome-False] PASSED tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_single_line_error[chrome] PASSED tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_change_file[chrome] PASSED tests/ui_tests/bds/test_prospects_search_by_company_lists.py::TestCompanyLists::test_find_prospect_by_company_list[chrome-apple-0-None] PASSED tests/ui_tests/bds/test_prospects_search_by_company_lists.py::TestCompanyLists::test_find_prospect_by_company_list[chrome-apple-201-None] PASSED tests/ui_tests/bds/test_prospects_search_by_company_lists.py::TestCompanyLists::test_find_prospect_by_company_list[chrome-test prospects-5-None] PASSED tests/ui_tests/bds/test_prospects_search_by_company_lists.py::TestCompanyLists::test_find_prospect_by_company_list[chrome-test prospects-3-True] PASSED tests/ui_tests/bds/test_prospects_search_by_company_lists.py::TestCompanyLists::test_find_prospect_by_company_list[chrome-test prospects-0-True] PASSED tests/ui_tests/bds/test_prospects_search_by_company_lists.py::TestCompanyLists::test_find_prospect_by_company_list[chrome-apple-101-True] PASSED tests/ui_tests/bds/test_prospects_search_by_company_lists.py::TestCompanyLists::test_empty_list[chrome-None] PASSED tests/ui_tests/bds/test_prospects_search_by_company_lists.py::TestCompanyLists::test_empty_list[chrome-True] PASSED tests/ui_tests/bds/test_prospects_search_by_company_lists.py::TestCompanyLists::test_find_by_tech_list[chrome-None] PASSED tests/ui_tests/bds/test_prospects_search_by_company_lists.py::TestCompanyLists::test_find_by_tech_list[chrome-True] PASSED tests/ui_tests/bds/test_results.py::TestResults::test_delete_previous_search[chrome] PASSED tests/ui_tests/bds/test_results.py::TestResults::test_search_no_results[chrome-None-None] PASSED tests/ui_tests/bds/test_results.py::TestResults::test_search_no_results[chrome-True-True] PASSED tests/ui_tests/bds/test_results.py::TestResults::test_search_no_results[chrome-None-True] PASSED tests/ui_tests/bds/test_results.py::TestResults::test_search_no_results[chrome-True-None] RERUN tests/ui_tests/bds/test_results.py::TestResults::test_search_no_results[chrome-True-None] RERUN tests/ui_tests/bds/test_results.py::TestResults::test_search_no_results[chrome-True-None] PASSED tests/ui_tests/bds/test_results.py::TestResults::test_credits_prospects[chrome-t1.txt-None] RERUN tests/ui_tests/bds/test_results.py::TestResults::test_credits_prospects[chrome-t1.txt-None] RERUN tests/ui_tests/bds/test_results.py::TestResults::test_credits_prospects[chrome-t1.txt-None] FAILED tests/ui_tests/bds/test_results.py::TestResults::test_credits_prospects[chrome-t1.txt-True] RERUN tests/ui_tests/bds/test_results.py::TestResults::test_credits_prospects[chrome-t1.txt-True] RERUN tests/ui_tests/bds/test_results.py::TestResults::test_credits_prospects[chrome-t1.txt-True] FAILED tests/ui_tests/bds/test_results.py::TestResults::test_inf_credits[chrome-None] RERUN tests/ui_tests/bds/test_results.py::TestResults::test_inf_credits[chrome-None] RERUN tests/ui_tests/bds/test_results.py::TestResults::test_inf_credits[chrome-None] FAILED tests/ui_tests/bds/test_results.py::TestResults::test_inf_credits[chrome-True] RERUN tests/ui_tests/bds/test_results.py::TestResults::test_inf_credits[chrome-True] RERUN tests/ui_tests/bds/test_results.py::TestResults::test_inf_credits[chrome-True] FAILED tests/ui_tests/bds/test_search_emails_by_valid_file.py::TestEmails::test_find_emails_from_valid_file_format[chrome-valid for emails.csv-None-101] PASSED tests/ui_tests/bds/test_search_emails_by_valid_file.py::TestEmails::test_find_emails_from_valid_file_format[chrome-valid for emails.csv-None-50] PASSED tests/ui_tests/bds/test_search_emails_by_valid_file.py::TestEmails::test_find_emails_from_valid_file_format[chrome-valid for emails companies.csv-True-0] PASSED tests/ui_tests/bds/test_search_emails_by_valid_file.py::TestEmails::test_find_emails_from_valid_file_by_invalid_number_per_domain[chrome] PASSED tests/ui_tests/bds/test_search_propsects_by_valid_file.py::TestProspects::test_find_prospect_from_valid_file_format[chrome-valid emty lines and data.csv] PASSED tests/ui_tests/bds/test_search_propsects_by_valid_file.py::TestProspects::test_find_prospect_from_valid_file_format[chrome-valid csv.csv] PASSED tests/ui_tests/bds/test_search_propsects_by_valid_file.py::TestProspects::test_find_prospect_from_valid_file_format[chrome-valid txt.txt] PASSED tests/ui_tests/bds/test_search_propsects_by_valid_file.py::TestProspects::test_find_prospect_from_valid_file_format[chrome-valid xls.xls] PASSED tests/ui_tests/bds/test_search_propsects_by_valid_file.py::TestProspects::test_find_prospect_from_valid_file_format[chrome-valid xlsx.xlsx] PASSED tests/ui_tests/bds/test_search_propsects_by_valid_file.py::TestProspects::test_search_by_incorrect_count_results_per_domain[chrome-0-1] PASSED tests/ui_tests/bds/test_search_propsects_by_valid_file.py::TestProspects::test_search_by_incorrect_count_results_per_domain[chrome-10-10] PASSED tests/ui_tests/bds/test_search_propsects_by_valid_file.py::TestProspects::test_search_by_incorrect_count_results_per_domain[chrome-201-200] PASSED tests/ui_tests/bds/test_upload_invalid_files.py::TestInvalidFiles::test_invalid_files_upload[chrome-empty_file.txt-It looks like you're trying to upload an empty file. Please pick another file to continue.] PASSED tests/ui_tests/bds/test_upload_invalid_files.py::TestInvalidFiles::test_invalid_files_upload[chrome-Encoding_UTF_16_LE.txt-Valid encodings: ascii, utf-8, iso-8859-1] PASSED tests/ui_tests/bds/test_upload_invalid_files.py::TestInvalidFiles::test_invalid_files_upload[chrome-15MB.csv-Maximum allowed size for uploaded files 10 mb] PASSED tests/ui_tests/bds/test_upload_invalid_files.py::TestInvalidFiles::test_invalid_files_upload[chrome-bulk.png-File type must be CSV, XLS, XLSX or TXT] PASSED =================================== FAILURES =================================== _ TestProspectFilters.test_find_prospect_by_position_exact[chrome-position filter.csv-Project Manager-None] _ self = file_name = 'position filter.csv', position = 'Project Manager', contains = None @pytest.mark.parametrize('file_name, position, contains', [ ( TestDataBDS.FILE_PROSPECTS, 'Project Manager', None ), ( TestDataBDS.FILE_PROSPECTS, 'manager', True ), ]) @allure.title("Find prospect by position exact") @allure.severity(Severity.BLOCKER) def test_find_prospect_by_position_exact(self, file_name, position, contains): self.bds_page = BDS(self.driver) self.p_page = ProspectsPage(self.driver) self.bds_page.login_and_open_bulk_page(TestDataBDS.USER_NAME_BULK, TestDataGeneral.PASSWORD_GENERAL_NEW) self.bds_page.upload_file(file_name) self.bds_page.enter_position_manually(position) if contains: self.bds_page.choose_radio_option(TestDataBDS.RADIO_POSITION_CONTAINS) self.bds_page.click_bds_checkbox(TestDataBDS.CB_ADD_SAME_PROSPECTS) self.bds_page.click_start_search_and_wait_results() results = self.bds_page.get_results_count() list_id = self.bds_page.add_to_list(True) assert int(self.p_page.get_list_counter()[0]) == results[2] assert list_id == self.p_page.get_active_list_id() self.p_page.check_position_in_list(position) > self.p_page.delete_first_list_prospects() tests/ui_tests/bds/test_filters_for_prospects.py:47: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/prospects_page.py:56: in delete_first_list_prospects self.do_click(self.DOTS_ICON) tests/scr/pages/base_page.py:15: in do_click WebDriverWait(self.driver, 20).until(EC.visibility_of_element_located(by_locator)).click() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = method = message = '' def until(self, method, message=''): """Calls the method provided with the driver as an argument until the \ return value is not False.""" screen = None stacktrace = None end_time = time.time() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.time() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: /usr/local/lib/python3.9/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException _ TestProspectFilters.test_find_prospect_by_position_exact[chrome-position filter.csv-manager-True] _ self = file_name = 'position filter.csv', position = 'manager', contains = True @pytest.mark.parametrize('file_name, position, contains', [ ( TestDataBDS.FILE_PROSPECTS, 'Project Manager', None ), ( TestDataBDS.FILE_PROSPECTS, 'manager', True ), ]) @allure.title("Find prospect by position exact") @allure.severity(Severity.BLOCKER) def test_find_prospect_by_position_exact(self, file_name, position, contains): self.bds_page = BDS(self.driver) self.p_page = ProspectsPage(self.driver) self.bds_page.login_and_open_bulk_page(TestDataBDS.USER_NAME_BULK, TestDataGeneral.PASSWORD_GENERAL_NEW) self.bds_page.upload_file(file_name) self.bds_page.enter_position_manually(position) if contains: self.bds_page.choose_radio_option(TestDataBDS.RADIO_POSITION_CONTAINS) self.bds_page.click_bds_checkbox(TestDataBDS.CB_ADD_SAME_PROSPECTS) self.bds_page.click_start_search_and_wait_results() results = self.bds_page.get_results_count() list_id = self.bds_page.add_to_list(True) assert int(self.p_page.get_list_counter()[0]) == results[2] assert list_id == self.p_page.get_active_list_id() self.p_page.check_position_in_list(position) > self.p_page.delete_first_list_prospects() tests/ui_tests/bds/test_filters_for_prospects.py:47: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/prospects_page.py:56: in delete_first_list_prospects self.do_click(self.DOTS_ICON) tests/scr/pages/base_page.py:15: in do_click WebDriverWait(self.driver, 20).until(EC.visibility_of_element_located(by_locator)).click() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = method = message = '' def until(self, method, message=''): """Calls the method provided with the driver as an argument until the \ return value is not False.""" screen = None stacktrace = None end_time = time.time() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.time() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: /usr/local/lib/python3.9/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException _ TestProspectFilters.test_find_prospect_by_position_contains_company_names[chrome-apple company names.txt-Project Manager-None] _ self = file_name = 'apple company names.txt', position = 'Project Manager' contains = None @pytest.mark.parametrize('file_name, position, contains', [ ( 'apple company names.txt', 'Project Manager', None ), ( 'apple company names.txt', 'hr', True ) ]) @allure.title("Find prospect by position contains") @allure.severity(Severity.BLOCKER) def test_find_prospect_by_position_contains_company_names(self, file_name, position, contains): self.bds_page = BDS(self.driver) self.p_page = ProspectsPage(self.driver) self.bds_page.login_and_open_bulk_page(TestDataBDS.USER_NAME_BULK, TestDataGeneral.PASSWORD_GENERAL_NEW) self.bds_page.choose_radio_option(TestDataBDS.RADIO_COMPANY_NAMES) self.bds_page.upload_file(file_name) > self.bds_page.click_bds_checkbox(TestDataBDS.CB_ADD_SAME_PROSPECTS) tests/ui_tests/bds/test_filters_for_prospects.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/bds_page.py:281: in click_bds_checkbox self.do_click(locator) tests/scr/pages/base_page.py:15: in do_click WebDriverWait(self.driver, 20).until(EC.visibility_of_element_located(by_locator)).click() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = method = message = '' def until(self, method, message=''): """Calls the method provided with the driver as an argument until the \ return value is not False.""" screen = None stacktrace = None end_time = time.time() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.time() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: /usr/local/lib/python3.9/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException _ TestProspectFilters.test_find_prospect_by_position_contains_company_names[chrome-apple company names.txt-hr-True] _ self = file_name = 'apple company names.txt', position = 'hr', contains = True @pytest.mark.parametrize('file_name, position, contains', [ ( 'apple company names.txt', 'Project Manager', None ), ( 'apple company names.txt', 'hr', True ) ]) @allure.title("Find prospect by position contains") @allure.severity(Severity.BLOCKER) def test_find_prospect_by_position_contains_company_names(self, file_name, position, contains): self.bds_page = BDS(self.driver) self.p_page = ProspectsPage(self.driver) self.bds_page.login_and_open_bulk_page(TestDataBDS.USER_NAME_BULK, TestDataGeneral.PASSWORD_GENERAL_NEW) self.bds_page.choose_radio_option(TestDataBDS.RADIO_COMPANY_NAMES) self.bds_page.upload_file(file_name) > self.bds_page.click_bds_checkbox(TestDataBDS.CB_ADD_SAME_PROSPECTS) tests/ui_tests/bds/test_filters_for_prospects.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/bds_page.py:281: in click_bds_checkbox self.do_click(locator) tests/scr/pages/base_page.py:15: in do_click WebDriverWait(self.driver, 20).until(EC.visibility_of_element_located(by_locator)).click() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = method = message = '' def until(self, method, message=''): """Calls the method provided with the driver as an argument until the \ return value is not False.""" screen = None stacktrace = None end_time = time.time() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.time() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: /usr/local/lib/python3.9/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException _ TestProspectFilters.test_find_prospect_by_position_exact_company_list[chrome-test prospects-Project Manager] _ self = list_name = 'test prospects', position = 'Project Manager' @pytest.mark.parametrize('list_name, position', [ ( 'test prospects', 'Project Manager', ) ]) @allure.title("Find prospect by position exact by company list") @allure.severity(Severity.BLOCKER) def test_find_prospect_by_position_exact_company_list(self, list_name, position): self.bds_page = BDS(self.driver) self.p_page = ProspectsPage(self.driver) self.bds_page.login_and_open_bulk_page(TestDataBDS.USER_NAME_BULK, TestDataGeneral.PASSWORD_GENERAL_NEW) self.bds_page.choose_upload_type(TestDataBDS.UPLOAD_TYPE_COMPANIES_LIST) self.bds_page.select_company_list(list_name) self.bds_page.click_bds_checkbox(TestDataBDS.CB_ADD_SAME_PROSPECTS) self.bds_page.enter_emails_per_domain(TestDataBDS.MAX_VALUE_PROSPECTS) self.bds_page.enter_position_manually(position) self.bds_page.click_start_search_and_wait_results() results = self.bds_page.get_results_count() assert results[2] > 1 list_id = self.bds_page.add_to_list(True) assert int(self.p_page.get_list_counter()[0]) == results[2] assert list_id == self.p_page.get_active_list_id() self.p_page.check_position_in_list(position) > self.p_page.delete_first_list_prospects() tests/ui_tests/bds/test_filters_for_prospects.py:109: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/prospects_page.py:56: in delete_first_list_prospects self.do_click(self.DOTS_ICON) tests/scr/pages/base_page.py:15: in do_click WebDriverWait(self.driver, 20).until(EC.visibility_of_element_located(by_locator)).click() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = method = message = '' def until(self, method, message=''): """Calls the method provided with the driver as an argument until the \ return value is not False.""" screen = None stacktrace = None end_time = time.time() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.time() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: /usr/local/lib/python3.9/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException _ TestProspectFilters.test_find_prospect_by_country[chrome-test prospects-United States] _ self = list_name = 'test prospects', country = 'United States' @pytest.mark.parametrize('list_name, country', [ ( 'test prospects', 'United States', ) ]) @allure.title("Find prospect by country") @allure.severity(Severity.BLOCKER) def test_find_prospect_by_country(self, list_name, country): self.bds_page = BDS(self.driver) self.p_page = ProspectsPage(self.driver) self.bds_page.login_and_open_bulk_page(TestDataBDS.USER_NAME_BULK, TestDataGeneral.PASSWORD_GENERAL_NEW) time.sleep(3) self.bds_page.choose_upload_type(TestDataBDS.UPLOAD_TYPE_COMPANIES_LIST) self.bds_page.select_company_list(list_name) self.bds_page.click_bds_checkbox(TestDataBDS.CB_ADD_SAME_PROSPECTS) self.bds_page.enter_emails_per_domain(TestDataBDS.MAX_VALUE_PROSPECTS) self.bds_page.enter_country(country, country) self.bds_page.click_start_search_and_wait_results() results = self.bds_page.get_results_count() assert results[2] > 1 list_id = self.bds_page.add_to_list(True) assert int(self.p_page.get_list_counter()[0]) == results[2] assert list_id == self.p_page.get_active_list_id() for i in self.p_page.get_locations(): assert country in i > self.p_page.delete_first_list_prospects() tests/ui_tests/bds/test_filters_for_prospects.py:166: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/prospects_page.py:56: in delete_first_list_prospects self.do_click(self.DOTS_ICON) tests/scr/pages/base_page.py:15: in do_click WebDriverWait(self.driver, 20).until(EC.visibility_of_element_located(by_locator)).click() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = method = message = '' def until(self, method, message=''): """Calls the method provided with the driver as an argument until the \ return value is not False.""" screen = None stacktrace = None end_time = time.time() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.time() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: /usr/local/lib/python3.9/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException _ TestOtherCases.test_free_user_upload_file[chrome-None-None-rk-00-00-2023-0@snov.io] _ self = company_list = None, emails = None, user = 'rk-00-00-2023-0@snov.io' @pytest.mark.parametrize('company_list, emails, user', [ ( None, None, TestDataBDS.USER_NAME_BULK_FREE ), ( True, None, TestDataBDS.USER_NAME_BULK_FREE, ), ( True, True, TestDataBDS.USER_NAME_BULK_FREE ), ( None, None, TestDataBDS.USER_TEAM_LEAD_FREE ), ( True, None, TestDataBDS.USER_TEAM_MEMBER_FREE ), ( True, True, TestDataBDS.USER_TEAM_MEMBER_FREE ) ]) @allure.title("Try to search on free plan") @allure.severity(Severity.BLOCKER) def test_free_user_upload_file(self, company_list, emails, user): self.bds_page = BDS(self.driver) self.bds_page.login_and_open_bulk_page(user, TestDataGeneral.PASSWORD_GENERAL_NEW) self.bds_page.click_find_targeted_prospects() if company_list: self.bds_page.choose_upload_type(TestDataBDS.UPLOAD_TYPE_COMPANIES_LIST) self.bds_page.select_company_list() if emails: self.bds_page.choose_search_option(TestDataBDS.SEARCH_OPTION_EMAILS) self.bds_page.click_start_search_button() else: self.bds_page.click_choose_file_button() > self.bds_page.check_modal(TestDataBDS.FREE_PLAN_BULK_ERROR) tests/ui_tests/bds/test_other_options.py:61: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/bds_page.py:357: in check_modal self.wait_element(selector_error, TestDataGeneral.D_30) tests/scr/pages/base_page.py:58: in wait_element element = wait.until(EC.presence_of_element_located(by_locator)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = method = message = '' def until(self, method, message=''): """Calls the method provided with the driver as an argument until the \ return value is not False.""" screen = None stacktrace = None end_time = time.time() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.time() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: /usr/local/lib/python3.9/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException _ TestOtherCases.test_free_user_upload_file[chrome-True-None-rk-00-00-2023-0@snov.io] _ self = company_list = True, emails = None, user = 'rk-00-00-2023-0@snov.io' @pytest.mark.parametrize('company_list, emails, user', [ ( None, None, TestDataBDS.USER_NAME_BULK_FREE ), ( True, None, TestDataBDS.USER_NAME_BULK_FREE, ), ( True, True, TestDataBDS.USER_NAME_BULK_FREE ), ( None, None, TestDataBDS.USER_TEAM_LEAD_FREE ), ( True, None, TestDataBDS.USER_TEAM_MEMBER_FREE ), ( True, True, TestDataBDS.USER_TEAM_MEMBER_FREE ) ]) @allure.title("Try to search on free plan") @allure.severity(Severity.BLOCKER) def test_free_user_upload_file(self, company_list, emails, user): self.bds_page = BDS(self.driver) self.bds_page.login_and_open_bulk_page(user, TestDataGeneral.PASSWORD_GENERAL_NEW) self.bds_page.click_find_targeted_prospects() if company_list: self.bds_page.choose_upload_type(TestDataBDS.UPLOAD_TYPE_COMPANIES_LIST) self.bds_page.select_company_list() if emails: self.bds_page.choose_search_option(TestDataBDS.SEARCH_OPTION_EMAILS) self.bds_page.click_start_search_button() else: self.bds_page.click_choose_file_button() > self.bds_page.check_modal(TestDataBDS.FREE_PLAN_BULK_ERROR) tests/ui_tests/bds/test_other_options.py:61: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/bds_page.py:357: in check_modal self.wait_element(selector_error, TestDataGeneral.D_30) tests/scr/pages/base_page.py:58: in wait_element element = wait.until(EC.presence_of_element_located(by_locator)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = method = message = '' def until(self, method, message=''): """Calls the method provided with the driver as an argument until the \ return value is not False.""" screen = None stacktrace = None end_time = time.time() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.time() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: /usr/local/lib/python3.9/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException _ TestOtherCases.test_free_user_upload_file[chrome-True-True-rk-00-00-2023-0@snov.io] _ self = company_list = True, emails = True, user = 'rk-00-00-2023-0@snov.io' @pytest.mark.parametrize('company_list, emails, user', [ ( None, None, TestDataBDS.USER_NAME_BULK_FREE ), ( True, None, TestDataBDS.USER_NAME_BULK_FREE, ), ( True, True, TestDataBDS.USER_NAME_BULK_FREE ), ( None, None, TestDataBDS.USER_TEAM_LEAD_FREE ), ( True, None, TestDataBDS.USER_TEAM_MEMBER_FREE ), ( True, True, TestDataBDS.USER_TEAM_MEMBER_FREE ) ]) @allure.title("Try to search on free plan") @allure.severity(Severity.BLOCKER) def test_free_user_upload_file(self, company_list, emails, user): self.bds_page = BDS(self.driver) self.bds_page.login_and_open_bulk_page(user, TestDataGeneral.PASSWORD_GENERAL_NEW) self.bds_page.click_find_targeted_prospects() if company_list: self.bds_page.choose_upload_type(TestDataBDS.UPLOAD_TYPE_COMPANIES_LIST) self.bds_page.select_company_list() if emails: self.bds_page.choose_search_option(TestDataBDS.SEARCH_OPTION_EMAILS) self.bds_page.click_start_search_button() else: self.bds_page.click_choose_file_button() > self.bds_page.check_modal(TestDataBDS.FREE_PLAN_BULK_ERROR) tests/ui_tests/bds/test_other_options.py:61: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/bds_page.py:357: in check_modal self.wait_element(selector_error, TestDataGeneral.D_30) tests/scr/pages/base_page.py:58: in wait_element element = wait.until(EC.presence_of_element_located(by_locator)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = method = message = '' def until(self, method, message=''): """Calls the method provided with the driver as an argument until the \ return value is not False.""" screen = None stacktrace = None end_time = time.time() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.time() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: /usr/local/lib/python3.9/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException _ TestOtherCases.test_free_user_upload_file[chrome-None-None-rk-00-00-2023-01@snov.io] _ self = company_list = None, emails = None, user = 'rk-00-00-2023-01@snov.io' @pytest.mark.parametrize('company_list, emails, user', [ ( None, None, TestDataBDS.USER_NAME_BULK_FREE ), ( True, None, TestDataBDS.USER_NAME_BULK_FREE, ), ( True, True, TestDataBDS.USER_NAME_BULK_FREE ), ( None, None, TestDataBDS.USER_TEAM_LEAD_FREE ), ( True, None, TestDataBDS.USER_TEAM_MEMBER_FREE ), ( True, True, TestDataBDS.USER_TEAM_MEMBER_FREE ) ]) @allure.title("Try to search on free plan") @allure.severity(Severity.BLOCKER) def test_free_user_upload_file(self, company_list, emails, user): self.bds_page = BDS(self.driver) self.bds_page.login_and_open_bulk_page(user, TestDataGeneral.PASSWORD_GENERAL_NEW) self.bds_page.click_find_targeted_prospects() if company_list: self.bds_page.choose_upload_type(TestDataBDS.UPLOAD_TYPE_COMPANIES_LIST) self.bds_page.select_company_list() if emails: self.bds_page.choose_search_option(TestDataBDS.SEARCH_OPTION_EMAILS) self.bds_page.click_start_search_button() else: self.bds_page.click_choose_file_button() > self.bds_page.check_modal(TestDataBDS.FREE_PLAN_BULK_ERROR) tests/ui_tests/bds/test_other_options.py:61: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/bds_page.py:357: in check_modal self.wait_element(selector_error, TestDataGeneral.D_30) tests/scr/pages/base_page.py:58: in wait_element element = wait.until(EC.presence_of_element_located(by_locator)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = method = message = '' def until(self, method, message=''): """Calls the method provided with the driver as an argument until the \ return value is not False.""" screen = None stacktrace = None end_time = time.time() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.time() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: /usr/local/lib/python3.9/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException _ TestOtherCases.test_free_user_upload_file[chrome-True-None-rk-00-00-2023-02@snov.io] _ self = company_list = True, emails = None, user = 'rk-00-00-2023-02@snov.io' @pytest.mark.parametrize('company_list, emails, user', [ ( None, None, TestDataBDS.USER_NAME_BULK_FREE ), ( True, None, TestDataBDS.USER_NAME_BULK_FREE, ), ( True, True, TestDataBDS.USER_NAME_BULK_FREE ), ( None, None, TestDataBDS.USER_TEAM_LEAD_FREE ), ( True, None, TestDataBDS.USER_TEAM_MEMBER_FREE ), ( True, True, TestDataBDS.USER_TEAM_MEMBER_FREE ) ]) @allure.title("Try to search on free plan") @allure.severity(Severity.BLOCKER) def test_free_user_upload_file(self, company_list, emails, user): self.bds_page = BDS(self.driver) self.bds_page.login_and_open_bulk_page(user, TestDataGeneral.PASSWORD_GENERAL_NEW) self.bds_page.click_find_targeted_prospects() if company_list: self.bds_page.choose_upload_type(TestDataBDS.UPLOAD_TYPE_COMPANIES_LIST) self.bds_page.select_company_list() if emails: self.bds_page.choose_search_option(TestDataBDS.SEARCH_OPTION_EMAILS) > self.bds_page.click_start_search_button() tests/ui_tests/bds/test_other_options.py:58: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/bds_page.py:179: in click_start_search_button self.do_click(self.START_SEARCH_BUTTON) tests/scr/pages/base_page.py:15: in do_click WebDriverWait(self.driver, 20).until(EC.visibility_of_element_located(by_locator)).click() /usr/local/lib/python3.9/dist-packages/selenium/webdriver/remote/webelement.py:80: in click self._execute(Command.CLICK_ELEMENT) /usr/local/lib/python3.9/dist-packages/selenium/webdriver/remote/webelement.py:633: in _execute return self._parent.execute(command, params) /usr/local/lib/python3.9/dist-packages/selenium/webdriver/remote/webdriver.py:321: in execute self.error_handler.check_response(response) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = response = {'status': 400, 'value': '{"value":{"error":"element click intercepted","message":"element click intercepted: Element ...wn>\\n#20 0x555fc4977847 \\u003Cunknown>\\n#21 0x555fc4987243 \\u003Cunknown>\\n#22 0x7f4d9b70c6db start_thread\\n"}}'} def check_response(self, response): """ Checks that a JSON response from the WebDriver does not have an error. :Args: - response - The JSON response from the WebDriver server as a dictionary object. :Raises: If the response contains an error message. """ status = response.get('status', None) if status is None or status == ErrorCode.SUCCESS: return value = None message = response.get("message", "") screen = response.get("screen", "") stacktrace = None if isinstance(status, int): value_json = response.get('value', None) if value_json and isinstance(value_json, basestring): import json try: value = json.loads(value_json) if len(value.keys()) == 1: value = value['value'] status = value.get('error', None) if status is None: status = value["status"] message = value["value"] if not isinstance(message, basestring): value = message message = message.get('message') else: message = value.get('message', None) except ValueError: pass exception_class = ErrorInResponseException if status in ErrorCode.NO_SUCH_ELEMENT: exception_class = NoSuchElementException elif status in ErrorCode.NO_SUCH_FRAME: exception_class = NoSuchFrameException elif status in ErrorCode.NO_SUCH_WINDOW: exception_class = NoSuchWindowException elif status in ErrorCode.STALE_ELEMENT_REFERENCE: exception_class = StaleElementReferenceException elif status in ErrorCode.ELEMENT_NOT_VISIBLE: exception_class = ElementNotVisibleException elif status in ErrorCode.INVALID_ELEMENT_STATE: exception_class = InvalidElementStateException elif status in ErrorCode.INVALID_SELECTOR \ or status in ErrorCode.INVALID_XPATH_SELECTOR \ or status in ErrorCode.INVALID_XPATH_SELECTOR_RETURN_TYPER: exception_class = InvalidSelectorException elif status in ErrorCode.ELEMENT_IS_NOT_SELECTABLE: exception_class = ElementNotSelectableException elif status in ErrorCode.ELEMENT_NOT_INTERACTABLE: exception_class = ElementNotInteractableException elif status in ErrorCode.INVALID_COOKIE_DOMAIN: exception_class = InvalidCookieDomainException elif status in ErrorCode.UNABLE_TO_SET_COOKIE: exception_class = UnableToSetCookieException elif status in ErrorCode.TIMEOUT: exception_class = TimeoutException elif status in ErrorCode.SCRIPT_TIMEOUT: exception_class = TimeoutException elif status in ErrorCode.UNKNOWN_ERROR: exception_class = WebDriverException elif status in ErrorCode.UNEXPECTED_ALERT_OPEN: exception_class = UnexpectedAlertPresentException elif status in ErrorCode.NO_ALERT_OPEN: exception_class = NoAlertPresentException elif status in ErrorCode.IME_NOT_AVAILABLE: exception_class = ImeNotAvailableException elif status in ErrorCode.IME_ENGINE_ACTIVATION_FAILED: exception_class = ImeActivationFailedException elif status in ErrorCode.MOVE_TARGET_OUT_OF_BOUNDS: exception_class = MoveTargetOutOfBoundsException elif status in ErrorCode.JAVASCRIPT_ERROR: exception_class = JavascriptException elif status in ErrorCode.SESSION_NOT_CREATED: exception_class = SessionNotCreatedException elif status in ErrorCode.INVALID_ARGUMENT: exception_class = InvalidArgumentException elif status in ErrorCode.NO_SUCH_COOKIE: exception_class = NoSuchCookieException elif status in ErrorCode.UNABLE_TO_CAPTURE_SCREEN: exception_class = ScreenshotException elif status in ErrorCode.ELEMENT_CLICK_INTERCEPTED: exception_class = ElementClickInterceptedException elif status in ErrorCode.INSECURE_CERTIFICATE: exception_class = InsecureCertificateException elif status in ErrorCode.INVALID_COORDINATES: exception_class = InvalidCoordinatesException elif status in ErrorCode.INVALID_SESSION_ID: exception_class = InvalidSessionIdException elif status in ErrorCode.UNKNOWN_METHOD: exception_class = UnknownMethodException else: exception_class = WebDriverException if value == '' or value is None: value = response['value'] if isinstance(value, basestring): if exception_class == ErrorInResponseException: raise exception_class(response, value) raise exception_class(value) if message == "" and 'message' in value: message = value['message'] screen = None if 'screen' in value: screen = value['screen'] stacktrace = None if 'stackTrace' in value and value['stackTrace']: stacktrace = [] try: for frame in value['stackTrace']: line = self._value_or_default(frame, 'lineNumber', '') file = self._value_or_default(frame, 'fileName', '') if line: file = "%s:%s" % (file, line) meth = self._value_or_default(frame, 'methodName', '') if 'className' in frame: meth = "%s.%s" % (frame['className'], meth) msg = " at %s (%s)" msg = msg % (meth, file) stacktrace.append(msg) except TypeError: pass if exception_class == ErrorInResponseException: raise exception_class(response, message) elif exception_class == UnexpectedAlertPresentException: alert_text = None if 'data' in value: alert_text = value['data'].get('text') elif 'alert' in value: alert_text = value['alert'].get('text') raise exception_class(message, screen, stacktrace, alert_text) > raise exception_class(message, screen, stacktrace) E selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element is not clickable at point (607, 849). Other element would receive the click:
...
E (Session info: headless chrome=114.0.5735.133) /usr/local/lib/python3.9/dist-packages/selenium/webdriver/remote/errorhandler.py:242: ElementClickInterceptedException _ TestOtherCases.test_free_user_upload_file[chrome-True-True-rk-00-00-2023-02@snov.io] _ self = company_list = True, emails = True, user = 'rk-00-00-2023-02@snov.io' @pytest.mark.parametrize('company_list, emails, user', [ ( None, None, TestDataBDS.USER_NAME_BULK_FREE ), ( True, None, TestDataBDS.USER_NAME_BULK_FREE, ), ( True, True, TestDataBDS.USER_NAME_BULK_FREE ), ( None, None, TestDataBDS.USER_TEAM_LEAD_FREE ), ( True, None, TestDataBDS.USER_TEAM_MEMBER_FREE ), ( True, True, TestDataBDS.USER_TEAM_MEMBER_FREE ) ]) @allure.title("Try to search on free plan") @allure.severity(Severity.BLOCKER) def test_free_user_upload_file(self, company_list, emails, user): self.bds_page = BDS(self.driver) self.bds_page.login_and_open_bulk_page(user, TestDataGeneral.PASSWORD_GENERAL_NEW) self.bds_page.click_find_targeted_prospects() if company_list: self.bds_page.choose_upload_type(TestDataBDS.UPLOAD_TYPE_COMPANIES_LIST) self.bds_page.select_company_list() if emails: self.bds_page.choose_search_option(TestDataBDS.SEARCH_OPTION_EMAILS) self.bds_page.click_start_search_button() else: self.bds_page.click_choose_file_button() > self.bds_page.check_modal(TestDataBDS.FREE_PLAN_BULK_ERROR) tests/ui_tests/bds/test_other_options.py:61: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/bds_page.py:357: in check_modal self.wait_element(selector_error, TestDataGeneral.D_30) tests/scr/pages/base_page.py:58: in wait_element element = wait.until(EC.presence_of_element_located(by_locator)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = method = message = '' def until(self, method, message=''): """Calls the method provided with the driver as an argument until the \ return value is not False.""" screen = None stacktrace = None end_time = time.time() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.time() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: /usr/local/lib/python3.9/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException _ TestOtherCases.test_limit_active_tasks[chrome-True-rk-10-10-2023-20@snov.io] _ self = company_list = True, user = 'rk-10-10-2023-20@snov.io' @pytest.mark.parametrize('company_list, user', [ ( True, TestDataBDS.USER_CHECK_2469 ) ]) @allure.title("Limit active tasks") @allure.severity(Severity.BLOCKER) def test_limit_active_tasks(self, company_list, user): self.bds_page = BDS(self.driver) self.login_page = LoginPage(self.driver) self.b = BasePage(self.driver) self.login_page.login_to_snovio(user, TestDataGeneral.PASSWORD_GENERAL_NEW) for i in range(6): self.bds_page.open_bulk_page() if company_list: self.bds_page.choose_upload_type(TestDataBDS.UPLOAD_TYPE_COMPANIES_LIST) self.bds_page.select_company_list() self.bds_page.choose_search_option(TestDataBDS.SEARCH_OPTION_EMAILS) else: self.bds_page.choose_file('email_domain22k.csv') self.bds_page.enter_emails_per_domain(10) if i == 5: break self.bds_page.open_new_tab(i) for i in range(5): self.b.switch_tab(i) time.sleep(1) self.bds_page.click_start_search_button() time.sleep(1) self.b.switch_tab(5) self.bds_page.click_start_search_button() > self.bds_page.check_modal(TestDataBDS.FIVE_ACTIVE_TASKS_ERROR) tests/ui_tests/bds/test_other_options.py:97: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/bds_page.py:357: in check_modal self.wait_element(selector_error, TestDataGeneral.D_30) tests/scr/pages/base_page.py:58: in wait_element element = wait.until(EC.presence_of_element_located(by_locator)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = method = message = '' def until(self, method, message=''): """Calls the method provided with the driver as an argument until the \ return value is not False.""" screen = None stacktrace = None end_time = time.time() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.time() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: /usr/local/lib/python3.9/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException ____________ TestResults.test_credits_prospects[chrome-t1.txt-None] ____________ self = file_name = 't1.txt', emails = None @pytest.mark.parametrize('file_name, emails', [ ( 't1.txt', None ), ( 't1.txt', True ) ]) @allure.title("Check of the credits") @allure.severity(Severity.BLOCKER) def test_credits_prospects(self, file_name, emails): self.bds_page = BDS(self.driver) self.prospects_page = ProspectsPage(self.driver) self.login_page = LoginPage(self.driver) self.account_page = AccountPage(self.driver) self.login_page.login_to_snovio(TestDataBDS.USER_CHECK_CREDITS, TestDataGeneral.PASSWORD_GENERAL_NEW) self.account_page.open_account_page() balance_before = self.account_page.get_balance() self.bds_page.open_bulk_page() domain = self.bds_page.open_file_urls('domains_for_credits.txt', 't1.txt') self.bds_page.upload_file(file_name) self.bds_page.click_bds_checkbox(TestDataBDS.CB_FIRST_ROW) if emails: self.bds_page.choose_search_option(TestDataBDS.SEARCH_OPTION_EMAILS) self.bds_page.click_start_search_and_wait_results() results = self.bds_page.get_results_count() if emails: self.bds_page.add_to_list() email = self.prospects_page.emails_text()[0] assert domain in email self.prospects_page.delete_first_list_prospects() balance_after = self.account_page.open_acc_and_get_balance() assert int(balance_after) == int(balance_before) + (results[1] * 2) else: self.bds_page.add_to_list(True) > statuses = self.prospects_page.get_email_statuses() tests/ui_tests/bds/test_results.py:125: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/prospects_page.py:96: in get_email_statuses self.wait_elements(self.EMAIL_STATUSES) tests/scr/pages/base_page.py:62: in wait_elements x = WebDriverWait(self.driver, 15, 1).until(EC.presence_of_all_elements_located(by_locator)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = method = message = '' def until(self, method, message=''): """Calls the method provided with the driver as an argument until the \ return value is not False.""" screen = None stacktrace = None end_time = time.time() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.time() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: /usr/local/lib/python3.9/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException ____________ TestResults.test_credits_prospects[chrome-t1.txt-True] ____________ self = file_name = 't1.txt', emails = True @pytest.mark.parametrize('file_name, emails', [ ( 't1.txt', None ), ( 't1.txt', True ) ]) @allure.title("Check of the credits") @allure.severity(Severity.BLOCKER) def test_credits_prospects(self, file_name, emails): self.bds_page = BDS(self.driver) self.prospects_page = ProspectsPage(self.driver) self.login_page = LoginPage(self.driver) self.account_page = AccountPage(self.driver) self.login_page.login_to_snovio(TestDataBDS.USER_CHECK_CREDITS, TestDataGeneral.PASSWORD_GENERAL_NEW) self.account_page.open_account_page() balance_before = self.account_page.get_balance() self.bds_page.open_bulk_page() domain = self.bds_page.open_file_urls('domains_for_credits.txt', 't1.txt') self.bds_page.upload_file(file_name) self.bds_page.click_bds_checkbox(TestDataBDS.CB_FIRST_ROW) if emails: self.bds_page.choose_search_option(TestDataBDS.SEARCH_OPTION_EMAILS) self.bds_page.click_start_search_and_wait_results() results = self.bds_page.get_results_count() if emails: self.bds_page.add_to_list() email = self.prospects_page.emails_text()[0] assert domain in email > self.prospects_page.delete_first_list_prospects() tests/ui_tests/bds/test_results.py:120: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/prospects_page.py:56: in delete_first_list_prospects self.do_click(self.DOTS_ICON) tests/scr/pages/base_page.py:15: in do_click WebDriverWait(self.driver, 20).until(EC.visibility_of_element_located(by_locator)).click() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = method = message = '' def until(self, method, message=''): """Calls the method provided with the driver as an argument until the \ return value is not False.""" screen = None stacktrace = None end_time = time.time() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.time() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: /usr/local/lib/python3.9/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException __________________ TestResults.test_inf_credits[chrome-None] ___________________ self = emails = None @pytest.mark.parametrize('emails', [ ( None ), ( True ) ]) @allure.title("Insufficient credits") @allure.severity(Severity.BLOCKER) def test_inf_credits(self, emails): self.bds_page = BDS(self.driver) self.bds_page.login_and_open_bulk_page(TestDataBDS.USER_NAME_INF_CREDITS, TestDataGeneral.PASSWORD_GENERAL_NEW) if emails: self.bds_page.choose_upload_type(TestDataBDS.UPLOAD_TYPE_COMPANIES_LIST) self.bds_page.select_company_list('united kingdom') self.bds_page.choose_search_option(TestDataBDS.SEARCH_OPTION_EMAILS) else: self.bds_page.upload_file(TestDataBDS.FILE_PROSPECTS) self.bds_page.click_start_search_and_wait_results() self.bds_page.click_add_to_list_button() self.bds_page.click_prospect_list(self.bds_page.get_lists_names()[0]) > self.bds_page.check_modal(TestDataBDS.INSUFFICIENT_CREDITS_ERROR) tests/ui_tests/bds/test_results.py:156: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/bds_page.py:357: in check_modal self.wait_element(selector_error, TestDataGeneral.D_30) tests/scr/pages/base_page.py:58: in wait_element element = wait.until(EC.presence_of_element_located(by_locator)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = method = message = '' def until(self, method, message=''): """Calls the method provided with the driver as an argument until the \ return value is not False.""" screen = None stacktrace = None end_time = time.time() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.time() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: /usr/local/lib/python3.9/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException __________________ TestResults.test_inf_credits[chrome-True] ___________________ self = emails = True @pytest.mark.parametrize('emails', [ ( None ), ( True ) ]) @allure.title("Insufficient credits") @allure.severity(Severity.BLOCKER) def test_inf_credits(self, emails): self.bds_page = BDS(self.driver) self.bds_page.login_and_open_bulk_page(TestDataBDS.USER_NAME_INF_CREDITS, TestDataGeneral.PASSWORD_GENERAL_NEW) if emails: self.bds_page.choose_upload_type(TestDataBDS.UPLOAD_TYPE_COMPANIES_LIST) self.bds_page.select_company_list('united kingdom') self.bds_page.choose_search_option(TestDataBDS.SEARCH_OPTION_EMAILS) else: self.bds_page.upload_file(TestDataBDS.FILE_PROSPECTS) self.bds_page.click_start_search_and_wait_results() self.bds_page.click_add_to_list_button() self.bds_page.click_prospect_list(self.bds_page.get_lists_names()[0]) > self.bds_page.check_modal(TestDataBDS.INSUFFICIENT_CREDITS_ERROR) tests/ui_tests/bds/test_results.py:156: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/scr/pages/bds_page.py:357: in check_modal self.wait_element(selector_error, TestDataGeneral.D_30) tests/scr/pages/base_page.py:58: in wait_element element = wait.until(EC.presence_of_element_located(by_locator)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = method = message = '' def until(self, method, message=''): """Calls the method provided with the driver as an argument until the \ return value is not False.""" screen = None stacktrace = None end_time = time.time() + self._timeout while True: try: value = method(self._driver) if value: return value except self._ignored_exceptions as exc: screen = getattr(exc, 'screen', None) stacktrace = getattr(exc, 'stacktrace', None) time.sleep(self._poll) if time.time() > end_time: break > raise TimeoutException(message, screen, stacktrace) E selenium.common.exceptions.TimeoutException: Message: /usr/local/lib/python3.9/dist-packages/selenium/webdriver/support/wait.py:80: TimeoutException =============================== warnings summary =============================== ../../../../../usr/lib/python3/dist-packages/urllib3/util/selectors.py:14 /usr/lib/python3/dist-packages/urllib3/util/selectors.py:14: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.10 it will stop working from collections import namedtuple, Mapping ../../../../../usr/lib/python3/dist-packages/urllib3/_collections.py:2 /usr/lib/python3/dist-packages/urllib3/_collections.py:2: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.10 it will stop working from collections import Mapping, MutableMapping tests/ui_tests/bds/test_download.py::TestDownloadFilesResults::test_download_files[chrome-no results.txt-True] tests/ui_tests/bds/test_download.py::TestDownloadFilesResults::test_download_files[chrome-valid for emails.csv-None] /var/lib/jenkins/workspace/bds/tests/conftest.py:43: DeprecationWarning: use options instead of chrome_options driver = webdriver.Chrome(ChromeDriverManager().install(), chrome_options=chromeOptions) tests/ui_tests/bds/test_filters_for_emails.py: 3 warnings tests/ui_tests/bds/test_filters_for_prospects.py: 20 warnings tests/ui_tests/bds/test_other_options.py: 30 warnings tests/ui_tests/bds/test_prospects_search_by_company_lists.py: 10 warnings tests/ui_tests/bds/test_results.py: 19 warnings tests/ui_tests/bds/test_search_emails_by_valid_file.py: 4 warnings tests/ui_tests/bds/test_search_propsects_by_valid_file.py: 8 warnings tests/ui_tests/bds/test_upload_invalid_files.py: 4 warnings /var/lib/jenkins/workspace/bds/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/bds/test_filters_for_prospects.py::TestProspectFilters::test_find_prospect_by_position_exact[chrome-position filter.csv-Project Manager-None] FAILED tests/ui_tests/bds/test_filters_for_prospects.py::TestProspectFilters::test_find_prospect_by_position_exact[chrome-position filter.csv-manager-True] FAILED tests/ui_tests/bds/test_filters_for_prospects.py::TestProspectFilters::test_find_prospect_by_position_contains_company_names[chrome-apple company names.txt-Project Manager-None] FAILED tests/ui_tests/bds/test_filters_for_prospects.py::TestProspectFilters::test_find_prospect_by_position_contains_company_names[chrome-apple company names.txt-hr-True] FAILED tests/ui_tests/bds/test_filters_for_prospects.py::TestProspectFilters::test_find_prospect_by_position_exact_company_list[chrome-test prospects-Project Manager] FAILED tests/ui_tests/bds/test_filters_for_prospects.py::TestProspectFilters::test_find_prospect_by_country[chrome-test prospects-United States] FAILED tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_free_user_upload_file[chrome-None-None-rk-00-00-2023-0@snov.io] FAILED tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_free_user_upload_file[chrome-True-None-rk-00-00-2023-0@snov.io] FAILED tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_free_user_upload_file[chrome-True-True-rk-00-00-2023-0@snov.io] FAILED tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_free_user_upload_file[chrome-None-None-rk-00-00-2023-01@snov.io] FAILED tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_free_user_upload_file[chrome-True-None-rk-00-00-2023-02@snov.io] FAILED tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_free_user_upload_file[chrome-True-True-rk-00-00-2023-02@snov.io] FAILED tests/ui_tests/bds/test_other_options.py::TestOtherCases::test_limit_active_tasks[chrome-True-rk-10-10-2023-20@snov.io] FAILED tests/ui_tests/bds/test_results.py::TestResults::test_credits_prospects[chrome-t1.txt-None] FAILED tests/ui_tests/bds/test_results.py::TestResults::test_credits_prospects[chrome-t1.txt-True] FAILED tests/ui_tests/bds/test_results.py::TestResults::test_inf_credits[chrome-None] FAILED tests/ui_tests/bds/test_results.py::TestResults::test_inf_credits[chrome-True] ====== 17 failed, 47 passed, 102 warnings, 36 rerun in 4204.22s (1:10:04) ======