| ============================= 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 = <tests.ui_tests.bds.test_filters_for_prospects.TestProspectFilters object at 0x7fbf7b17cb50>
|
| 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 = <selenium.webdriver.support.wait.WebDriverWait (session="6591203fad0603e6182dd5e4ddd15764")>
|
| method = <selenium.webdriver.support.expected_conditions.visibility_of_element_located object at 0x7fbf7a965400>
|
| 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 = <tests.ui_tests.bds.test_filters_for_prospects.TestProspectFilters object at 0x7fbf7b17cbe0>
|
| 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 = <selenium.webdriver.support.wait.WebDriverWait (session="32ba289e8243e78c276a0e5bfd30194d")>
|
| method = <selenium.webdriver.support.expected_conditions.visibility_of_element_located object at 0x7fbf7a928d90>
|
| 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 = <tests.ui_tests.bds.test_filters_for_prospects.TestProspectFilters object at 0x7fbf7b17ce80>
|
| 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 = <selenium.webdriver.support.wait.WebDriverWait (session="5797c0fb4be1d395659495cb941ef52f")>
|
| method = <selenium.webdriver.support.expected_conditions.visibility_of_element_located object at 0x7fbf7a9882b0>
|
| 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 = <tests.ui_tests.bds.test_filters_for_prospects.TestProspectFilters object at 0x7fbf7b17cee0>
|
| 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 = <selenium.webdriver.support.wait.WebDriverWait (session="e1fd2f7f49a8777f85ebef9081ba1dbf")>
|
| method = <selenium.webdriver.support.expected_conditions.visibility_of_element_located object at 0x7fbf7aa02730>
|
| 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 = <tests.ui_tests.bds.test_filters_for_prospects.TestProspectFilters object at 0x7fbf7b163d60>
|
| 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 = <selenium.webdriver.support.wait.WebDriverWait (session="41e739394d8b57318029a86951edd3d8")>
|
| method = <selenium.webdriver.support.expected_conditions.visibility_of_element_located object at 0x7fbf7a928280>
|
| 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 = <tests.ui_tests.bds.test_filters_for_prospects.TestProspectFilters object at 0x7fbf7b1873d0>
|
| 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 = <selenium.webdriver.support.wait.WebDriverWait (session="9c7623f998f78666df86f6af64c263c7")>
|
| method = <selenium.webdriver.support.expected_conditions.visibility_of_element_located object at 0x7fbf7a932490>
|
| 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 = <tests.ui_tests.bds.test_other_options.TestOtherCases object at 0x7fbf7b110100>
|
| 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 = <selenium.webdriver.support.wait.WebDriverWait (session="4fa239f705578a023be567733e19d095")>
|
| method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x7fbf7a9928b0>
|
| 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 = <tests.ui_tests.bds.test_other_options.TestOtherCases object at 0x7fbf7b110190>
|
| 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 = <selenium.webdriver.support.wait.WebDriverWait (session="ae82f9297b23ffc2cce726c271771bb9")>
|
| method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x7fbf7aa04520>
|
| 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 = <tests.ui_tests.bds.test_other_options.TestOtherCases object at 0x7fbf7b110220>
|
| 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 = <selenium.webdriver.support.wait.WebDriverWait (session="8a13618d9e33d8ba3bca1f8baafe44f7")>
|
| method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x7fbf7b187460>
|
| 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 = <tests.ui_tests.bds.test_other_options.TestOtherCases object at 0x7fbf7b1102b0>
|
| 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 = <selenium.webdriver.support.wait.WebDriverWait (session="72a7d5ad6ec1105eac29070059d82f7e")>
|
| method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x7fbf7a924730>
|
| 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 = <tests.ui_tests.bds.test_other_options.TestOtherCases object at 0x7fbf7b110340>
|
| 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 = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x7fbf7aa3c760>
|
| 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', '<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.ElementClickInterceptedException: Message: element click intercepted: Element <button data-v-c9791932="" class="btn-snovio">...</button> is not clickable at point (607, 849). Other element would receive the click: <div data-v-0b1119a9="" class="option__prospect-body-secondItem option__prospect-body-tools">...</div>
|
| 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 = <tests.ui_tests.bds.test_other_options.TestOtherCases object at 0x7fbf7b1103d0>
|
| 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 = <selenium.webdriver.support.wait.WebDriverWait (session="7eb36690b0c5fb23a7feeefe063da65d")>
|
| method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x7fbf7a988220>
|
| 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 = <tests.ui_tests.bds.test_other_options.TestOtherCases object at 0x7fbf7b1105b0>
|
| 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 = <selenium.webdriver.support.wait.WebDriverWait (session="8f34debcb02334c68cfb26efdbb33402")>
|
| method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x7fbf7a912550>
|
| 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 = <tests.ui_tests.bds.test_results.TestResults object at 0x7fbf7b1399d0>
|
| 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 = <selenium.webdriver.support.wait.WebDriverWait (session="fa98d63f65f326be07bbd1db1930138a")>
|
| method = <selenium.webdriver.support.expected_conditions.presence_of_all_elements_located object at 0x7fbf7a8c9220>
|
| 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 = <tests.ui_tests.bds.test_results.TestResults object at 0x7fbf7b139a90>
|
| 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 = <selenium.webdriver.support.wait.WebDriverWait (session="a91e4bc997b6d04a8e442bdf13dca12b")>
|
| method = <selenium.webdriver.support.expected_conditions.visibility_of_element_located object at 0x7fbf7a81bdc0>
|
| 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 = <tests.ui_tests.bds.test_results.TestResults object at 0x7fbf7b139c10>
|
| 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 = <selenium.webdriver.support.wait.WebDriverWait (session="fe1b02ee1a3671250b8d3e67e0894a6f")>
|
| method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x7fbf7a94c250>
|
| 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 = <tests.ui_tests.bds.test_results.TestResults object at 0x7fbf7b139ca0>
|
| 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 = <selenium.webdriver.support.wait.WebDriverWait (session="f574c53e8ff2e081c559876e0b7d50e9")>
|
| method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x7fbf7a931e80>
|
| 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) ======
|