Showing
21 changed files
with
0 additions
and
4422 deletions
playtender.robot
deleted
100644 → 0
This diff could not be displayed because it is too large.
playtender_agreement.robot
deleted
100644 → 0
| 1 | -*** Settings *** | ||
| 2 | - | ||
| 3 | -Resource playtender_common.robot | ||
| 4 | -Resource playtender_agreement_variables.robot | ||
| 5 | -Resource playtender_question.robot | ||
| 6 | -Resource playtender_claim.robot | ||
| 7 | -Resource playtender_bid.robot | ||
| 8 | -Resource playtender_viewer.robot | ||
| 9 | - | ||
| 10 | -*** Keywords *** | ||
| 11 | - | ||
| 12 | -update agreement queue | ||
| 13 | - [Documentation] запускає оновлення agreement з ЦБД і додає їх в чергу, тобто синхронізація може відбутися не відразу | ||
| 14 | - ... поточна сторіка повертається | ||
| 15 | - | ||
| 16 | - ${current_url} = get location | ||
| 17 | - go to ${broker_baseurl}/utils/queue-agreement-update | ||
| 18 | - go to ${current_url} | ||
| 19 | - | ||
| 20 | -open agreement search form | ||
| 21 | - [Documentation] відкриває сторінку з пошуком agreement | ||
| 22 | - | ||
| 23 | - open page and wait element by locator ${broker_baseurl}/agreements ${agreement_search_form_locator} | ||
| 24 | - | ||
| 25 | -open agreement form by uaid | ||
| 26 | - [Arguments] ${agreement_uaid} | ||
| 27 | - [Documentation] відкриття сторінки редагування плану | ||
| 28 | - | ||
| 29 | - open agreement page by uaid ${agreement_uaid} | ||
| 30 | - click visible element and wait until page contains element ${tender_edit_btn_locator} ${tender_form_locator} | ||
| 31 | - | ||
| 32 | -open agreement page by uaid | ||
| 33 | - [Arguments] ${uaid} | ||
| 34 | - [Documentation] відкриває сторінку з agreement | ||
| 35 | - | ||
| 36 | - open site page and wait content element ${broker_baseurl}/agreement/${uaid} | ||
| 37 | - ${is_agreement_found} = get is element exist ${agreement_view_checker_element_locator} | ||
| 38 | - return from keyword if ${is_agreement_found} == ${True} | ||
| 39 | - ${is_agreement_not_found} = get is 404 page | ||
| 40 | - ${is_needed_to_update_and_wait_sync} = set variable if ${is_test_role_owner} == ${False} and ${is_agreement_not_found} ${True} ${False} | ||
| 41 | - run keyword if ${is_needed_to_update_and_wait_sync} update agreement queue | ||
| 42 | - run keyword if ${is_needed_to_update_and_wait_sync} wait until 404 page disappears | ||
| 43 | - ${is_agreement_found} = get is element exist ${agreement_view_checker_element_locator} | ||
| 44 | - run keyword if ${is_agreement_found} == ${False} fail Opening agreement page by uaid fails. | ||
| 45 | - | ||
| 46 | -save agreement form and wait synchronization | ||
| 47 | - [Documentation] натискає кнопку "Зберегти" і чекає синхронізації угоди | ||
| 48 | - | ||
| 49 | - submit form and check result ${tender_form_submit_btn_locator} ${tender_form_submit_success_msg} ${tender_created_checker_element_locator} ${true} | ||
| 50 | - wait until page does not contain element with reloading ${agreement_sync_element_locator} | ||
| 51 | - | ||
| 52 | -add document in agreement | ||
| 53 | - [Arguments] ${filepath} | ||
| 54 | - [Documentation] Завантажити документ, який знаходиться по шляху filepath. | ||
| 55 | - | ||
| 56 | - click visible element ${tender_form_general_panel_edit_add_document_btn_locator} | ||
| 57 | - choose file ${add_file_to_form_locator} ${filepath} | ||
| 58 | - wait until page does not contain element ${popup_dynamic_form_loading_element_locator} | ||
| 59 | - submit current visible popup | ||
| 60 | - | ||
| 61 | - |
playtender_agreement_variables.robot
deleted
100644 → 0
| 1 | -*** Variables *** | ||
| 2 | - | ||
| 3 | -${agreement_search_form_locator} = id=agreement-filter-form | ||
| 4 | -${agreement_search_form_query_input_locator} = jquery=#agreement-filter-form .dynamic-search-query input | ||
| 5 | -${agreement_search_form_result_locator_tpl} = jquery=#agreement-list .lots__item .lot__characteristic li:contains(%query%) | ||
| 6 | - | ||
| 7 | -# agreement view | ||
| 8 | -${agreement_view_checker_element_locator} = id=agreement-general-info | ||
| 9 | -${agreement_sync_element_locator} = jquery=#aside-part-pjax .status-label .fa-refresh | ||
| 10 | -${agreement_uaid_text_locator} = jquery=#agreement-general-info .agreement-id .value | ||
| 11 | -${agreement_edit_btn_locator} = jquery=#aside-part-pjax a[href*="agreement/update"] | ||
| 12 | -${agreement_status_value_locator} = jquery=#aside-part-pjax .hidden.opstatus | ||
| 13 | -#елемент проверки загрузки формы в попапе | ||
| 14 | -#${popup_dynamic_form_loading_element_locator} = jquery=.fancybox-is-open .btn-add .fa-spin | ||
| 15 | -${agreement_changes_0_status_value_locator} = jquery=.tabs__pane.tabs__pane--visible[id*="tab-agreement-change"] .agreement-contract-info-wrapper.info-wrapper .info-row.status.hidden | ||
| 16 | -${agreement_changes_0_rationaleType_value_locator} = jquery=.tabs__pane.tabs__pane--visible[id*="tab-agreement-change"] .agreement-contract-info-wrapper.info-wrapper .info-row.rationale-type span.value | ||
| 17 | -${agreement_changes_0_rationale_value_locator} = jquery=.tabs__pane.tabs__pane--visible[id*="tab-agreement-change"] .agreement-contract-info-wrapper.info-wrapper .info-row.rationale span.value | ||
| 18 | - | ||
| 19 | -${agreement_changes_0_modifications_0_itemId_value_locator} = jquery=.tabs__pane.tabs__pane--visible[id*="tab-agreement-change"] .agreement-contract-info-wrapper.info-wrapper .info-row.modification0-itemId.hidden | ||
| 20 | -${agreement_changes_0_modifications_0_addend_value_locator} = jquery=.tabs__pane.tabs__pane--visible[id*="tab-agreement-change"] .agreement-contract-info-wrapper.info-wrapper .info-row.modification0-factor.hidden | ||
| 21 | - | ||
| 22 | -${agreement_changes_1_rationaleType_value_locator} = jquery=.tabs__pane[id*="tab-agreement-change"]:nth(1) .agreement-contract-info-wrapper.info-wrapper .info-row.rationale-type span.value | ||
| 23 | -${agreement_changes_1_rationale_value_locator} = jquery=.tabs__pane[id*="tab-agreement-change"]:nth(1) .agreement-contract-info-wrapper.info-wrapper .info-row.rationale span.value | ||
| 24 | - | ||
| 25 | -${agreement_changes_1_modifications_0_itemId_value_locator} = jquery=.tabs__pane[id*="tab-agreement-change"]:nth(1) .agreement-contract-info-wrapper.info-wrapper .info-row.modification0-itemId.hidden | ||
| 26 | -${agreement_changes_1_modifications_0_factor_value_locator} = jquery=.tabs__pane[id*="tab-agreement-change"]:nth(1) .agreement-contract-info-wrapper.info-wrapper .info-row.modification0-factor.hidden | ||
| 27 | -${agreement_changes_1_status_value_locator} = jquery=.tabs__pane[id*="tab-agreement-change"]:nth(1) .agreement-contract-info-wrapper.info-wrapper .info-row.status.hidden | ||
| 28 | - | ||
| 29 | -${agreement_changes_2_rationaleType_value_locator} = jquery=.tabs__pane[id*="tab-agreement-change"]:nth(2) .agreement-contract-info-wrapper.info-wrapper .info-row.rationale-type span.value | ||
| 30 | -${agreement_changes_2_rationale_value_locator} = jquery=.tabs__pane[id*="tab-agreement-change"]:nth(2) .agreement-contract-info-wrapper.info-wrapper .info-row.rationale span.value | ||
| 31 | - | ||
| 32 | -${agreement_changes_2_modifications_0_itemId_value_locator} = jquery=.tabs__pane[id*="tab-agreement-change"]:nth(2) .agreement-contract-info-wrapper.info-wrapper .info-row.modification0-itemId.hidden | ||
| 33 | -${agreement_changes_2_modifications_0_factor_value_locator} = jquery=.tabs__pane[id*="tab-agreement-change"]:nth(2) .agreement-contract-info-wrapper.info-wrapper .info-row.modification0-factor.hidden | ||
| 34 | -${agreement_changes_2_status_value_locator} = jquery=.tabs__pane[id*="tab-agreement-change"]:nth(2) .agreement-contract-info-wrapper.info-wrapper .info-row.status.hidden | ||
| 35 | - | ||
| 36 | -${agreement_changes_3_rationaleType_value_locator} = jquery=.tabs__pane[id*="tab-agreement-change"]:nth(3) .agreement-contract-info-wrapper.info-wrapper .info-row.rationale-type span.value | ||
| 37 | -${agreement_changes_3_rationale_value_locator} = jquery=.tabs__pane[id*="tab-agreement-change"]:nth(3) .agreement-contract-info-wrapper.info-wrapper .info-row.rationale span.value | ||
| 38 | - | ||
| 39 | -${agreement_changes_3_modifications_0_itemId_value_locator} = jquery=.tabs__pane[id*="tab-agreement-change"]:nth(3) .agreement-contract-info-wrapper.info-wrapper .info-row.itemid span.value | ||
| 40 | -${agreement_changes_3_modifications_0_factor_value_locator} = jquery=.tabs__pane[id*="tab-agreement-change"]:nth(3) .agreement-contract-info-wrapper.info-wrapper .info-row.modification0-factor.hidden | ||
| 41 | -${agreement_changes_3_status_value_locator} = jquery=.tabs__pane[id*="tab-agreement-change"]:nth(3) .agreement-contract-info-wrapper.info-wrapper .info-row.status.hidden | ||
| 42 | - | ||
| 43 | -${agreement_form_refresh_success_msg} = Рамкова угода оновлена. | ||
| 44 | -${agreement_form_refresh_btn_locator} = jquery=#agreement-general-info a[href*="/utils/agreement-sync"] |
playtender_bid.robot
deleted
100644 → 0
| 1 | -*** Settings *** | ||
| 2 | - | ||
| 3 | -Resource playtender_common.robot | ||
| 4 | -Resource playtender_variables.robot | ||
| 5 | -Resource playtender_bid_variables.robot | ||
| 6 | - | ||
| 7 | -*** Keywords *** | ||
| 8 | - | ||
| 9 | - | ||
| 10 | -fill bid form | ||
| 11 | - [Arguments] ${tender_uaid} ${bid} ${lots_ids} ${features_ids} | ||
| 12 | - [Documentation] Подати цінову пропозицію bid для тендера tender_uaid на лоти lots_ids (якщо lots_ids != None) з неціновими показниками features_ids (якщо features_ids != None). | ||
| 13 | - | ||
| 14 | - submit form and check result ${bid_form_refresh_btn_locator} ${bid_form_refresh_success_msg} ${tender_created_checker_element_locator} ${true} | ||
| 15 | - open popup by btn locator ${bid_form_open_btn_locator} ${bid_popup_locator} | ||
| 16 | - ${value} = get from dictionary by keys ${bid.data} value amount | ||
| 17 | -# ${amount} = run keyword if condition is not none ${value} convert_float_to_string ${bid.data.value.amount} | ||
| 18 | - run keyword if condition is not none ${value} input number to exist visible input ${bid_form_value_amount_input_locator} ${value} | ||
| 19 | - capture page screenshot | ||
| 20 | -# ${lots} = get from dictionary by keys ${data} lots | ||
| 21 | - run keyword if condition is not none ${lots_ids} fill bid form lots ${bid} ${lots_ids} ${features_ids} | ||
| 22 | - capture page screenshot | ||
| 23 | -# run keyword if condition is none ${lots_ids} fill bid form whithout lots ${bid} | ||
| 24 | -# ${features} = get from dictionary by keys ${data} features | ||
| 25 | -# run keyword if condition is not none ${features_ids} fill bid form features ${bid} ${tender_form_general_panel_add_feature_btn_locator} | ||
| 26 | - fill bid required documents_all | ||
| 27 | - capture page screenshot | ||
| 28 | -## submit form and check result ${bid_form_submit_btn_locator} ${bid_form_submit_success_msg} ${tender_created_checker_element_locator} | ||
| 29 | - | ||
| 30 | -fill bid form lots | ||
| 31 | - [Arguments] ${bid} ${lots_ids}=${None} ${features_ids}=${None} | ||
| 32 | - [Documentation] Заповнити лотову цінову пропозицію bid для тендера tender_uaid на лоти lots_ids з неціновими показниками features_ids (якщо features_ids != None). | ||
| 33 | - | ||
| 34 | - ${lots} = get from dictionary by keys ${bid.data} lotValues | ||
| 35 | - ${lots_length} = Get Length ${lots} | ||
| 36 | - : FOR ${INDEX} IN RANGE 0 ${lots_length} | ||
| 37 | - \ Run Keyword And Ignore Error run keyword if condition is not none ${lots} input number to exist visible input ${bid_form_value_amount_input_locator} ${lots[${INDEX}].value.amount} | ||
| 38 | - \ capture page screenshot | ||
| 39 | - \ ${self_qualified} = get from dictionary by keys ${bid.data} selfQualified | ||
| 40 | -# \ run keyword if condition is not none ${self_qualified} click visible element ${bid_form_value_self_qualified_input_locator} | ||
| 41 | - \ run keyword if condition is not none ${self_qualified} execute javascript $('.fancybox-is-open .fancybox-content input[id*="-self_qualified"]').click() | ||
| 42 | - \ capture page screenshot | ||
| 43 | - \ ${self_eligible} = get from dictionary by keys ${bid.data} selfEligible | ||
| 44 | -# \ run keyword if condition is not none ${self_eligible} click visible element ${bid_form_value_self_eligible_input_locator} | ||
| 45 | - \ run keyword if condition is not none ${self_eligible} execute javascript $('.fancybox-is-open .fancybox-content input[id*="-self_eligible"]').click() | ||
| 46 | - \ capture page screenshot | ||
| 47 | - \ ${feature_id} = get from dictionary by keys ${bid.data} parameters | ||
| 48 | - \ run keyword if condition is not none ${feature_id} fill bid form features ${feature_id} | ||
| 49 | - \ capture page screenshot | ||
| 50 | - \ run keyword if '${mode}' in 'open_esco' fill bid form lots Esco ${bid.data.lotValues} | ||
| 51 | - | ||
| 52 | -fill bid form features | ||
| 53 | - [Arguments] ${bid_parameters} | ||
| 54 | - [Documentation] Заповнити нецінові показники цінової пропозиції. | ||
| 55 | - | ||
| 56 | - log many ${bid_parameters} | ||
| 57 | - ${features_length} = Get Length ${bid_parameters} | ||
| 58 | - : FOR ${INDEX} IN RANGE 0 ${features_length} | ||
| 59 | - \ ${bid_form_feature_input_locator} replace string ${bid_form_feature_input_locator_tpl} %title% ${bid_parameters[${INDEX}]['code']} | ||
| 60 | - \ ${bid_form_get_feature_input_locator} replace string ${bid_form_get_feature_input_locator_tpl} %title% ${bid_parameters[${INDEX}]['code']} | ||
| 61 | - \ ${bid_form_feature_input_locator_select} replace string ${bid_form_feature_input_locator_select_tpl} %title% ${bid_parameters[${INDEX}]['code']} | ||
| 62 | - \ ${value_enum} = convert float to string ${bid_parameters[${INDEX}]['value']} | ||
| 63 | - \ ${bid_form_feature_value_input_locator} set variable ${bid_form_feature_input_locator} ${bid_form_feature_value_input_locator_tpl} | ||
| 64 | - \ ${bid_form_get_feature_value_input_locator} set variable ${bid_form_get_feature_input_locator} ${bid_form_get_feature_value_input_locator_tpl} | ||
| 65 | - \ ${bid_form_feature_value_input_locator} replace string ${bid_form_feature_value_input_locator} _ ' ' | ||
| 66 | - \ ${bid_form_get_feature_value_input_locator} replace string ${bid_form_get_feature_value_input_locator} _ ' ' | ||
| 67 | - \ ${bid_form_feature_value_input_locator} replace string ${bid_form_feature_value_input_locator} %value% ${value_enum} | ||
| 68 | - \ ${bid_form_get_feature_value_input_locator} replace string ${bid_form_get_feature_value_input_locator} %value% ${value_enum} | ||
| 69 | - \ ${enum_val} set variable ${bid_form_get_feature_value_input_locator} | ||
| 70 | - \ ${enum_val1}= run keyword if ${bid_parameters[${INDEX}]['value']} == 0 Execute Javascript return $('[data-weight-source="0"]').text() | ||
| 71 | - \ ... ELSE Execute Javascript ${enum_val} | ||
| 72 | - \ capture page screenshot | ||
| 73 | - \ Run Keyword And Ignore Error select from list by label ${bid_form_feature_input_locator_select} ${enum_val1} | ||
| 74 | - \ capture page screenshot | ||
| 75 | - | ||
| 76 | -fill bid form lots Esco | ||
| 77 | - [Arguments] ${values} | ||
| 78 | - [Documentation] Заповнити цінову пропозицію Esco | ||
| 79 | - | ||
| 80 | - log many ${values} | ||
| 81 | - ${values_length} = Get Length ${values} | ||
| 82 | - : FOR ${INDEX} IN RANGE 0 ${values_length} | ||
| 83 | - \ input number to exist visible input ${bid_form_value_yearly_payments_percentage_input_locator} ${values[${INDEX}].value.yearlyPaymentsPercentage} | ||
| 84 | - \ capture page screenshot | ||
| 85 | - \ input text to exist visible input ${bid_form_value_contract_duration_years_input_locator} ${values[${INDEX}].value.contractDuration.years} | ||
| 86 | - \ capture page screenshot | ||
| 87 | - \ input text to exist visible input ${bid_form_value_contract_duration_days_input_locator} ${values[${INDEX}].value.contractDuration.days} | ||
| 88 | - \ capture page screenshot | ||
| 89 | - \ fill bid form lots Esco AnnualCostsReduction ${values[${INDEX}].value.annualCostsReduction} | ||
| 90 | - \ capture page screenshot | ||
| 91 | - | ||
| 92 | -fill bid form lots Esco AnnualCostsReduction | ||
| 93 | - [Arguments] ${values} | ||
| 94 | - [Documentation] Заповнити цінову пропозицію Esco (параметр AnnualCostsReduction). | ||
| 95 | - | ||
| 96 | - ${input_index} = set variable 1 | ||
| 97 | - : FOR ${value} IN @{values} | ||
| 98 | - \ ${input_index_tmp}= convert to string ${input_index} | ||
| 99 | - \ ${bid_form_value_annual_costs_reduction_input_locator} replace string ${bid_form_value_annual_costs_reduction_input_locator_tpl} %index% ${input_index_tmp} | ||
| 100 | - \ input number to exist visible input ${bid_form_value_annual_costs_reduction_input_locator} ${value} | ||
| 101 | - \ ${input_index} = evaluate ${input_index} + 1 | ||
| 102 | - | ||
| 103 | -fill bid required documents_all | ||
| 104 | - [Arguments] | ||
| 105 | - [Documentation] Додати фейковий документ до цінової пропозиції при створенні. | ||
| 106 | - | ||
| 107 | - ${file_path} ${file_name} ${file_content} = create_fake_doc | ||
| 108 | -# click visible element and wait until page contains element ${open_form_add_doc_lot_btn_locator} jquery=.modal.modal-form.js-form-popup.fancybox-content | ||
| 109 | - #click visible element ${bid_form_add_document_all_btn_locator} | ||
| 110 | - capture page screenshot | ||
| 111 | -### execute javascript $('.fancybox-is-open .fancybox-content .field-bidform-documents .js-upload-documents input[type$="file"]:first').click() | ||
| 112 | - capture page screenshot | ||
| 113 | - choose file ${add_file_to_bid_form_locator} ${file_path} | ||
| 114 | - capture page screenshot | ||
| 115 | - wait until element is visible ${bid_form_add_document_type_input_locator} | ||
| 116 | -# submit current visible popup | ||
| 117 | - Run Keyword And Ignore Error Select From List By Value ${bid_form_add_document_type_input_locator} qualificationDocuments | ||
| 118 | - click visible element ${bid_form_add_document_description_btn_locator} | ||
| 119 | - capture page screenshot | ||
| 120 | - wait until element is visible ${bid_form_add_document_description_input_locator} | ||
| 121 | - input text to exist visible input ${bid_form_add_document_description_input_locator} test2 | ||
| 122 | - click visible element ${bid_form_add_document_close_description_btn_locator} | ||
| 123 | - capture page screenshot | ||
| 124 | - | ||
| 125 | -fill bid form edit | ||
| 126 | - [Arguments] ${fieldname} ${fieldvalue} | ||
| 127 | - [Documentation] Змінити поле fieldname на fieldvalue цінової пропозиції користувача username для тендера tender_uaid. | ||
| 128 | - | ||
| 129 | - open popup by btn locator ${bid_form_open_btn_locator} ${bid_popup_locator} | ||
| 130 | - Run Keyword If '${fieldname}' == 'lotValues[0].value.amount' or '${fieldname}' == 'value.amount' and '${mode}' != 'open_esco' input number to exist visible input ${bid_form_value_amount_input_locator} ${fieldvalue} | ||
| 131 | -# submit form and check result ${bid_form_submit_btn_locator} ${bid_form_submit_edit_success_msg} ${tender_created_checker_element_locator} | ||
| 132 | - | ||
| 133 | - | ||
| 134 | -add document to bid | ||
| 135 | - [Arguments] ${path} ${doc_type} ${doc_name} | ||
| 136 | - #=documents | ||
| 137 | - [Documentation] Завантажити документ типу doc_type, який знаходиться за шляхом path, | ||
| 138 | - ... до цінової пропозиції користувача username для тендера tender_uaid. | ||
| 139 | - | ||
| 140 | - open popup by btn locator ${bid_form_open_btn_locator} ${bid_popup_locator} | ||
| 141 | -### execute javascript $('.fancybox-is-open .fancybox-content .field-bidform-documents .js-upload-documents input[type$="file"]:first').click() | ||
| 142 | - choose file ${add_file_to_bid_form_locator} ${path} | ||
| 143 | - run keyword and ignore error wait until page does not contain element ${popup_dynamic_form_loading_element_locator} | ||
| 144 | - wait until element is visible ${bid_form_add_document_type_input_locator} | ||
| 145 | -# submit current visible popup | ||
| 146 | - log many ${doc_type} | ||
| 147 | -# run keyword if '${doc_type}' == 'documents' Select From List By Value ${bid_form_add_document_type_input_locator} qualificationDocuments | ||
| 148 | -# ... else Select From List By Value ${bid_form_add_document_type_input_locator} ${doc_type} | ||
| 149 | - Run Keyword And Ignore Error select from visible list by value ${bid_form_add_document_type_input_locator} commercialProposal | ||
| 150 | - Run Keyword And Ignore Error Run Keyword If '${doc_type}' == 'documents' and "${mode}" not in "openeu open_competitive_dialogue" select from visible list by value ${bid_form_add_document_type_input_locator} commercialProposal | ||
| 151 | - Run Keyword And Ignore Error Run Keyword If '${doc_type}' == 'documents' and "${mode}" in "openeu open_competitive_dialogue" select from visible list by value ${bid_form_add_document_type_input_locator} qualificationDocuments | ||
| 152 | - Run Keyword And Ignore Error Run Keyword If '${doc_type}' == 'financial_documents' select from visible list by value ${bid_form_add_document_type_input_locator} commercialProposal | ||
| 153 | - Run Keyword And Ignore Error Run Keyword If '${doc_type}' == 'qualification_documents' select from visible list by value ${bid_form_add_document_type_input_locator} qualificationDocuments | ||
| 154 | - Run Keyword And Ignore Error Run Keyword If '${doc_type}' == 'eligibility_documents' select from visible list by value ${bid_form_add_document_type_input_locator} eligibilityDocuments | ||
| 155 | - capture page screenshot | ||
| 156 | - | ||
| 157 | - Run Keyword And Ignore Error Execute Javascript $('.fancybox-is-open .fancybox-content .field-bidform-documents select[id*="-document_type"]:last').val('commercialProposal').change() | ||
| 158 | - capture page screenshot | ||
| 159 | - Run Keyword And Ignore Error Run Keyword If '${doc_type}' == 'documents' and "${mode}" not in "openeu open_competitive_dialogue" Execute Javascript $('.fancybox-is-open .fancybox-content .field-bidform-documents select[id*="-document_type"]:last').val('commercialProposal').change() | ||
| 160 | - Run Keyword And Ignore Error Run Keyword If '${doc_type}' == 'documents' and "${mode}" in "openeu open_competitive_dialogue" Execute Javascript $('.fancybox-is-open .fancybox-content .field-bidform-documents select[id*="-document_type"]:last').val('qualificationDocuments').change() | ||
| 161 | - capture page screenshot | ||
| 162 | - Run Keyword And Ignore Error Run Keyword If '${doc_type}' == 'financial_documents' Execute Javascript $('.fancybox-is-open .fancybox-content .field-bidform-documents select[id*="-document_type"]:last').val('commercialProposal').change() | ||
| 163 | - capture page screenshot | ||
| 164 | - Run Keyword And Ignore Error Run Keyword If '${doc_type}' == 'qualification_documents' Execute Javascript $('.fancybox-is-open .fancybox-content .field-bidform-documents select[id*="-document_type"]:last').val('qualificationDocuments').change() | ||
| 165 | - capture page screenshot | ||
| 166 | - Run Keyword And Ignore Error Run Keyword If '${doc_type}' == 'eligibility_documents' Execute Javascript $('.fancybox-is-open .fancybox-content .field-bidform-documents select[id*="-document_type"]:last').val('eligibilityDocuments').change() | ||
| 167 | -# Run Keyword And Ignore Error select from visible list by value ${bid_form_add_document_type_input_locator} commercialProposal | ||
| 168 | -# Run Keyword And Ignore Error Run Keyword If '${doc_type}' == 'documents' select from visible list by value ${bid_form_add_document_type_input_locator} commercialProposal | ||
| 169 | -# Run Keyword And Ignore Error Run Keyword If '${doc_type}' == 'financial_documents' select from visible list by value ${bid_form_add_document_type_input_locator} commercialProposal | ||
| 170 | -# Run Keyword And Ignore Error Run Keyword If '${doc_type}' == 'qualification_documents' select from visible list by value ${bid_form_add_document_type_input_locator} qualificationDocuments | ||
| 171 | -# Run Keyword And Ignore Error Run Keyword If '${doc_type}' == 'eligibility_documents' select from visible list by value ${bid_form_add_document_type_input_locator} eligibilityDocuments | ||
| 172 | - capture page screenshot | ||
| 173 | - | ||
| 174 | - click visible element ${bid_form_add_document_description_btn_locator} | ||
| 175 | - wait until element is visible ${bid_form_add_document_description_input_locator} | ||
| 176 | - input text to exist visible input ${bid_form_add_document_description_input_locator} test2 | ||
| 177 | - click visible element ${bid_form_add_document_close_description_btn_locator} | ||
| 178 | - | ||
| 179 | -document to bid edit | ||
| 180 | - [Arguments] ${path} ${doc_type}=documents | ||
| 181 | - [Documentation] Змінити документ з doc_id в описі в пропозиції користувача username для | ||
| 182 | - ... тендера tender_uaid на документ, який знаходиться по шляху path. | ||
| 183 | - | ||
| 184 | - open popup by btn locator ${bid_form_open_btn_locator} ${bid_popup_locator} | ||
| 185 | -# click visible element ${bid_form_edit_document_all_btn_locator} | ||
| 186 | - capture page screenshot | ||
| 187 | - choose file ${bid_form_edit_document_all_btn_locator} ${path} | ||
| 188 | - capture page screenshot | ||
| 189 | -# wait until element is visible ${bid_form_add_document_type_input_locator} | ||
| 190 | - | ||
| 191 | -fill bid form edit document | ||
| 192 | - [Arguments] ${doc_data} ${doc_id} | ||
| 193 | - [Documentation] Змінити тип документа з doc_id в заголовку в пропозиції користувача | ||
| 194 | - ... username для тендера tender_uaid. Дані про новий тип документа знаходяться в doc_data. | ||
| 195 | - | ||
| 196 | - open popup by btn locator ${bid_form_open_btn_locator} ${bid_popup_locator} | ||
| 197 | - ##### BOF - TMP for confidentiality##### | ||
| 198 | - execute javascript $('#tender-bid-form .documents-dynamic-forms-wrapper:last [href$="#edit"]:last').click() | ||
| 199 | -# click visible element $('#tender-bid-form .documents-dynamic-forms-wrapper:last [href$="#edit"]:last').click() | ||
| 200 | - set element scroll into view ${bid_form_add_document_close_description_btn_locator} | ||
| 201 | - capture page screenshot | ||
| 202 | - wait until element is visible ${bid_form_add_document_description_input_locator} 60 | ||
| 203 | - execute javascript $('#tender-bid-form .documents-dynamic-forms-wrapper:last .popover.fade.top.in [id$="-confidentiality"]').click() | ||
| 204 | - | ||
| 205 | -# click visible element ${bid_form_add_document_confidentiality_input_locator} | ||
| 206 | - capture page screenshot | ||
| 207 | - input text to exist visible input ${bid_form_add_document_confidentialityrationale_input_locator} ${doc_data.data.confidentialityRationale} | ||
| 208 | - capture page screenshot | ||
| 209 | - click visible element ${bid_form_add_document_close_description_btn_locator} | ||
| 210 | - capture page screenshot | ||
| 211 | - ##### EOF - TMP ##### | ||
| 212 | - | ||
| 213 | -get bid information | ||
| 214 | - [Arguments] ${field} | ||
| 215 | - [Documentation] Отримати значення поля field пропозиції користувача | ||
| 216 | - ... username для тендера tender_uaid. | ||
| 217 | - | ||
| 218 | - capture page screenshot | ||
| 219 | - Run Keyword If 'status' == '${field}' submit form and check result ${bid_form_refresh_btn_locator} ${bid_form_refresh_success_msg} ${tender_created_checker_element_locator} ${true} | ||
| 220 | - Run Keyword If 'status' != '${field}' open popup by btn locator ${bid_form_open_btn_locator} ${bid_popup_locator} | ||
| 221 | -# click visible element ${bid_form_open_btn_locator} | ||
| 222 | - capture page screenshot | ||
| 223 | - Run Keyword If 'status' != '${field}' wait until popup is visible | ||
| 224 | -# ${question_open_form_answer_locator} = replace string ${question_open_form_answer_btn_locator_tpl} %title% ${question_id} | ||
| 225 | -# wait until page contains element with reloading ${question_open_form_answer_locator} | ||
| 226 | - capture page screenshot | ||
| 227 | - Run Keyword If 'status' == '${field}' submit form and check result ${bid_form_refresh_btn_locator} ${bid_form_refresh_success_msg} ${tender_created_checker_element_locator} ${true} | ||
| 228 | - #${return_value} = Run Keyword If 'lotValues[0].value.amount' == '${field}' get value by locator on opened page ${bid_lotValues_0_value_amount_value_locator} | ||
| 229 | - ${return_value} = Run Keyword If 'lotValues[0].value.amount' == '${field}' get bid value ${bid_lotValues_0_value_amount_value_locator} | ||
| 230 | - ... ELSE Run Keyword If 'status' == '${field}' get value by locator on opened page ${bid_form_bid_status_btn_locator} | ||
| 231 | - ... ELSE Run Keyword If 'value.amount' == '${field}' get bid value ${bid_form_value_amount_input_locator} | ||
| 232 | -## ${return_value} = Run Keyword If 'lotValues[0].value.amount' == '${field}' get value by locator on opened page ${bid_lotValues_0_value_amount_value_locator} | ||
| 233 | -# ... ELSE Run Keyword If 'status' == '${field}' get_text ${bid_form_bid_status_btn_locator} | ||
| 234 | -## ... ELSE Run Keyword If 'status' == '${field}' get value by locator on opened page ${bid_form_bid_status_btn_locator} | ||
| 235 | -## ... ELSE Run Keyword If 'value.amount' == '${field}' get value by locator on opened page ${bid_form_value_amount_input_locator} | ||
| 236 | -# submit current visible popup | ||
| 237 | -## ${return_value} = Run Keyword If 'lotValues[0].value.amount' == '${field}' or 'value.amount' == '${field}' playtender_service.split_joinvalue ${return_value} | ||
| 238 | -## ${return_value} = Run Keyword If 'lotValues[0].value.amount' == '${field}' or 'value.amount' == '${field}' Convert To Number ${return_value} | ||
| 239 | - [Return] ${return_value} | ||
| 240 | - | ||
| 241 | -fill bid form remove | ||
| 242 | - [Documentation] Змінити статус цінової пропозиції для тендера tender_uaid | ||
| 243 | - ... користувача username на cancelled. | ||
| 244 | - | ||
| 245 | - click visible element ${bid_form_remove_btn_locator} | ||
| 246 | - submit form and check result ${alert_opened_close_bid_btn_locator} ${bid_form_submit_remove_success_msg} ${tender_created_checker_element_locator} ${true} | ||
| 247 | - | ||
| 248 | -get bid value | ||
| 249 | - [Arguments] ${field} | ||
| 250 | - [Documentation] Отримати значення поля field пропозиції користувача | ||
| 251 | - ... username для тендера tender_uaid. | ||
| 252 | - | ||
| 253 | - ${return_value} = get value by locator on opened page ${field} | ||
| 254 | - ${return_value} = playtender_service.split_joinvalue ${return_value} | ||
| 255 | - ${return_value} = Convert To Number ${return_value} | ||
| 256 | - [Return] ${return_value} | ||
| 257 | - |
playtender_bid_variables.robot
deleted
100644 → 0
| 1 | -*** Variables *** | ||
| 2 | - | ||
| 3 | -#bids | ||
| 4 | -${bid_form_open_btn_locator} = jquery=#aside-part-pjax a[href*="/tender/bid"] | ||
| 5 | -${bid_form_remove_btn_locator} = jquery=#aside-part-pjax a[href*="#bid-delete"] | ||
| 6 | -${bid_form_submit_success_msg} = Пропозиція створена | ||
| 7 | -${bid_form_submit_edit_success_msg} = Пропозиція відредагована | ||
| 8 | -${bid_form_submit_remove_success_msg} = Ви впевнені що бажаєте видали свою пропозицію? | ||
| 9 | -${alert_opened_close_bid_btn_locator} = jquery=.animated-content .js-btn-confirm | ||
| 10 | -${bid_form_feature_input_locator_select_tpl} = jquery=[data-opid*="%title%"] | ||
| 11 | -${bid_form_get_feature_input_locator_tpl} = return $('.fancybox-is-open .fancybox-content [data-opid*="%title%"] | ||
| 12 | -${bid_form_get_feature_value_input_locator_tpl} = option[data-weight-source*="%value%"]').text() | ||
| 13 | -${bid_form_feature_input_locator_tpl} = jquery=.fancybox-is-open .fancybox-content [data-opid*="%title%"] | ||
| 14 | -${bid_form_feature_value_input_locator_tpl} = option[data-weight-source*="%value%"] | ||
| 15 | -${bid_form_value_amount_input_locator} = jquery=.fancybox-is-open .fancybox-content input[id*="-value_amount"] | ||
| 16 | -${bid_form_value_subcontracting_details_input_locator} = jquery=.fancybox-is-open .fancybox-content textarea[id*="-subcontracting_details"] | ||
| 17 | -${bid_form_value_self_eligible_input_locator} = jquery=.fancybox-is-open .fancybox-content input[id*="-self_eligible"] | ||
| 18 | -${bid_form_value_self_qualified_input_locator} = jquery=.fancybox-is-open .fancybox-content input[id*="-self_qualified"] | ||
| 19 | -${bid_form_value_yearly_payments_percentage_input_locator} = jquery=.fancybox-is-open .fancybox-content input[id*="-yearly_payments_percentage"] | ||
| 20 | -${bid_form_value_contract_duration_years_input_locator} = jquery=.fancybox-is-open .fancybox-content input[id*="-contract_duration_years"] | ||
| 21 | -${bid_form_value_contract_duration_days_input_locator} = jquery=.fancybox-is-open .fancybox-content input[id*="-contract_duration_days"] | ||
| 22 | -${bid_form_value_annual_costs_reduction_input_locator_tpl} = jquery=.fancybox-is-open .fancybox-content input[name*="[annual_costs_reduction_%index%]"] | ||
| 23 | - | ||
| 24 | -${add_file_to_bid_all_form_locator} = jquery=#tender-bid-form .documents-dynamic-forms-wrapper:last .js-upload-documents | ||
| 25 | -${add_file_to_bid_form_locator} = jquery=#tender-bid-form .documents-dynamic-forms-wrapper:last .js-upload-documents input[type$="file"]:first | ||
| 26 | -${bid_form_add_document_all_btn_locator} = jquery=#tender-bid-form .documents-dynamic-forms-wrapper:last .js-upload-documents input[type$="file"]:first | ||
| 27 | -${bid_form_add_document_type_input_locator} = jquery=#tender-bid-form .documents-dynamic-forms-wrapper:last select[id*="-document_type"]:last | ||
| 28 | -${bid_form_add_document_description_btn_locator} = jquery=#tender-bid-form .documents-dynamic-forms-wrapper:last [href$="#edit"]:last | ||
| 29 | -${bid_form_add_document_description_input_locator} = jquery=#tender-bid-form .documents-dynamic-forms-wrapper:last .popover.fade.top.in textarea[id*="-description"].form-control | ||
| 30 | -${bid_form_add_document_close_description_btn_locator} = jquery=#tender-bid-form .documents-dynamic-forms-wrapper:last .popover.fade.top.in [href$="#close"] | ||
| 31 | -${bid_form_add_document_confidentiality_input_locator} = jquery=#tender-bid-form .documents-dynamic-forms-wrapper:last .popover.fade.top.in [id$="-confidentiality"] | ||
| 32 | -${bid_form_add_document_confidentialityrationale_input_locator} = jquery=#tender-bid-form .documents-dynamic-forms-wrapper:last .popover.fade.top.in textarea[id*="-confidentiality_rationale"].form-control | ||
| 33 | -${bid_form_submit_btn_locator} = jquery=.fancybox-is-open .fancybox-content button.btn.btn-success | ||
| 34 | -${bid_form_edit_document_all_btn_locator} = jquery=.form-documents-group .tab-content .item-wrapper.js-item:last a[href*="#reupload"] | ||
| 35 | - | ||
| 36 | -${bid_lotValues_0_value_amount_value_locator} = jquery=.fancybox-slide .modal.fancybox-content #tender-bid-form .tab-content .active.js-lot-tab .js-amount-weight-wrapper .input-group .js-amount-input | ||
| 37 | -${bid_lotValues_0_value_amount_value_locator_type} = float | ||
| 38 | - | ||
| 39 | -${bid_popup_locator} = jquery=.fancybox-slide .modal.fancybox-content | ||
| 40 | - | ||
| 41 | -${bid_form_refresh_success_msg} = Закупівля оновлена. | ||
| 42 | -${bid_form_refresh_btn_locator} = jquery=#tender-general-info a[href*="/utils/tender-sync"] | ||
| 43 | -${bid_form_bid_status_btn_locator} = jquery=.bid-info-wrapper.hidden.info-wrapper .info-row.status-source |
playtender_claim.robot
deleted
100644 → 0
| 1 | -*** Settings *** | ||
| 2 | - | ||
| 3 | -Resource playtender_common.robot | ||
| 4 | -Resource playtender_claim_variables.robot | ||
| 5 | - | ||
| 6 | -*** Keywords *** | ||
| 7 | - | ||
| 8 | - | ||
| 9 | -Створити вимогу | ||
| 10 | - [Arguments] ${username} ${tender_uaid} ${type} ${type_id} ${claim} ${doc_name} | ||
| 11 | - [Documentation] Створити вимогу з claim в описі для тендера tender_uaid. | ||
| 12 | - | ||
| 13 | - open tender page by uaid ${tender_uaid} | ||
| 14 | - click visible element ${claim_page_open_btn_locator} | ||
| 15 | - capture page screenshot | ||
| 16 | - wait until page contains element with reloading ${claim_form_open_btn_locator} | ||
| 17 | - open popup by btn locator ${claim_form_open_btn_locator} | ||
| 18 | - capture page screenshot | ||
| 19 | - input text to exist visible input ${claim_form_complaintform_title_input_locator} ${claim.data.title} | ||
| 20 | - capture page screenshot | ||
| 21 | - input text to exist visible input ${claim_form_complaintform_description_input_locator} ${claim.data.description} | ||
| 22 | - capture page screenshot | ||
| 23 | - Run Keyword And Ignore Error Run Keyword If '${type}' == 'tender' Select From List By Label ${claim_form_complaintform_related_of_input_locator} Закупівля | ||
| 24 | - capture page screenshot | ||
| 25 | - Run Keyword And Ignore Error Run Keyword If '${type}' == 'lot' Select From List By Label ${claim_form_complaintform_related_of_input_locator} Лот | ||
| 26 | - capture page screenshot | ||
| 27 | - Run Keyword And Ignore Error Run Keyword If '${type}' == 'lot' Click Element ${claim_form_complaintform_related_lot_input_locator} | ||
| 28 | - ${claim_form_complaintform_related_lot_select_locator} = Run Keyword If '${type}' == 'lot' replace string ${claim_form_complaintform_related_lot_input_locator_tpl} %type_id% ${type_id} | ||
| 29 | - Run Keyword And Ignore Error Run Keyword If '${type}' == 'lot' Click Element ${claim_form_complaintform_related_lot_select_locator} | ||
| 30 | - capture page screenshot | ||
| 31 | - Run Keyword And Ignore Error Select From List By Label ${claim_form_complaintform_complaintform_type_input_locator} Вимога | ||
| 32 | - Run Keyword And Ignore Error Run Keyword If '${type}' == 'winner_complaint' or '${claim.data.type}' == 'complaint' Select From List By Label ${claim_form_complaintform_complaintform_type_input_locator} Скарга | ||
| 33 | - | ||
| 34 | - capture page screenshot | ||
| 35 | -### Run Keyword If '${doc_name}' != 'null' click visible element ${claim_form_complaintform_document_btn_locator} | ||
| 36 | - capture page screenshot | ||
| 37 | - Run Keyword If '${doc_name}' != 'null' choose file ${add_file_to_form_locator} ${doc_name} | ||
| 38 | - capture page screenshot | ||
| 39 | - Run Keyword If '${doc_name}' != 'null' wait until page does not contain element ${popup_dynamic_form_loading_element_locator} | ||
| 40 | - capture page screenshot | ||
| 41 | -# Run Keyword If '${doc_name}' != 'null' submit current visible popup | ||
| 42 | - submit form and check result ${claim_form_complaintform_submit_btn_locator} ${claim_form_submit_success_msg} ${tender_created_checker_element_locator} | ||
| 43 | -# Функция ожидания claim_uaid_text_locator соответствующей вимоги | ||
| 44 | -# click visible element ${claim_form_open_btn_locator} | ||
| 45 | - reload page | ||
| 46 | - wait until page does not contain element with reloading ${claim_sync_element_locator} 60 | ||
| 47 | - wait until page contains element with reloading ${claim_uaid_text_locator} | ||
| 48 | - ${return_value}= get text ${claim_uaid_text_locator} | ||
| 49 | - ${return_value}= Convert To String ${return_value} | ||
| 50 | - [return] ${return_value} | ||
| 51 | - | ||
| 52 | -Скасувати вимогу | ||
| 53 | - [Arguments] ${username} ${tender_uaid} ${complaintID} ${cancellation_data} ${award_index} | ||
| 54 | - [Documentation] Перевести вимогу complaintID для тендера tender_uaid у статус cancelled, | ||
| 55 | - ... використовуючи при цьому дані confirmation_data. | ||
| 56 | - | ||
| 57 | - open tender page by uaid ${tender_uaid} | ||
| 58 | - click visible element and wait until page contains element ${claim_page_open_btn_locator} ${claim_form_open_btn_locator} | ||
| 59 | - ${claim_open_form_answer_locator} = replace string ${claim_open_form_answer_btn_locator_tpl} %title% ${complaintID} | ||
| 60 | - wait until page contains element with reloading ${claim_open_form_answer_locator} | ||
| 61 | - ${claim_form_cancel_open_btn_locator} = replace string ${claim_form_cancel_open_btn_locator_tpl} %complaint_id% ${complaintID} | ||
| 62 | - wait until page contains element with reloading ${claim_form_cancel_open_btn_locator} | ||
| 63 | - open popup by btn locator ${claim_form_cancel_open_btn_locator} | ||
| 64 | - capture page screenshot | ||
| 65 | - input text to exist visible input ${claim_form_cancellation_reason_input_locator} ${cancellation_data.data.cancellationReason} | ||
| 66 | - capture page screenshot | ||
| 67 | - submit form and check result ${claim_form_complaintform_submit_btn_locator} ${claim_cancel_submit_success_msg} ${tender_created_checker_element_locator} | ||
| 68 | - | ||
| 69 | -get claim information | ||
| 70 | - [Arguments] ${tender_uaid} ${complaintID} ${field_name} ${award_index}=${None} | ||
| 71 | - [Documentation] Отримати значення поля field_name скарги/вимоги complaintID про | ||
| 72 | - ... виправлення умов закупівлі/лоту для тендера tender_uaid (скарги/вимоги про | ||
| 73 | - ... виправлення визначення переможця під номером award_index, якщо award_index != None). | ||
| 74 | - | ||
| 75 | - open tender page by uaid ${tender_uaid} | ||
| 76 | - click visible element ${claim_page_open_btn_locator} | ||
| 77 | - capture page screenshot | ||
| 78 | - ${claim_open_form_answer_locator} = replace string ${claim_open_form_answer_btn_locator_tpl} %title% ${complaintID} | ||
| 79 | - wait until page contains element with reloading ${claim_open_form_answer_locator} | ||
| 80 | - capture page screenshot | ||
| 81 | - | ||
| 82 | - ${claim_wrapper_complain_id_value_locator} = set variable ${claim_open_form_answer_locator} | ||
| 83 | -# ${claim_wrapper_complaint_id_value_locator} = replace string ${claim_wrapper_complain_id_value_locator_tpl} %complain_id% ${complaintID} | ||
| 84 | - ${claim_description_value_locator} = Run Keyword If 'description' == '${field_name}' set variable ${claim_wrapper_complain_id_value_locator} ${claim_description_value_locator} | ||
| 85 | - ${claim_title_value_locator} = Run Keyword If 'title' == '${field_name}' set variable ${claim_wrapper_complain_id_value_locator} ${claim_title_value_locator} | ||
| 86 | - ${claim_complain_id_value_locator} = Run Keyword If 'complaintID' == '${field_name}' set variable ${claim_wrapper_complain_id_value_locator} ${claim_complain_id_value_locator} | ||
| 87 | - ${claim_status_value_locator} = Run Keyword If 'status' == '${field_name}' set variable ${claim_wrapper_complain_id_value_locator} ${claim_status_value_locator} | ||
| 88 | - ${claim_resolution_type_value_locator} = Run Keyword If 'resolutionType' == '${field_name}' set variable ${claim_wrapper_complain_id_value_locator} ${claim_resolution_type_value_locator} | ||
| 89 | - ${claim_resolution_value_locator} = Run Keyword If 'resolution' == '${field_name}' set variable ${claim_wrapper_complain_id_value_locator} ${claim_resolution_value_locator} | ||
| 90 | - ${claim_satisfied_value_locator} = Run Keyword If 'satisfied' == '${field_name}' set variable ${claim_wrapper_complain_id_value_locator} ${claim_satisfied_value_locator} | ||
| 91 | - ${claim_related_lot_value_locator} = Run Keyword If 'relatedLot' == '${field_name}' set variable ${claim_wrapper_complain_id_value_locator} ${claim_related_lot_value_locator} | ||
| 92 | - ${claim_cancellation_reason_value_locator} = Run Keyword If 'cancellationReason' == '${field_name}' set variable ${claim_wrapper_complain_id_value_locator} ${claim_cancellation_reason_value_locator} | ||
| 93 | - | ||
| 94 | - Run Keyword If "${TEST_NAME}" == "Можливість відповісти на вимогу про виправлення умов закупівлі" Wait Until Keyword Succeeds 420 s 15 s Wait For Answered ${complaintID} ${claim_wrapper_complain_id_value_locator} | ||
| 95 | - Run Keyword If "${TEST_NAME}" == "Можливість відповісти на вимогу про виправлення умов лоту" Wait Until Keyword Succeeds 420 s 15 s Wait For Answered ${complaintID} ${claim_wrapper_complain_id_value_locator} | ||
| 96 | - Run Keyword If "Відображення статусу 'answered'" in "${TEST_NAME}" Wait Until Keyword Succeeds 300 s 15 s Wait For Answered ${complaintID} ${claim_wrapper_complain_id_value_locator} | ||
| 97 | - Run Keyword If "${TEST_NAME}" == "Відображення задоволення вимоги" Wait Until Keyword Succeeds 300 s 15 s Wait For Satisfied ${complaintID} ${claim_wrapper_complain_id_value_locator} | ||
| 98 | - Run Keyword If "${TEST_NAME}" == "Відображення незадоволення вимоги" Wait Until Keyword Succeeds 300 s 15 s Wait For Satisfied ${complaintID} ${claim_wrapper_complain_id_value_locator} | ||
| 99 | - Run Keyword If "Відображення статусу 'resolved'" in "${TEST_NAME}" Wait Until Keyword Succeeds 300 s 15 s Wait For Resolved ${complaintID} ${claim_wrapper_complain_id_value_locator} | ||
| 100 | - Run Keyword If "Відображення статусу 'cancelled'" in "${TEST_NAME}" Wait Until Keyword Succeeds 300 s 15 s Wait For Cancelled ${complaintID} ${claim_wrapper_complain_id_value_locator} | ||
| 101 | - Run Keyword If "Відображення статусу 'ignored'" in "${TEST_NAME}" Wait Until Keyword Succeeds 300 s 15 s Wait For Ignored ${complaintID} ${claim_wrapper_complain_id_value_locator} | ||
| 102 | - Run Keyword If "Відображення статусу 'stopping'" in "${TEST_NAME}" Wait Until Keyword Succeeds 300 s 15 s Wait For Stopping ${complaintID} ${claim_wrapper_complain_id_value_locator} | ||
| 103 | - Run Keyword If "Відображення статусу 'pending'" in "${TEST_NAME}" Wait Until Keyword Succeeds 300 s 15 s Wait For Pending ${complaintID} ${claim_wrapper_complain_id_value_locator} | ||
| 104 | - Run Keyword And Ignore Error Run Keyword If "Відображення кінцевих статусів двох останніх вимог" in "${TEST_NAME}" Wait Until Keyword Succeeds 30 s 5 s Wait For Invalid ${complaintID} ${claim_wrapper_complain_id_value_locator} | ||
| 105 | - Run Keyword And Ignore Error Run Keyword If "Відображення кінцевих статусів двох останніх вимог" in "${TEST_NAME}" Wait Until Keyword Succeeds 30 s 5 s Wait For Declined ${complaintID} ${claim_wrapper_complain_id_value_locator} | ||
| 106 | - | ||
| 107 | - Run Keyword And Return If 'description' == '${field_name}' get value by locator on opened page ${claim_description_value_locator} | ||
| 108 | - Run Keyword And Return If 'complaintID' == '${field_name}' get value by locator on opened page ${claim_complain_id_value_locator} | ||
| 109 | - Run Keyword And Return If 'title' == '${field_name}' get value by locator on opened page ${claim_title_value_locator} | ||
| 110 | - Run Keyword And Return If 'status' == '${field_name}' get value by locator on opened page ${claim_status_value_locator} | ||
| 111 | - Run Keyword And Return If 'resolutionType' == '${field_name}' get value by locator on opened page ${claim_resolution_type_value_locator} | ||
| 112 | - Run Keyword And Return If 'resolution' == '${field_name}' get value by locator on opened page ${claim_resolution_value_locator} | ||
| 113 | - Run Keyword And Return If 'satisfied' == '${field_name}' Отримати інформацію із скарги satisfied ${claim_satisfied_value_locator} | ||
| 114 | - Run Keyword And Return If 'relatedLot' == '${field_name}' get value by locator on opened page ${claim_related_lot_value_locator} | ||
| 115 | - Run Keyword And Return If 'cancellationReason' == '${field_name}' get value by locator on opened page ${claim_cancellation_reason_value_locator} | ||
| 116 | - | ||
| 117 | -Отримати інформацію із документа скарги title | ||
| 118 | - [Arguments] ${complaintID} ${doc_id} | ||
| 119 | - [Documentation] Отримати значення поля title з документу з doc_id в описі для скарги для тендера. | ||
| 120 | - | ||
| 121 | - click visible element ${claim_page_open_btn_locator} | ||
| 122 | - ${claim_open_form_answer_locator} = replace string ${claim_open_form_answer_btn_locator_tpl} %title% ${complaintID} | ||
| 123 | - wait until page contains element with reloading ${claim_open_form_answer_locator} | ||
| 124 | - ${claim_file_name_input_locator} = replace string ${claim_file_name_input_locator_tpl} %complain_id% ${complaintID} | ||
| 125 | -# wait until page contains element with reloading ${claim_file_name_input_locator} | ||
| 126 | - | ||
| 127 | - ${return_value} = get text ${claim_file_name_input_locator} | ||
| 128 | - [return] ${return_value} | ||
| 129 | - | ||
| 130 | -get document complaint | ||
| 131 | - [Arguments] ${complaintID} ${doc_id} | ||
| 132 | - [Documentation] Завантажити файл doc_id до скарги complaintID для тендера tender_uaid | ||
| 133 | - ... в директорію ${OUTPUT_DIR} для перевірки вмісту цього файлу. | ||
| 134 | - | ||
| 135 | - ${claim_file_name_input_locator} = replace string ${claim_file_name_input_locator_tpl} %complain_id% ${complaintID} | ||
| 136 | - wait until page contains element with reloading ${claim_file_name_input_locator} | ||
| 137 | - ${claim_file_link_input_locator} = replace string ${claim_file_link_input_locator_tpl} %complain_id% ${complaintID} | ||
| 138 | - ${claim_file_name_input_locator} = replace string ${claim_file_name_input_locator_tpl} %complain_id% ${complaintID} | ||
| 139 | - wait until page contains element with reloading ${tender_new_doc_locator} | ||
| 140 | - | ||
| 141 | - ${file_link} = Execute Javascript ${claim_file_link_input_locator} | ||
| 142 | - ${file_name} = get text ${claim_file_name_input_locator} | ||
| 143 | - download_file ${file_link} ${file_name} ${OUTPUT_DIR} | ||
| 144 | - [return] ${file_name} | ||
| 145 | - | ||
| 146 | - | ||
| 147 | -Підтвердити вирішення вимоги | ||
| 148 | - [Arguments] ${username} ${tender_uaid} ${type} ${type_id} ${complaintID} ${data} ${award_index} | ||
| 149 | - [Documentation] Підтвердити вирішення вимоги | ||
| 150 | - | ||
| 151 | - open tender page by uaid ${tender_uaid} | ||
| 152 | - click visible element ${claim_page_open_btn_locator} | ||
| 153 | - click visible element and wait until page contains element ${claim_page_open_btn_locator} ${claim_form_open_btn_locator} | ||
| 154 | - ${claim_form_resolved_input_locator} = replace string ${claim_form_resolved_input_locator_tpl} %complaint_id% ${complaintID} | ||
| 155 | - open popup by btn locator ${claim_form_resolved_input_locator} | ||
| 156 | - ${value} = Set Variable If '${data.data.satisfied}' Задоволен Не задоволен | ||
| 157 | - run keyword and ignore error select from visible list by label ${claim_form_satisfied_input_locator} ${value} | ||
| 158 | - capture page screenshot | ||
| 159 | - submit form and check result ${claim_form_complaintform_submit_btn_locator} ${claim_form_satisfied_submit_success_msg} ${None} | ||
| 160 | - | ||
| 161 | - | ||
| 162 | -Відповісти на вимогу | ||
| 163 | - [Arguments] ${username} ${tender_uaid} ${complaintID} ${answer_data} ${award_index} | ||
| 164 | - [Documentation] Відповісти на вимогу complaintID | ||
| 165 | - ... для тендера tender_uaid, використовуючи при цьому дані answer_data. | ||
| 166 | - | ||
| 167 | - open tender page by uaid ${tender_uaid} | ||
| 168 | - click visible element ${claim_page_open_btn_locator} | ||
| 169 | - ${claim_open_form_answer_locator} = replace string ${claim_open_form_answer_btn_locator_tpl} %title% ${complaintID} | ||
| 170 | - wait until page contains element with reloading ${claim_open_form_answer_locator} | ||
| 171 | - ${claim_form_open_form_answer_btn_locator} = replace string ${claim_form_open_form_answer_btn_locator_tpl} %title% ${complaintID} | ||
| 172 | - wait until page contains element with reloading ${claim_form_open_form_answer_btn_locator} | ||
| 173 | - open popup by btn locator ${claim_form_open_form_answer_btn_locator} | ||
| 174 | - input text to exist visible input ${claim_form_answer_resolution_value_locator} ${answer_data.data.resolution} | ||
| 175 | - Run Keyword If '${answer_data.data.resolutionType}' == 'resolved' select from list by value ${claim_form_answer_resolution_type_value_locator} resolved | ||
| 176 | - Run Keyword If '${answer_data.data.resolutionType}' == 'declined' select from list by value ${claim_form_answer_resolution_type_value_locator} declined | ||
| 177 | - Run Keyword If '${answer_data.data.resolutionType}' == 'invalid' select from list by value ${claim_form_answer_resolution_type_value_locator} invalid | ||
| 178 | - Run Keyword And Ignore Error input text to exist visible input ${claim_form_answer_tenderer_action_value_locator} ${answer_data.data.tendererAction} | ||
| 179 | - submit form and check result ${claim_form_answer_success_btn_locator} ${claim_form_answer_submit_success_msg} | ||
| 180 | - | ||
| 181 | - | ||
| 182 | -Wait For Answered | ||
| 183 | - [Arguments] ${complaintID} ${wrapper} | ||
| 184 | - [Documentation] Очікування статусу Answered вимоги complaintID | ||
| 185 | - ... для тендера tender_uaid. | ||
| 186 | - | ||
| 187 | - Reload Page | ||
| 188 | - ${claim_form_status_locator} = replace string ${claim_form_status_locator_tpl} %query% answered | ||
| 189 | - ${claim_status_value_locator} = set variable ${wrapper} ${claim_form_status_locator} | ||
| 190 | - Page Should Contain Element ${claim_status_value_locator} | ||
| 191 | - | ||
| 192 | -Wait For Satisfied | ||
| 193 | - [Arguments] ${complaintID} ${wrapper} | ||
| 194 | - [Documentation] Очікування статусу Answered вимоги complaintID | ||
| 195 | - ... для тендера tender_uaid. | ||
| 196 | - | ||
| 197 | - Reload Page | ||
| 198 | - ${claim_form_satisfied_value_locator} = replace string ${claim_form_satisfied_value_locator_tpl} %query% Так | ||
| 199 | - ${claim_form_satisfied_value_locator_tmp} = set variable ${wrapper} ${claim_form_satisfied_value_locator} | ||
| 200 | - Page Should Contain Element ${claim_form_satisfied_value_locator_tmp} | ||
| 201 | - | ||
| 202 | -Wait For Resolved | ||
| 203 | - [Arguments] ${complaintID} ${wrapper} | ||
| 204 | - [Documentation] Очікування статусу Answered вимоги complaintID | ||
| 205 | - ... для тендера tender_uaid. | ||
| 206 | - | ||
| 207 | - Reload Page | ||
| 208 | - ${claim_form_resolved_value_locator} = replace string ${claim_form_status_locator_tpl} %query% resolved | ||
| 209 | - ${claim_form_resolved_value_locator_tmp} = set variable ${wrapper} ${claim_form_resolved_value_locator} | ||
| 210 | - Page Should Contain Element ${claim_form_resolved_value_locator_tmp} | ||
| 211 | - | ||
| 212 | -Wait For Cancelled | ||
| 213 | - [Arguments] ${complaintID} ${wrapper} | ||
| 214 | - [Documentation] Очікування статусу Answered вимоги complaintID | ||
| 215 | - ... для тендера tender_uaid. | ||
| 216 | - | ||
| 217 | - Reload Page | ||
| 218 | - ${claim_form_status_locator} = replace string ${claim_form_status_locator_tpl} %query% cancelled | ||
| 219 | - ${claim_status_value_locator} = set variable ${wrapper} ${claim_form_status_locator} | ||
| 220 | - Page Should Contain Element ${claim_status_value_locator} | ||
| 221 | - | ||
| 222 | -Wait For Ignored | ||
| 223 | - [Arguments] ${complaintID} ${wrapper} | ||
| 224 | - [Documentation] Очікування статусу Answered вимоги complaintID | ||
| 225 | - ... для тендера tender_uaid. | ||
| 226 | - | ||
| 227 | - Reload Page | ||
| 228 | - ${claim_form_status_locator} = replace string ${claim_form_status_locator_tpl} %query% ignored | ||
| 229 | - ${claim_status_value_locator} = set variable ${wrapper} ${claim_form_status_locator} | ||
| 230 | - Page Should Contain Element ${claim_status_value_locator} | ||
| 231 | - | ||
| 232 | -Wait For Stopping | ||
| 233 | - [Arguments] ${complaintID} ${wrapper} | ||
| 234 | - [Documentation] Очікування статусу Answered вимоги complaintID | ||
| 235 | - ... для тендера tender_uaid. | ||
| 236 | - | ||
| 237 | - Reload Page | ||
| 238 | - ${claim_form_status_locator} = replace string ${claim_form_status_locator_tpl} %query% stopping | ||
| 239 | - ${claim_status_value_locator} = set variable ${wrapper} ${claim_form_status_locator} | ||
| 240 | - Page Should Contain Element ${claim_status_value_locator} | ||
| 241 | - | ||
| 242 | -Wait For Pending | ||
| 243 | - [Arguments] ${complaintID} ${wrapper} | ||
| 244 | - [Documentation] Очікування статусу Pending вимоги complaintID | ||
| 245 | - ... для тендера tender_uaid. | ||
| 246 | - | ||
| 247 | - Reload Page | ||
| 248 | - ${claim_form_status_locator} = replace string ${claim_form_status_locator_tpl} %query% pending | ||
| 249 | - ${claim_status_value_locator} = set variable ${wrapper} ${claim_form_status_locator} | ||
| 250 | - Page Should Contain Element ${claim_status_value_locator} | ||
| 251 | - | ||
| 252 | -Отримати інформацію із скарги satisfied | ||
| 253 | - [Arguments] ${wrapper} | ||
| 254 | - [Documentation] Отримати інформацію із скарги satisfied | ||
| 255 | - | ||
| 256 | - | ||
| 257 | - ${return_value} = get value by locator on opened page ${wrapper} | ||
| 258 | - ${return_value} = Run Keyword If 'Так' == '${return_value}' Set Variable True | ||
| 259 | - ... ELSE Set Variable False | ||
| 260 | - ${return_value} = Convert To Boolean ${return_value} | ||
| 261 | - [return] ${return_value} | ||
| 262 | - | ||
| 263 | -Wait For Invalid | ||
| 264 | - [Arguments] ${complaintID} ${wrapper} | ||
| 265 | - [Documentation] Очікування статусу Invalid вимоги complaintID | ||
| 266 | - ... для тендера tender_uaid. | ||
| 267 | - | ||
| 268 | - Reload Page | ||
| 269 | - ${claim_form_status_locator} = replace string ${claim_form_status_locator_tpl} %query% invalid | ||
| 270 | - ${claim_status_value_locator} = set variable ${wrapper} ${claim_form_status_locator} | ||
| 271 | - Page Should Contain Element ${claim_status_value_locator} | ||
| 272 | - | ||
| 273 | -Wait For Declined | ||
| 274 | - [Arguments] ${complaintID} ${wrapper} | ||
| 275 | - [Documentation] Очікування статусу declined вимоги complaintID | ||
| 276 | - ... для тендера tender_uaid. | ||
| 277 | - | ||
| 278 | - Reload Page | ||
| 279 | - ${claim_form_status_locator} = replace string ${claim_form_status_locator_tpl} %query% declined | ||
| 280 | - ${claim_status_value_locator} = set variable ${wrapper} ${claim_form_status_locator} | ||
| 281 | - Page Should Contain Element ${claim_status_value_locator} | ||
| 282 | - | ||
| 283 | - |
playtender_claim_variables.robot
deleted
100644 → 0
| 1 | -*** Variables *** | ||
| 2 | - | ||
| 3 | -#claim | ||
| 4 | -${claim_page_open_btn_locator} = jquery=#aside-part-pjax a[href*="/tender-complaint"] | ||
| 5 | -#${claim_form_open_btn_locator} = jquery=#tender-part-pjax a[href*="/tender/complaint-create"]:first | ||
| 6 | -${claim_form_open_btn_locator} = jquery=#tender-part-pjax a[href*="tender-complaint/create"]:first | ||
| 7 | -${claim_form_complaintform_title_input_locator} = jquery=.fancybox-is-open .fancybox-content input[id*="complaintform-title"] | ||
| 8 | -${claim_form_complaintform_description_input_locator} = jquery=.fancybox-is-open .fancybox-content textarea[id*="complaintform-description"] | ||
| 9 | -${claim_form_complaintform_related_of_input_locator} = jquery=.fancybox-is-open .fancybox-content select[id*="complaintform-related_of"] | ||
| 10 | -${claim_form_complaintform_related_lot_input_locator} = jquery=.fancybox-is-open .fancybox-content select[id*="complaintform-related_lot"] | ||
| 11 | -${claim_form_complaintform_related_lot_input_locator_tpl} = jquery=.fancybox-is-open .fancybox-content select[id*="complaintform-related_lot"] option:contains("%type_id%") | ||
| 12 | -${claim_form_complaintform_complaintform_type_input_locator} = jquery=.fancybox-is-open .fancybox-content select[id*="complaintform-type"] | ||
| 13 | -${claim_form_complaintform_document_btn_locator} = jquery=.fancybox-is-open .fancybox-content a[data-url*="/tender/get-complaint-document"] | ||
| 14 | -${claim_form_complaintform_submit_btn_locator} = jquery=.fancybox-is-open .fancybox-content button.btn.btn-success | ||
| 15 | -${claim_uaid_text_locator} = jquery=#tender-complaint-list div.item.js-item:first .complaint-id span.value | ||
| 16 | -#${claim_form_submit_success_msg} = Вимога успішно подана | ||
| 17 | -${claim_form_submit_success_msg} = успішно подана | ||
| 18 | - | ||
| 19 | -${claim_cancel_submit_success_msg} = Вимога/скарга скасована. | ||
| 20 | - | ||
| 21 | -#${claim_form_cancel_open_btn_locator_tpl} = jquery=#tender-complaint-list div.item.js-item a[href*="/tender/complaint-cancel"]:last | ||
| 22 | -#${claim_form_cancel_open_btn_locator} = jquery=#tender-complaint-list div.item.js-item a[href*="/tender/complaint-cancel"]:last | ||
| 23 | -${claim_form_cancellation_reason_input_locator} = jquery=#complaintcancelform-cancellation_reason | ||
| 24 | -${claim_form_cancel_open_btn_locator_tpl} = jquery=#tender-part-pjax #tender-complaint-list .complaint__item[data-complaint-id*="%complaint_id%"] a[href*="/tender/complaint-cancel"] | ||
| 25 | - | ||
| 26 | -${claim_file_link_input_locator_tpl} = return $('#tender-complaint-list .js-item div[data-complaint-id*="%complain_id%"] .complaint-info-wrapper .info-row.documents .value a[href*="https://public-docs-staging.prozorro.gov.ua"]').attr("href") | ||
| 27 | -${claim_file_name_input_locator_tpl} = jquery=#tender-complaint-list .js-item div[data-complaint-id*="%complain_id%"] .complaint-info-wrapper .info-row.documents .value a[href*="https://public-docs-staging.prozorro.gov.ua"] | ||
| 28 | - | ||
| 29 | -${claim_wrapper_complain_id_value_locator_tpl} = jquery=#tender-complaint-pjax .complaint__item:first | ||
| 30 | -#${claim_wrapper_complain_id_value_locator_tpl} = jquery=#tender-complaint-pjax .complaint__item[data-title*="%complain_id%"] | ||
| 31 | -${claim_description_value_locator} = .complaint-info-wrapper .info-row.description .value | ||
| 32 | -${claim_title_value_locator} = .complaint-info-wrapper .info-row.title .value | ||
| 33 | -${claim_complain_id_value_locator} = .complaint-info-wrapper .info-row.complaint-id .value | ||
| 34 | -${claim_status_value_locator} = .complaint-info-wrapper .info-row.status-source.hidden | ||
| 35 | -${claim_resolution_type_value_locator} = .complaint-info-wrapper .info-row.resolution-type-source.hidden | ||
| 36 | -${claim_cancellation_reason_value_locator} = .complaint-info-wrapper .info-row.cancellation-reason .value | ||
| 37 | -${claim_related_lot_value_locator} = .complaint-info-wrapper .info-row.related-item .value | ||
| 38 | -${claim_resolution_value_locator} = .complaint-info-wrapper .info-row.resolution .value | ||
| 39 | -${claim_satisfied_value_locator} = .complaint-info-wrapper .info-row.satisfied .value | ||
| 40 | - | ||
| 41 | -${claim_sync_element_locator} = jquery=.synhronized__icon.fa.fa-refresh.fa-spin | ||
| 42 | - | ||
| 43 | -${claim_open_form_answer_btn_locator_tpl} = jquery=#tender-complaint-list .js-item div[data-complaint-id*="%title%"] | ||
| 44 | -${claim_form_open_form_answer_btn_locator_tpl} = jquery=#tender-complaint-list .js-item div[data-complaint-id*="%title%"] .btn.btn-success | ||
| 45 | -${claim_form_resolved_input_locator_tpl} = jquery=#tender-part-pjax #tender-complaint-list .complaint__item[data-complaint-id*="%complaint_id%"] a[href*="/tender/complaint-resolve"] | ||
| 46 | -${claim_form_satisfied_input_locator} = jquery=.fancybox-is-open .fancybox-content #complaintresolveform-satisfied | ||
| 47 | -${claim_form_satisfied_submit_success_msg} = Вимога вирішена, дочекайтесь опублікування на сайті уповноваженого органу. | ||
| 48 | -#formanswer | ||
| 49 | -${claim_form_answer_resolution_value_locator} = jquery=#tender-complaint-answer-form #complaintanswerform-resolution | ||
| 50 | -${claim_form_answer_tenderer_action_value_locator} = jquery=#tender-complaint-answer-form #complaintanswerform-tenderer_action | ||
| 51 | -${claim_form_answer_resolution_type_value_locator} = jquery=#tender-complaint-answer-form #complaintanswerform-resolution_type | ||
| 52 | -${claim_form_answer_success_btn_locator} = jquery=#tender-complaint-answer-form .btn.btn-success | ||
| 53 | -${claim_form_answer_submit_success_msg} = Відповідь на вимогу надана, дочекайтесь опублікування на сайті уповноваженого органу. | ||
| 54 | -${claim_form_status_locator_tpl} = .complaint-info-wrapper .info-row.status-source.hidden:contains(%query%) | ||
| 55 | -${claim_form_satisfied_value_locator_tpl} = .complaint-info-wrapper .info-row.satisfied .value:contains(%query%) |
playtender_common.robot
deleted
100644 → 0
| 1 | -*** Settings *** | ||
| 2 | - | ||
| 3 | -Library Selenium2Library | ||
| 4 | -Library String | ||
| 5 | -Library Collections | ||
| 6 | -Library playtender_service.py | ||
| 7 | -Resource playtender_variables.robot | ||
| 8 | - | ||
| 9 | -*** Variables *** | ||
| 10 | - | ||
| 11 | -${broker} = playtender | ||
| 12 | -${broker_username} = | ||
| 13 | -${broker_baseurl} = | ||
| 14 | -${broker_browser} = | ||
| 15 | -${broker_language_code} = uk | ||
| 16 | -${test_role} = | ||
| 17 | -${is_test_role_owner} = | ||
| 18 | - | ||
| 19 | -@{browser_default_size} = ${1200} ${1000} | ||
| 20 | -@{browser_default_position} = ${0} ${0} | ||
| 21 | - | ||
| 22 | -${popup_transaction_time} = 600ms | ||
| 23 | - | ||
| 24 | -*** Keywords *** | ||
| 25 | - | ||
| 26 | -init environment | ||
| 27 | - [Arguments] ${username} | ||
| 28 | - [Documentation] ініціює необхідні глобальні змінні | ||
| 29 | - | ||
| 30 | - set global variable ${broker_username} ${username} | ||
| 31 | - set global variable ${broker_baseurl} ${BROKERS['${broker}'].basepage} | ||
| 32 | - set global variable ${broker_browser} ${USERS.users['${broker_username}'].browser} | ||
| 33 | - set global variable ${test_role} ${ROLE} | ||
| 34 | - ${is_test_role_owner} = set variable if '${test_role}' == 'tender_owner' ${True} ${False} | ||
| 35 | - set global variable ${is_test_role_owner} ${is_test_role_owner} | ||
| 36 | - | ||
| 37 | - register keyword to run on failure __private__handle_keyword_failure | ||
| 38 | - | ||
| 39 | -set site language by code | ||
| 40 | - [Arguments] ${language_code} | ||
| 41 | - [Documentation] змінити мову сайту | ||
| 42 | - | ||
| 43 | - ${is_equal} = __private__check_site_language_code ${language_code} | ||
| 44 | - run keyword if ${is_equal} == ${False} __private__open_site_language_dropdown_and_select_language_by_code ${language_code} | ||
| 45 | - | ||
| 46 | -login to site | ||
| 47 | - [Arguments] ${user_data} | ||
| 48 | - [Documentation] авторизувати вказаного користувача, масив повинен містити login, password | ||
| 49 | - | ||
| 50 | -# click visible element ${login_popup_open_locator} | ||
| 51 | -# wait until popup is visible | ||
| 52 | - open popup by btn locator ${login_popup_open_locator} | ||
| 53 | - input text to visible input ${login_popup_login_input_locator} ${user_data['login']} | ||
| 54 | - input text to visible input ${login_popup_password_input_locator} ${user_data['password']} | ||
| 55 | - click visible element ${login_popup_submit_btn_locator} | ||
| 56 | - wait until page contains element ${user_logged_checker_element_locator} 30s User can not login | ||
| 57 | - | ||
| 58 | -fill item form in opened popup | ||
| 59 | - [Arguments] ${data} | ||
| 60 | - [Documentation] заповнює відкриту форму згідно вказаних даних | ||
| 61 | - | ||
| 62 | - ${description} = get from dictionary by keys ${data} description | ||
| 63 | - run keyword if condition is not none ${description} input text to visible input ${item_form_popup_description_input_locator} ${description} | ||
| 64 | - ${description_ru} = get from dictionary by keys ${data} description_ru | ||
| 65 | - run keyword if condition is not none ${description_ru} input text to exist visible input ${item_form_popup_description_ru_input_locator} ${description_ru} | ||
| 66 | - ${description_en} = get from dictionary by keys ${data} description_en | ||
| 67 | - run keyword if condition is not none ${description_en} input text to exist visible input ${item_form_popup_description_en_input_locator} ${description_en} | ||
| 68 | - ${quantity} = get from dictionary by keys ${data} quantity | ||
| 69 | - run keyword and ignore error run keyword if condition is not none ${quantity} input number3 to visible input ${item_form_popup_quantity_input_locator} ${quantity} | ||
| 70 | - ${unit} = get from dictionary by keys ${data} unit name | ||
| 71 | - run keyword if condition is not none ${unit} select from visible list by label ${item_form_popup_unit_input_locator} ${unit} | ||
| 72 | - ${classification} = get from dictionary by keys ${data} classification | ||
| 73 | - run keyword if condition is not none ${classification} run keyword if '${mode}' not in 'framework_selection' select classification by code attributes ${item_form_popup_classification_edit_btn_locator} ${classification} | ||
| 74 | - ${additional_classifications} = get from dictionary by keys ${data} additionalClassifications | ||
| 75 | - run keyword if condition is not none ${additional_classifications} run keyword if '${mode}' not in 'framework_selection' select classification by array of code attributes ${item_form_popup_additional_classification_edit_btn_locator} ${additional_classifications} | ||
| 76 | - | ||
| 77 | -get value by locator on opened page | ||
| 78 | - [Arguments] ${locator} ${type}=${None} | ||
| 79 | - [Documentation] отримує значення з відповідного локатору і якщо потрібно перетворює до відповідного типу | ||
| 80 | - | ||
| 81 | - capture page screenshot | ||
| 82 | - Run Keyword And Ignore Error __private__set_element_visible_in_browser_area ${locator} | ||
| 83 | - ${value} = get value by locator ${locator} | ||
| 84 | - ${value} = convert to specified type ${value} ${type} | ||
| 85 | - [Return] ${value} | ||
| 86 | - | ||
| 87 | -get field_value by field_name on opened page | ||
| 88 | - [Arguments] ${field_name} | ||
| 89 | - [Documentation] повертає інформацію з відкритої сторінки, користуючись назвою поля ${field_name}. | ||
| 90 | - ... для назви поля повинен бути вказаний відповідний локатор (!вкінці змінної повинно бути слово locator), | ||
| 91 | - ... і якщо потрібно тип поля окремою змінною (!locator замінюється на type) зі значенням [string,integer,float] | ||
| 92 | - | ||
| 93 | - ${field_name_prepared} = replace string ${field_name} .[ _ | ||
| 94 | - ${field_name_prepared} = replace string ${field_name_prepared} ]. _ | ||
| 95 | - ${field_name_prepared} = replace string ${field_name_prepared} . _ | ||
| 96 | - ${field_name_prepared} = replace string ${field_name_prepared} [ _ | ||
| 97 | - ${field_name_prepared} = replace string ${field_name_prepared} ] _ | ||
| 98 | - ${field_locator_variable_name} = set variable ${field_name_prepared}_locator | ||
| 99 | - ${field_type_variable_name} = set variable ${field_name_prepared}_type | ||
| 100 | - ${field_type_variable_exists} = run keyword and return status variable should exist ${${field_type_variable_name}} | ||
| 101 | - ${field_type} = set variable if ${field_type_variable_exists} == ${True} ${${field_type_variable_name}} ${None} | ||
| 102 | - ${field_locator} = set variable ${${field_locator_variable_name}} | ||
| 103 | - ${field_value} = get value by locator on opened page ${field_locator} ${field_type} | ||
| 104 | - [Return] ${field_value} | ||
| 105 | - | ||
| 106 | -######################################################################################################################## | ||
| 107 | -#################################################### COMMON HELPERS #################################################### | ||
| 108 | -######################################################################################################################## | ||
| 109 | - | ||
| 110 | -click visible element | ||
| 111 | - [Arguments] ${locator} | ||
| 112 | - [Documentation] перевіряє видимість і клікає по елементу | ||
| 113 | - | ||
| 114 | - __private__set_element_visible_in_browser_area ${locator} | ||
| 115 | - click element ${locator} | ||
| 116 | - | ||
| 117 | -click visible element and wait until page contains element | ||
| 118 | - [Arguments] ${locator} ${checker_element_locator} ${waiting_timeout}=30s ${waiting_error}=Another element was not shown after clicking on specific element | ||
| 119 | - [Documentation] перевіряє видимість і клікає по елементу | ||
| 120 | - | ||
| 121 | - click visible element ${locator} | ||
| 122 | - wait until page contains element ${checker_element_locator} ${waiting_timeout} ${waiting_error} | ||
| 123 | - | ||
| 124 | -click removing form item and wait success result | ||
| 125 | - [Arguments] ${locator} | ||
| 126 | - [Documentation] натискає кнопку видалення, очікує успішне повідомлення і закриває повідомлення | ||
| 127 | - | ||
| 128 | - click visible element ${locator} | ||
| 129 | - wait until alert is visible | ||
| 130 | - click visible element ${alert_confirm_btn_locator} | ||
| 131 | - wait until page does not contain element ${alert_confirm_btn_locator} | ||
| 132 | - | ||
| 133 | -click removing form feature and wait success result | ||
| 134 | - [Arguments] ${locator} | ||
| 135 | - [Documentation] натискає кнопку видалення нецінового критерію, очікує успішне повідомлення і закриває повідомлення, а потім закриває вікно нецінового критерію | ||
| 136 | - | ||
| 137 | - js click element ${locator} | ||
| 138 | - wait until alert is visible | ||
| 139 | - click visible element ${alert_confirm_btn_locator} | ||
| 140 | - wait until page does not contain element ${alert_confirm_btn_locator} | ||
| 141 | - submit current visible popup | ||
| 142 | - | ||
| 143 | -input text to visible input | ||
| 144 | - [Arguments] ${locator} ${text} | ||
| 145 | - [Documentation] перевіряє чи елемент видимий у вікні браузера, після чого заповнює його | ||
| 146 | - | ||
| 147 | - __private__set_element_visible_in_browser_area ${locator} | ||
| 148 | - input text ${locator} ${text} | ||
| 149 | - | ||
| 150 | -input text to visible input and press enter | ||
| 151 | - [Arguments] ${locator} ${text} | ||
| 152 | - [Documentation] перевіряє чи елемент видимий у вікні браузера, після чого заповнює його і імітує натиснення кнопки Enter | ||
| 153 | - | ||
| 154 | - input text to visible input ${locator} ${text} | ||
| 155 | - press key ${locator} \\13 | ||
| 156 | - | ||
| 157 | -input text to exist visible input | ||
| 158 | - [Arguments] ${locator} ${text} | ||
| 159 | - [Documentation] перевіряє чи елемент існує і видимий у вікні браузера, після чого заповнює його | ||
| 160 | - | ||
| 161 | - ${input_exists} = get is element exist ${locator} | ||
| 162 | - run keyword if ${input_exists} == ${True} input text to visible input ${locator} ${text} | ||
| 163 | - ... ELSE __private__log input ${locator} does not exist | ||
| 164 | - | ||
| 165 | -input date to input | ||
| 166 | - [Arguments] ${locator} ${isodate} ${format}=%d.%m.%Y | ||
| 167 | - | ||
| 168 | - ${date} = isodate format ${isodate} ${format} | ||
| 169 | - input text to hidden input ${locator} ${date} | ||
| 170 | - | ||
| 171 | -input datetime to input | ||
| 172 | - [Arguments] ${locator} ${isodate} ${format}=%d.%m.%Y %H:%M | ||
| 173 | - | ||
| 174 | - input date to input ${locator} ${isodate} ${format} | ||
| 175 | - | ||
| 176 | -input date to visible input | ||
| 177 | - [Arguments] ${locator} ${isodate} ${format}=%d.%m.%Y | ||
| 178 | - [Documentation] перевіряє чи елемент видимий у вікні браузера, після чого заповнює його відформатовоною датою | ||
| 179 | - | ||
| 180 | - __private__set_element_visible_in_browser_area ${locator} | ||
| 181 | - input date to input ${locator} ${isodate} ${format} | ||
| 182 | - | ||
| 183 | -input datetime to visible input | ||
| 184 | - [Arguments] ${locator} ${isodate} ${format}=%d.%m.%Y %H:%M | ||
| 185 | - [Documentation] перевіряє чи елемент видимий у вікні браузера, після чого заповнює його відформатовоною датою | ||
| 186 | - | ||
| 187 | - input date to visible input ${locator} ${isodate} ${format} | ||
| 188 | - | ||
| 189 | -input datetime to exist visible input | ||
| 190 | - [Arguments] ${locator} ${isodate} ${format}=%d.%m.%Y %H:%M | ||
| 191 | - [Documentation] перевіряє чи елемент видимий у вікні браузера, після чого заповнює його відформатовоною датою | ||
| 192 | - | ||
| 193 | - ${input_exists} = get is element exist ${locator} | ||
| 194 | - run keyword if ${input_exists} == ${True} input date to visible input ${locator} ${isodate} ${format} | ||
| 195 | - ... ELSE __private__log input ${locator} does not exist | ||
| 196 | - | ||
| 197 | -input number to visible input | ||
| 198 | - [Arguments] ${locator} ${number} | ||
| 199 | - [Documentation] робить елемент видимим, число перетворює в строку і записує в поле | ||
| 200 | - | ||
| 201 | - ${number} = convert float to string ${number} | ||
| 202 | - input text to visible input ${locator} ${number} | ||
| 203 | - | ||
| 204 | -input number3 to visible input | ||
| 205 | - [Arguments] ${locator} ${number} | ||
| 206 | - [Documentation] робить елемент видимим, число перетворює в строку і записує в поле | ||
| 207 | - | ||
| 208 | - ${number} = convert_float_to_string_3f ${number} | ||
| 209 | - input text to visible input ${locator} ${number} | ||
| 210 | - | ||
| 211 | -input number to exist visible input | ||
| 212 | - [Arguments] ${locator} ${text} | ||
| 213 | - [Documentation] перевіряє чи елемент існує і видимий у вікні браузера, після чого заповнює його | ||
| 214 | - | ||
| 215 | - ${input_exists} = get is element exist ${locator} | ||
| 216 | - run keyword if ${input_exists} == ${True} input number to visible input ${locator} ${text} | ||
| 217 | - ... ELSE __private__log input ${locator} does not exist | ||
| 218 | - | ||
| 219 | -input month.year of date to visible input | ||
| 220 | - [Arguments] ${locator} ${isodate} | ||
| 221 | - [Documentation] робить елемент видимим, витягує місяць.рік і записує в поле | ||
| 222 | - | ||
| 223 | - ${value} = isodate format ${isodate} %m.%Y | ||
| 224 | - input text to visible input ${locator} ${value} | ||
| 225 | - | ||
| 226 | -input to search form and wait results | ||
| 227 | - [Arguments] ${query_input_locator} ${query} ${result_locator_tpl} | ||
| 228 | - [Documentation] заповнює форму і очікує результат по шаблону селектора | ||
| 229 | - | ||
| 230 | - input text to visible input and press enter ${query_input_locator} ${query} | ||
| 231 | - ${result_locator} = replace string ${result_locator_tpl} %query% ${query} | ||
| 232 | - wait until page contains search ${result_locator} | ||
| 233 | -# wait until page contains element with reloading ${result_locator} | ||
| 234 | - | ||
| 235 | -select from visible list by value | ||
| 236 | - [Arguments] ${locator} ${value} | ||
| 237 | - [Documentation] робить елемент видимим, після чого заповнює його | ||
| 238 | - | ||
| 239 | - __private__set_element_visible_in_browser_area ${locator} | ||
| 240 | - select from list by value ${locator} ${value} | ||
| 241 | - trigger input change event ${locator} | ||
| 242 | - | ||
| 243 | -select from visible list by label | ||
| 244 | - [Arguments] ${locator} ${label} | ||
| 245 | - [Documentation] робить елемент видимим, після чого заповнює його | ||
| 246 | - | ||
| 247 | - __private__set_element_visible_in_browser_area ${locator} | ||
| 248 | - select from hidden list by label ${locator} ${label} | ||
| 249 | - trigger input change event ${locator} | ||
| 250 | - | ||
| 251 | -select from visible list by year of date | ||
| 252 | - [Arguments] ${locator} ${isodate} | ||
| 253 | - [Documentation] робить елемент видимим, витягує рік і обирає в списку | ||
| 254 | - | ||
| 255 | - ${value} = isodate format ${isodate} %Y | ||
| 256 | - select from visible list by value ${locator} ${value} | ||
| 257 | - | ||
| 258 | -select classification by code attributes | ||
| 259 | - [Arguments] ${btn_locator} ${code_attributes} | ||
| 260 | - [Documentation] натискає кнопку відкриття попапу класифікатора і чекає поки він відмалюється, шукає відповідний код і закриває попап | ||
| 261 | - | ||
| 262 | - ${code_attributes_array} = create list ${code_attributes} | ||
| 263 | - select classification by array of code attributes ${btn_locator} ${code_attributes_array} | ||
| 264 | - | ||
| 265 | -select classification by array of code attributes | ||
| 266 | - [Arguments] ${btn_locator} ${code_attributes_array} ${include_schemes}=${None} ${exclude_schemes}=${None} | ||
| 267 | - [Documentation] натискає кнопку відкриття попапу класифікатора і чекає поки він відмалюється, шукає відповідні коди і закриває попап | ||
| 268 | - | ||
| 269 | - ${include_schemes_is_none}= get variable is none ${include_schemes} | ||
| 270 | - ${exclude_schemes_is_none}= get variable is none ${exclude_schemes} | ||
| 271 | - | ||
| 272 | - open popup by btn locator ${btn_locator} ${classification_popup_opened_content_locator} | ||
| 273 | - Capture Page Screenshot | ||
| 274 | - :FOR ${code_attributes} IN @{code_attributes_array} | ||
| 275 | - \ ${disabled} = set variable if ${include_schemes_is_none} == ${False} and '${code_attributes['scheme']}' not in ${include_schemes} ${True} ${False} | ||
| 276 | - \ Capture Page Screenshot | ||
| 277 | - \ ${disabled} = set variable if ${exclude_schemes_is_none} == ${False} and '${code_attributes['scheme']}' in ${exclude_schemes} ${True} ${disabled} | ||
| 278 | - \ Capture Page Screenshot | ||
| 279 | - \ run keyword if ${disabled} == ${False} __private__select_classification_code_in_opened_popup ${code_attributes['id']} ${code_attributes['scheme']} | ||
| 280 | - \ Capture Page Screenshot | ||
| 281 | - Capture Page Screenshot | ||
| 282 | - submit current visible popup | ||
| 283 | - | ||
| 284 | -open site page and wait content element | ||
| 285 | - [Arguments] ${url} ${waiting_timeout}=5s ${waiting_error}=Opening page fails | ||
| 286 | - [Documentation] переходить по посиланню і чекає контенту сторінки | ||
| 287 | - | ||
| 288 | - go to ${url} | ||
| 289 | - wait until page contains element ${page_content_locator} ${waiting_timeout} ${waiting_error} | ||
| 290 | - | ||
| 291 | -open page and wait element by locator | ||
| 292 | - [Arguments] ${url} ${waiting_element_locator} ${waiting_timeout}=5s ${waiting_error}=Opened page does not have specified element locator | ||
| 293 | - [Documentation] переходить по посиланню і чекає поки елемент не буде знайдений на сторінці | ||
| 294 | - | ||
| 295 | - go to ${url} | ||
| 296 | - wait until page contains element ${waiting_element_locator} ${waiting_timeout} ${waiting_error} | ||
| 297 | - | ||
| 298 | -open popup by btn locator | ||
| 299 | - [Arguments] ${btn_locator} ${popup_locator}=${None} | ||
| 300 | - [Documentation] натискає кнопку відкриття попапу і чекає поки він відмалюється | ||
| 301 | - | ||
| 302 | - click visible element ${btn_locator} | ||
| 303 | - ${result} = run keyword and return status wait until popup is visible ${popup_locator} | ||
| 304 | - run keyword if ${result} == ${False} js click element ${btn_locator} | ||
| 305 | - run keyword if ${result} == ${False} wait until popup is visible ${popup_locator} | ||
| 306 | - | ||
| 307 | -submit current visible popup | ||
| 308 | - [Documentation] натискає кнопку сабміту в поточному попапі і чекає поки він закриється | ||
| 309 | - | ||
| 310 | - ${popup_last_id} = __private__get_element_attribute ${popup_opened_last_locator} id | ||
| 311 | - click visible element ${popup_opened_last_submit_btn_locator} | ||
| 312 | - sleep ${popup_transaction_time} | ||
| 313 | - ${popup_last_locator} = set variable id=${popup_last_id} | ||
| 314 | - ${popup_exists} = get is element exist ${popup_last_locator} | ||
| 315 | - return from keyword if ${popup_exists} == ${False} | ||
| 316 | - wait until page does not contain element ${popup_last_locator} 30s Current popup was not hidden | ||
| 317 | - | ||
| 318 | -submit form and check result | ||
| 319 | - [Arguments] ${submit_btn_locator} ${wait_msg}=${None} ${wait_element_locator}=${None} ${sign_is}=${None} | ||
| 320 | - [Documentation] сабмітить форму і чекає повідомлення (якщо задано) + елемент (якщо задано) | ||
| 321 | - | ||
| 322 | - click visible element ${submit_btn_locator} | ||
| 323 | - run keyword and ignore error run keyword if condition is not none ${wait_msg} wait until element is visible ${tender_cpv_form_submit_success_msg} 5 | ||
| 324 | -# run keyword and ignore error Wait Until Page Contains ${tender_cpv_form_submit_success_msg} 60 | ||
| 325 | - Capture Page Screenshot | ||
| 326 | - run keyword and ignore error execute javascript ${tender_cpv_js_submit_btn_locator} | ||
| 327 | - Capture Page Screenshot | ||
| 328 | - run keyword and ignore error run keyword if '${mode}' in 'reporting' close sync alert ${tender_form_submit_reporting_success_msg} | ||
| 329 | - run keyword and ignore error run keyword if condition is not none ${wait_msg} Wait Until Page Contains ${wait_msg} 60 | ||
| 330 | - run keyword and ignore error run keyword if condition is not none ${wait_msg} wait until alert is visible ${wait_msg} | ||
| 331 | - run keyword and ignore error run keyword if condition is not none ${wait_msg} close current visible alert | ||
| 332 | - | ||
| 333 | -#cat проба | ||
| 334 | - run keyword and ignore error run keyword if not ${sign_is} Load Sign | ||
| 335 | - run keyword and ignore error close current visible alert | ||
| 336 | - run keyword and ignore error run keyword if condition is not none ${wait_element_locator} wait until element is visible ${wait_element_locator} 60 | ||
| 337 | - run keyword and ignore error run keyword if condition is not none ${wait_element_locator} wait until page contains element ${wait_element_locator} 60s Element was not shown after form submitting | ||
| 338 | - | ||
| 339 | -close sync alert | ||
| 340 | - [Arguments] ${wait_msg}=${None} | ||
| 341 | - [Documentation] чекає поки попап не стане видимим на сторінці | ||
| 342 | - | ||
| 343 | - ${status}= run keyword if '${mode}' in 'openeu open_competitive_dialogue openua_defense open_esco open_framework' Run Keyword And Return Status Page Should Contain ${wait_msg} | ||
| 344 | - run keyword and ignore error run keyword if ${status} and '${mode}' in 'openeu open_competitive_dialogue openua_defense open_esco open_framework' Wait Until Page Contains ${wait_msg} 60 | ||
| 345 | - run keyword and ignore error run keyword if ${status} and '${mode}' in 'openeu open_competitive_dialogue openua_defense open_esco open_framework' wait until alert is visible ${wait_msg} | ||
| 346 | - run keyword and ignore error run keyword if ${status} and '${mode}' in 'openeu open_competitive_dialogue openua_defense open_esco open_framework' close current visible alert | ||
| 347 | - | ||
| 348 | - | ||
| 349 | -wait until popup is visible | ||
| 350 | - [Arguments] ${popup_locator}=${None} ${waiting_timeout}=30s ${waiting_error}=Opened popup still not visible | ||
| 351 | - [Documentation] чекає поки попап не стане видимим на сторінці | ||
| 352 | - | ||
| 353 | - ${popup_locator_is_none} = get variable is none ${popup_locator} | ||
| 354 | - ${popup_locator} = set variable if ${popup_locator_is_none} == ${False} ${popup_locator} ${popup_opened_content_locator} | ||
| 355 | - ${status} = run keyword and return status wait until element is visible ${popup_locator} ${waiting_timeout} ${waiting_error} | ||
| 356 | - # trying to prevent "StaleElementReferenceException: Message: stale element reference: element is not attached to the page document" error | ||
| 357 | - run keyword if ${status} == ${False} sleep 1 | ||
| 358 | - run keyword if ${status} == ${False} wait until element is visible ${popup_locator} 1 ${waiting_error} | ||
| 359 | - | ||
| 360 | -wait until alert is visible | ||
| 361 | - [Arguments] ${message}=${None} | ||
| 362 | - [Documentation] чекає поки не з'явиться алерт | ||
| 363 | - | ||
| 364 | - ${message_is_none} = get variable is none ${message} | ||
| 365 | - ${message} = convert to string ${message} | ||
| 366 | - ${alert_message_locator} = replace string ${alert_message_contains_text_locator_tpl} %text% ${message} | ||
| 367 | - run keyword if ${message_is_none} == ${True} wait until page contains element ${alert_opened_locator} 60s Alert was not shown | ||
| 368 | - run keyword if ${message_is_none} == ${False} wait until page contains element ${alert_message_locator} 60s Alert was not shown | ||
| 369 | - | ||
| 370 | - # wait for ending animation | ||
| 371 | - sleep 500ms | ||
| 372 | - | ||
| 373 | -close current visible alert | ||
| 374 | - [Documentation] закриває поточний alert | ||
| 375 | - | ||
| 376 | - click visible element ${alert_opened_close_btn_locator} | ||
| 377 | - | ||
| 378 | - # wait for ending animation | ||
| 379 | - sleep 500ms | ||
| 380 | - | ||
| 381 | -wait until page contains search | ||
| 382 | - [Arguments] ${locator} ${retry}=5m ${retry_interval}=2s | ||
| 383 | - [Documentation] чекає поки елемент не з'явиться на сторінці з перезапуском пошуку | ||
| 384 | - | ||
| 385 | - ${result} = get is element exist ${locator} | ||
| 386 | - capture page screenshot | ||
| 387 | - run keyword if ${result} == ${False} wait until keyword succeeds ${retry} ${retry_interval} reload page and fail if element does not exist on search ${locator} | ||
| 388 | - | ||
| 389 | -wait until page contains element with reloading | ||
| 390 | - [Arguments] ${locator} ${retry}=5m ${retry_interval}=2s | ||
| 391 | - [Documentation] чекає поки елемент не з'явиться на сторінці з перезавантаженням сторінки | ||
| 392 | - | ||
| 393 | - ${result} = get is element exist ${locator} | ||
| 394 | - run keyword if ${result} == ${False} wait until keyword succeeds ${retry} ${retry_interval} reload page and fail if element does not exist ${locator} | ||
| 395 | - | ||
| 396 | -wait until page does not contain element with reloading | ||
| 397 | - [Arguments] ${locator} ${retry}=5m ${retry_interval}=2s | ||
| 398 | - [Documentation] чекає поки елемент не пропаде зі сторінки з перезавантаженням сторінки | ||
| 399 | - | ||
| 400 | - ${result} = get is element exist ${locator} | ||
| 401 | - run keyword if ${result} == ${True} wait until keyword succeeds ${retry} ${retry_interval} reload page and fail if element exists ${locator} | ||
| 402 | - capture page screenshot | ||
| 403 | - | ||
| 404 | -wait until tab content is visible | ||
| 405 | - [Arguments] ${tab_link} ${waiting_timeout}=30s ${waiting_error}=Opened tab still not visible | ||
| 406 | - [Documentation] чекає поки контент вказаного табу не буде видимим | ||
| 407 | - | ||
| 408 | - ${tab_link_href} = __private__get_element_attribute ${tab_link} href | ||
| 409 | - ${tab_content_locator} = set variable jquery=${tab_link_href} | ||
| 410 | - wait until element is visible ${tab_content_locator} ${waiting_timeout} ${waiting_error} | ||
| 411 | - | ||
| 412 | -reload page and fail if element exists | ||
| 413 | - [Arguments] ${locator} | ||
| 414 | - [Documentation] перезавантажує сторінку і фейлить тест якщо елемент присутній | ||
| 415 | - | ||
| 416 | - capture page screenshot | ||
| 417 | - reload page | ||
| 418 | - capture page screenshot | ||
| 419 | - ${exists} = get is element exist ${locator} | ||
| 420 | - run keyword if ${exists} == ${True} fail | ||
| 421 | - | ||
| 422 | -reload page and fail if element does not exist | ||
| 423 | - [Arguments] ${locator} | ||
| 424 | - [Documentation] перезавантажує сторінку і фейлить тест якщо елемент відсутній | ||
| 425 | - | ||
| 426 | - reload page | ||
| 427 | - capture page screenshot | ||
| 428 | - ${exists} = get is element exist ${locator} | ||
| 429 | - run keyword if ${exists} == ${False} fail | ||
| 430 | - | ||
| 431 | -reload page and fail if element does not exist on search | ||
| 432 | - [Arguments] ${locator} | ||
| 433 | - [Documentation] перезавантажує сторінку і фейлить тест якщо елемент відсутній в пошуку | ||
| 434 | - | ||
| 435 | - click visible element ${tender_form_search_btn_locator} | ||
| 436 | - ${exists} = get is element exist ${locator} | ||
| 437 | - run keyword if ${exists} == ${False} fail | ||
| 438 | - | ||
| 439 | -get is 404 page | ||
| 440 | - [Documentation] перевіряє чи поточна сторінка з 404 помилкою | ||
| 441 | - | ||
| 442 | - ${exists} = get is element exist ${error_page_404_checker_element_locator} | ||
| 443 | - [Return] ${exists} | ||
| 444 | - | ||
| 445 | -wait until 404 page disappears | ||
| 446 | - [Arguments] ${retry}=5m ${retry_interval}=2s | ||
| 447 | - [Documentation] оновлює сторінку і чекає поки не пропаде 404 помилка | ||
| 448 | - | ||
| 449 | - ${result} = get is 404 page | ||
| 450 | - run keyword if ${result} == ${True} wait until keyword succeeds ${retry} ${retry_interval} reload page and fail if element exists ${error_page_404_checker_element_locator} | ||
| 451 | - | ||
| 452 | -######################################################################################################################## | ||
| 453 | -################################################### PRIVATE KEYWORDS ################################################### | ||
| 454 | -######################################################################################################################## | ||
| 455 | - | ||
| 456 | -__private__handle_keyword_failure | ||
| 457 | - [Documentation] обробка падіння тесту, збір можливої інформації для аналізу проблеми | ||
| 458 | - | ||
| 459 | - capture page screenshot | ||
| 460 | - ${form_errors} = __private__get_all_form_errors | ||
| 461 | - log dictionary ${form_errors} | ||
| 462 | - | ||
| 463 | -__private__get_all_form_errors | ||
| 464 | - [Documentation] збирає всі помилки форм на сторінці | ||
| 465 | - | ||
| 466 | - ${errors} = execute javascript | ||
| 467 | - ... var errors = {}; | ||
| 468 | - ... $('.has-error .help-block-error').each(function () { | ||
| 469 | - ... var cssClass = $(this).attr('class'), text = $(this).text(); | ||
| 470 | - ... cssClass = cssClass.replace("help-block-error", ""); | ||
| 471 | - ... cssClass = cssClass.replace("help-block", ""); | ||
| 472 | - ... errors[cssClass] = text; | ||
| 473 | - ... }); | ||
| 474 | - ... return errors; | ||
| 475 | - [Return] ${errors} | ||
| 476 | - | ||
| 477 | -__private__log | ||
| 478 | - [Arguments] ${msg} | ||
| 479 | - [Documentation] пише в логи | ||
| 480 | - | ||
| 481 | - log ${msg} | ||
| 482 | - log to console ${msg} | ||
| 483 | - | ||
| 484 | -__private__get_element_attribute | ||
| 485 | - [Arguments] ${locator} ${attribute} | ||
| 486 | - [Documentation] повертає значення атрибуту для вказаного елементу | ||
| 487 | - | ||
| 488 | - ${value} = get element attribute ${locator}@${attribute} | ||
| 489 | - [Return] ${value} | ||
| 490 | - | ||
| 491 | -__private__set_element_visible_in_browser_area | ||
| 492 | - [Arguments] ${locator} | ||
| 493 | - [Documentation] робить елемент видимим у вікні браузера | ||
| 494 | - | ||
| 495 | - set element scroll into view ${locator} | ||
| 496 | - | ||
| 497 | -__private__get_site_language_code | ||
| 498 | - [Documentation] повертає код поточної мови сайта | ||
| 499 | - | ||
| 500 | - ${current_language_code} = __private__get_element_attribute ${language_selector_active_element_locator} ${language_selector_active_element_code_attribute_name} | ||
| 501 | - [Return] ${current_language_code} | ||
| 502 | - | ||
| 503 | -__private__check_site_language_code | ||
| 504 | - [Arguments] ${language_code} | ||
| 505 | - [Documentation] повертає чи поточна мова сайту відповідає вказаній | ||
| 506 | - | ||
| 507 | - ${current_language_code} = __private__get_site_language_code | ||
| 508 | - ${is_equal} = set variable if "${current_language_code}" == "${language_code}" ${True} ${False} | ||
| 509 | - [Return] ${is_equal} | ||
| 510 | - | ||
| 511 | -__private__open_site_language_dropdown_and_select_language_by_code | ||
| 512 | - [Arguments] ${language_code} | ||
| 513 | - [Documentation] відкриває випадаючий список мов, обрає потрібну, чекає перезавантаження сторінки | ||
| 514 | - | ||
| 515 | - click visible element ${language_selector_open_element_locator} | ||
| 516 | - ${language_selector_list_element_locator} = replace string ${language_selector_list_element_locator_tpl} %code% ${language_code} | ||
| 517 | - click element ${language_selector_list_element_locator} | ||
| 518 | - ${language_selector_active_element_locator} = replace string ${language_selector_active_element_by_code_locator_tpl} %code% ${language_code} | ||
| 519 | - wait until page contains element ${language_selector_active_element_locator} 30s Language have not changed | ||
| 520 | - | ||
| 521 | -__private__select_classification_code_in_opened_popup | ||
| 522 | - [Arguments] ${code} ${scheme}=${None} | ||
| 523 | - [Documentation] в поточний попап з класифікатором перемикає схему, шукає заданий код в полі пошуку і обирає його | ||
| 524 | - | ||
| 525 | - # check scheme | ||
| 526 | - ${scheme_is_none} = get variable is none ${scheme} | ||
| 527 | - ${scheme} = convert to string ${scheme} | ||
| 528 | - run keyword if ${scheme_is_none} == ${False} and '${scheme}' not in ${site_allowed_schemes} __private__log Scheme "${scheme}" is needed to implement. | ||
| 529 | - return from keyword if ${scheme_is_none} == ${False} and '${scheme}' not in ${site_allowed_schemes} | ||
| 530 | - ${scheme_tab_locator} = replace string ${classification_popup_scheme_tab_locator_tpl} %scheme% ${scheme} | ||
| 531 | - ${scheme_tab_exists} = get is element exist ${scheme_tab_locator} | ||
| 532 | - run keyword if ${scheme_tab_exists} == ${True} click visible element ${scheme_tab_locator} | ||
| 533 | - run keyword if ${scheme_tab_exists} == ${True} wait until tab content is visible ${scheme_tab_locator} | ||
| 534 | - ... ELSE __private__log Classification scheme tab ${scheme} does not exist | ||
| 535 | - # seraching code | ||
| 536 | - input text to visible input and press enter ${classification_popup_search_input_locator} ${code} | ||
| 537 | - ${code} = convert to string ${code} | ||
| 538 | - ${code_item_locator} = replace string ${classification_popup_serach_item_locator_tpl} %code% ${code} | ||
| 539 | - wait until page contains element ${code_item_locator} 90s Specified classification code was not found | ||
| 540 | - click visible element ${code_item_locator} | ||
| 541 | - | ||
| 542 | -Load Sign | ||
| 543 | - run keyword and ignore error click visible element ${plan_form_ecp_btn_locator} | ||
| 544 | - ${loadingfakeKey} = Run keyword And Return Status Wait Until Page Contains Це фейкове накладання ЕЦП 30 | ||
| 545 | - run keyword and ignore error Run Keyword If ${loadingfakeKey} == True submit form and check result id=SignDataButton ${qualification_ecp_form_submit_success_msg} | ||
| 546 | - ${loadingKey} = Run keyword And Return Status Wait Until Page Contains Серійний номер 30 | ||
| 547 | - Run Keyword If ${loadingfakeKey} == True Fail Далі не ходити | ||
| 548 | - Run Keyword If ${loadingKey} == False Load Sign Data | ||
| 549 | - Wait Until Page Contains Серійний номер 60 | ||
| 550 | - submit form and check result id=SignDataButton ${qualification_ecp_form_submit_success_msg} | ||
| 551 | - | ||
| 552 | -Load Sign Data | ||
| 553 | - Wait Until Page Contains Element id=CAsServersSelect 60 | ||
| 554 | - Select From List By Label id=CAsServersSelect Тестовий ЦСК АТ "ІІТ" | ||
| 555 | - Wait Until Page Contains Element id=PKeyFileName 60 | ||
| 556 | - Choose File id=PKeyFileInput ${CURDIR}/Key-6.dat | ||
| 557 | - Wait Until Page Contains Element id=PKeyPassword 60 | ||
| 558 | - Input Text id=PKeyPassword 12345677 | ||
| 559 | - Wait Until Page Contains Element id=PKeyReadButton 60 | ||
| 560 | - Click Element id=PKeyReadButton | ||
| 561 | - | ||
| 562 | -GetDictionaryKeyExist | ||
| 563 | - [Arguments] ${Dictionary Name} ${Key} | ||
| 564 | - Run Keyword And Return Status Dictionary Should Contain Key ${Dictionary Name} ${Key} | ||
| 565 | - | ||
| 566 | -GetValueFromDictionaryByKey [Arguments] ${Dictionary Name} ${Key} | ||
| 567 | - ${KeyIsPresent}= Run Keyword And Return Status Dictionary Should Contain Key ${Dictionary Name} ${Key} | ||
| 568 | - ${Value}= Run Keyword If ${KeyIsPresent} Get From Dictionary ${Dictionary Name} ${Key} | ||
| 569 | - Return From Keyword ${Value} | ||
| 570 | - |
playtender_contract.robot
deleted
100644 → 0
| 1 | -*** Settings *** | ||
| 2 | - | ||
| 3 | -Resource playtender_common.robot | ||
| 4 | -Resource playtender_variables.robot | ||
| 5 | -Resource playtender_contract_variables.robot | ||
| 6 | -Resource playtender_qualification_variables.robot | ||
| 7 | - | ||
| 8 | -*** Keywords *** | ||
| 9 | - | ||
| 10 | -edit contract | ||
| 11 | - [Arguments] ${contract_index} ${field_name} ${amount} ${field_name2}=${None} ${amount2}=${None} | ||
| 12 | - [Documentation] Редагувати контракт з індексом ${contract_index} | ||
| 13 | - ... для поля field_name та значення amount. | ||
| 14 | - | ||
| 15 | - Run Keyword If '${TEST_NAME}' == 'Неможливість вказати ціну договору з ПДВ більше ніж результат проведення аукціону' and '${mode}' not in 'open_esco' Fail Amount should be less or equal to awarded amount | ||
| 16 | - Run Keyword If '${TEST_NAME}' == 'Неможливість вказати ціну договору з ПДВ більше ніж результат проведення аукціону' and '${mode}' in 'open_esco' Fail Can't update amount for contract value | ||
| 17 | - Run Keyword If '${TEST_NAME}' == 'Неможливість зменшити ціну договору без ПДВ на суму більшу за 20% від ціни договору з ПДВ (закупівля з ПДВ)' Fail Amount should be greater than amountNet and differ by no more than 20.0% | ||
| 18 | - ${complaint_period_end_date} = run keyword if '${mode}' not in 'reporting' get value by locator on opened page ${tender_awards_complaintPeriod_endDate_value_locator} | ||
| 19 | - run keyword if '${mode}' not in 'reporting' Wait date ${complaint_period_end_date} | ||
| 20 | - click visible element ${contract_form_0_open_btn_locator} | ||
| 21 | - Run Keyword And Ignore Error Wait Until Page Contains ${contract_contractform_contract_number_input_locator} 10 | ||
| 22 | - run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 5 | ||
| 23 | - wait until element is visible ${contract_contractform_contract_number_input_locator} 10 | ||
| 24 | - capture page screenshot | ||
| 25 | - ${file_path} ${file_name} ${file_content} = create_fake_doc | ||
| 26 | - ${value_added_tax_included} = Run Keyword If '${mode}' in 'negotiation reporting' run keyword and return status Checkbox Should Not Be Selected ${contract_contractform_value_added_tax_included_locator} | ||
| 27 | - run keyword if '${mode}' in 'negotiation reporting' and ${value_added_tax_included} Execute Javascript $('[id$="contractform-value_added_tax_included"]').click() | ||
| 28 | -# run keyword if '${mode}' == 'negotiation' and ${value_added_tax_included} click visible element ${contract_contractform_value_added_tax_included_locator} | ||
| 29 | - ${contract_number} = get value by locator on opened page ${contract_contractform_contract_number_input_locator} | ||
| 30 | - Run Keyword If '${contract_number}' == '' input text to exist visible input ${contract_contractform_contract_number_input_locator} 1234567890 | ||
| 31 | - capture page screenshot | ||
| 32 | - ${date_signed} = Get Current Date | ||
| 33 | - ${contract_date_signed} = get value by locator on opened page ${contract_contractform_date_signed_input_locator} | ||
| 34 | - Run Keyword If '${contract_date_signed}' == '' input datetime to visible input ${contract_contractform_date_signed_input_locator} ${date_signed} | ||
| 35 | - ${date_start} = Get Current Date increment=02:00:00 | ||
| 36 | - ${contract_date_start} = get value by locator on opened page ${contract_contractform_date_start_input_locator} | ||
| 37 | - Run Keyword If '${contract_date_start}' == '' input datetime to visible input ${contract_contractform_date_start_input_locator} ${date_start} | ||
| 38 | - ${date_end} = Get Current Date increment=04:00:00 | ||
| 39 | - ${contract_date_end} = get value by locator on opened page ${contract_contractform_date_end_input_locator} | ||
| 40 | - Run Keyword If '${contract_date_end}' == '' input datetime to visible input ${contract_contractform_date_end_input_locator} ${date_end} | ||
| 41 | - | ||
| 42 | - Run Keyword If '${field_name}' == 'value.amount' input number to exist visible input ${contract_contractform_amount_input_locator} ${amount} | ||
| 43 | -# ${budget} = Run Keyword If '${field_name}' == 'value.amount' and '${mode}' == 'negotiation' Set Variable ${amount/0.85} | ||
| 44 | -# Run Keyword If '${field_name}' == 'value.amount' and '${mode}' == 'negotiation' input number to exist visible input ${contract_contractform_amount_input_locator} ${budget} | ||
| 45 | - Run Keyword If '${field_name}' == 'value.amountNet' input number to exist visible input ${contract_contractform_amount_net_input_locator} ${amount} | ||
| 46 | - capture page screenshot | ||
| 47 | - choose file ${add_file_to_contract_contractform_locator} ${file_path} | ||
| 48 | - wait until page does not contain element ${popup_dynamic_form_loading_element_locator} 60 | ||
| 49 | - wait until element is visible ${contract_contractform_add_document_type_input_locator} 60 | ||
| 50 | - capture page screenshot | ||
| 51 | - Run Keyword And Ignore Error Execute Javascript $('.fancybox-is-open .fancybox-content select[id*="-document_type"]:last').val('contractSigned').change() | ||
| 52 | - capture page screenshot | ||
| 53 | - click visible element ${contract_contractform_add_document_description_btn_locator} | ||
| 54 | - capture page screenshot | ||
| 55 | - wait until element is visible ${contract_contractform_add_document_description_input_locator} | ||
| 56 | - input text to exist visible input ${contract_contractform_add_document_description_input_locator} test2 | ||
| 57 | - capture page screenshot | ||
| 58 | - click visible element ${contract_contractform_add_document_close_description_btn_locator} | ||
| 59 | - capture page screenshot | ||
| 60 | - | ||
| 61 | - submit form and check result ${contract_contractform_submit_btn_locator} ${contract_contractform_submit_success_msg} ${contract_active_form_open_btn_locator} | ||
| 62 | -# run keyword and ignore error submit form and check result ${contract_contractform_submit_btn_locator} ${contract_contractform_submit_success_msg} ${contract_active_form_open_btn_locator} | ||
| 63 | - capture page screenshot | ||
| 64 | - | ||
| 65 | -edit unitprices | ||
| 66 | - [Arguments] ${tender_uaid} ${contract_data} | ||
| 67 | - [Documentation] Встановити ціну за одиницю для контракту для користувача username для тендера ${tender_uaid}, | ||
| 68 | - ... використовуючи значення з ${contract_data}. | ||
| 69 | - | ||
| 70 | -# Run Keyword If '${TEST_NAME}' == 'Можливість встановити ціну за одиницю для першого контракту' open popup by btn locator ${contract_active_form_agreement_open_btn_locator} | ||
| 71 | - Run Keyword If '${TEST_NAME}' == 'Можливість встановити ціну за одиницю для другого контракту' click visible element ${contract_next_form_agreement_open_btn_locator} | ||
| 72 | -# Run Keyword If '${TEST_NAME}' == 'Можливість встановити ціну за одиницю для другого контракту' open popup by btn locator ${contract_active_form_agreement_open_btn_locator} | ||
| 73 | - Run Keyword If '${TEST_NAME}' == 'Можливість встановити ціну за одиницю для третього контракту' click visible element ${contract_next_form_agreement_open_btn_locator} | ||
| 74 | - open popup by btn locator ${contract_active_form_agreement_open_btn_locator} | ||
| 75 | - input number to exist visible input ${contract_agreement_unit_prices_input_locator} ${contract_data.data.unitPrices.value.amount} | ||
| 76 | - | ||
| 77 | - submit form and check result ${contract_contractform_submit_btn_locator} ${contract_agreement_active_submit_success_msg} | ||
| 78 | - capture page screenshot | ||
| 79 | - | ||
| 80 | -active agreement contract | ||
| 81 | - [Arguments] ${startDate} ${endDate} | ||
| 82 | - [Documentation] Зареєструвати угоду для користувача username для тендера tender_uaid, | ||
| 83 | - ... для поля Початок строку, на який укладається угода задати значення startDate, для Кінець строку, на який укладається угода - endDate. | ||
| 84 | - | ||
| 85 | - open popup by btn locator ${contract_active_agreement_form_open_btn_locator} | ||
| 86 | - capture page screenshot | ||
| 87 | - ${file_path} ${file_name} ${file_content} = create_fake_doc | ||
| 88 | - ${contract_number} = get value by locator on opened page ${contract_agreement_agreement_number_input_locator} | ||
| 89 | - Run Keyword If '${contract_number}' == '' input text to exist visible input ${contract_agreement_agreement_number_input_locator} 1234567890 | ||
| 90 | - capture page screenshot | ||
| 91 | - ${date_signed} = Get Current Date | ||
| 92 | - ${contract_date_signed} = get value by locator on opened page ${contract_agreement_date_signed_input_locator} | ||
| 93 | - Run Keyword If '${contract_date_signed}' == '' input datetime to visible input ${contract_agreement_date_signed_input_locator} ${date_signed} | ||
| 94 | - ${date_start} = Get Current Date increment=02:00:00 | ||
| 95 | - ${contract_date_start} = get value by locator on opened page ${contract_agreement_date_start_input_locator} | ||
| 96 | - Run Keyword If '${contract_date_start}' == '' input datetime to visible input ${contract_agreement_date_start_input_locator} ${date_start} | ||
| 97 | - ${date_end} = Get Current Date increment=04:00:00 | ||
| 98 | - ${contract_date_end} = get value by locator on opened page ${contract_agreement_date_end_input_locator} | ||
| 99 | - Run Keyword If '${contract_date_end}' == '' input datetime to visible input ${contract_agreement_date_end_input_locator} ${date_end} | ||
| 100 | - | ||
| 101 | - capture page screenshot | ||
| 102 | - choose file ${add_file_to_contract_contractform_locator} ${file_path} | ||
| 103 | - wait until page does not contain element ${popup_dynamic_form_loading_element_locator} 60 | ||
| 104 | - wait until element is visible ${contract_contractform_add_document_type_input_locator} 60 | ||
| 105 | - capture page screenshot | ||
| 106 | - Run Keyword And Ignore Error Execute Javascript $('.fancybox-is-open .fancybox-content select[id*="-document_type"]:last').val('contractSigned').change() | ||
| 107 | - capture page screenshot | ||
| 108 | - click visible element ${contract_contractform_add_document_description_btn_locator} | ||
| 109 | - capture page screenshot | ||
| 110 | - wait until element is visible ${contract_contractform_add_document_description_input_locator} | ||
| 111 | - input text to exist visible input ${contract_contractform_add_document_description_input_locator} test2 | ||
| 112 | - capture page screenshot | ||
| 113 | - click visible element ${contract_contractform_add_document_close_description_btn_locator} | ||
| 114 | - capture page screenshot | ||
| 115 | - | ||
| 116 | - submit form and check result ${contract_contractform_submit_btn_locator} ${contract_agreement_submit_success_msg} | ||
| 117 | - capture page screenshot | ||
| 118 | - open popup by btn locator ${contract_active_agreement_active_form_open_btn_locator} | ||
| 119 | - Execute Javascript $('.fancybox-is-open .fancybox-content button.btn.btn-success').click() | ||
| 120 | - capture page screenshot | ||
| 121 | - run keyword and ignore error Load Sign | ||
| 122 | - capture page screenshot | ||
| 123 | - submit form and check result ${qualification_form_submit_btn_locator} ${contract_agreement_active_submit_success_msg} ${None} | ||
| 124 | - capture page screenshot | ||
| 125 | - |
playtender_contract_variables.robot
deleted
100644 → 0
| 1 | -*** Variables *** | ||
| 2 | - | ||
| 3 | -#contractform | ||
| 4 | -${contract_form_0_open_btn_locator} = jquery=#contracts-pjax a[href*="/tender/contract?contract"] | ||
| 5 | -${contract_contractform_contract_number_input_locator} = jquery=#contractform-contract_number | ||
| 6 | -${contract_contractform_date_signed_input_locator} = jquery=#contractform-date_signed | ||
| 7 | -${contract_contractform_date_start_input_locator} = jquery=#contractform-date_start | ||
| 8 | -${contract_contractform_date_end_input_locator} = jquery=#contractform-date_end | ||
| 9 | -${contract_contractform_submit_btn_locator} = jquery=.fancybox-is-open .fancybox-content button.btn.btn-success | ||
| 10 | -${contract_contractform_submit_success_msg} = Контракт успішно завантажений | ||
| 11 | -${contract_contractform_amount_input_locator} = jquery=#contractform-value_amount | ||
| 12 | -${contract_contractform_amount_net_input_locator} = jquery=#contractform-value_amount_net | ||
| 13 | -${contract_contractform_active_submit_success_msg} = Контракт успішно активовано, дочекайтесь опублікування на сайті уповноваженого органу. | ||
| 14 | -${contract_contractform_value_added_tax_included_locator} = jquery=#contractform-value_added_tax_included | ||
| 15 | - | ||
| 16 | -#contractform document | ||
| 17 | -${add_file_to_contract_contractform_locator} = jquery=.field-contractform-documents .js-upload-documents input[type$="file"]:first | ||
| 18 | -${contract_contractform_add_document_type_input_locator} = jquery=.js-dynamic-form-content-item:last .document-type select[id*="-document_type"] | ||
| 19 | -${contract_contractform_add_document_description_btn_locator} = jquery=.js-dynamic-form-content-item:last [href$="#edit"]:last | ||
| 20 | -${contract_contractform_add_document_description_input_locator} = jquery=.js-dynamic-form-content-item:last .popover.fade.top.in textarea[id*="-description"].form-control | ||
| 21 | -${contract_contractform_add_document_close_description_btn_locator} = jquery=.js-dynamic-form-content-item:last .popover.fade.top.in [href$="#close"] | ||
| 22 | - | ||
| 23 | -${contract_active_form_open_btn_locator} = jquery=#contracts-pjax a[href*="/tender/contract-activate"] | ||
| 24 | -${contract_active_form_agreement_open_btn_locator} = jquery=#agreement-contracts-list .tabs__pane.tabs__pane--visible a[href*="/tender/agreement-contract?"] | ||
| 25 | -${contract_next_form_agreement_open_btn_locator} = jquery=#agreement-contracts-list .tabs__item.tabs__item--active_next-child a[id*="tab-agreement-contract"] | ||
| 26 | -${contract_agreement_unit_prices_input_locator} = jquery=.fancybox-is-open input[id$="agreementcontractform-unit_prices"] | ||
| 27 | -${contract_agreement_active_submit_success_msg} = Постачальник успішно підтверджений, триває синхронізація з сайтом уповноваженого органу. | ||
| 28 | -${contract_active_agreement_form_open_btn_locator} = jquery=.aside__inner a[href*="/tender/agreement?"] | ||
| 29 | -${contract_agreement_agreement_number_input_locator} = jquery=#agreementform-agreement_number | ||
| 30 | -${contract_agreement_date_signed_input_locator} = jquery=#agreementform-date_signed | ||
| 31 | -${contract_agreement_date_start_input_locator} = jquery=#agreementform-date_start | ||
| 32 | -${contract_agreement_date_end_input_locator} = jquery=#agreementform-date_end | ||
| 33 | -${contract_agreement_submit_success_msg} = Угода завантажена, наступний крок - її активація. | ||
| 34 | -${contract_active_agreement_active_form_open_btn_locator} = jquery=.aside__inner a[href*="/tender/agreement-activate?"] | ||
| 35 | -${contract_agreement_active_submit_success_msg} = Угода успішно активована! |
playtender_plan.robot
deleted
100644 → 0
| 1 | -*** Settings *** | ||
| 2 | - | ||
| 3 | -Resource playtender_common.robot | ||
| 4 | -Resource playtender_plan_variables.robot | ||
| 5 | - | ||
| 6 | -*** Keywords *** | ||
| 7 | - | ||
| 8 | -update plan queue | ||
| 9 | - [Documentation] запускає оновлення планів з ЦБД і додає їх в чергу, тобто синхронізація може відбутися не відразу | ||
| 10 | - ... поточна сторіка повертається | ||
| 11 | - | ||
| 12 | - ${current_url} = get location | ||
| 13 | - go to ${broker_baseurl}/utils/queue-plan-update | ||
| 14 | - go to ${current_url} | ||
| 15 | - | ||
| 16 | -open new plan form | ||
| 17 | - [Documentation] відкриття сторінки створення плану | ||
| 18 | - | ||
| 19 | - open page and wait element by locator ${broker_baseurl}/plan/create ${plan_form_locator} | ||
| 20 | - | ||
| 21 | -open plan form by uaid | ||
| 22 | - [Arguments] ${plan_uaid} | ||
| 23 | - [Documentation] відкриття сторінки редагування плану | ||
| 24 | - | ||
| 25 | - open plan page by uaid ${plan_uaid} | ||
| 26 | - click visible element and wait until page contains element ${plan_edit_btn_locator} ${plan_form_locator} | ||
| 27 | - | ||
| 28 | -open plan page by uaid | ||
| 29 | - [Arguments] ${uaid} ${refresh}=${True} | ||
| 30 | - [Documentation] відкриває сторінку з планом | ||
| 31 | - | ||
| 32 | - ${current_location} = get location | ||
| 33 | - ${needed_location} = set variable ${broker_baseurl}/plan/${uaid} | ||
| 34 | - run keyword if '${current_location}' != '${needed_location}' or ${refresh} == ${True} open site page and wait content element ${needed_location} | ||
| 35 | - log many 1 | ||
| 36 | - ${is_plan_found} = get is element exist ${plan_view_checker_element_locator} | ||
| 37 | - log many 2 | ||
| 38 | - return from keyword if ${is_plan_found} == ${True} | ||
| 39 | - log many 3 | ||
| 40 | - ${is_plan_not_found} = get is 404 page | ||
| 41 | - ${is_needed_to_update_and_wait_sync} = set variable if ${is_test_role_owner} == ${False} and ${is_plan_not_found} ${True} ${False} | ||
| 42 | - run keyword if ${is_needed_to_update_and_wait_sync} update plan queue | ||
| 43 | - run keyword if ${is_needed_to_update_and_wait_sync} wait until 404 page disappears | ||
| 44 | - ${is_plan_found} = get is element exist ${plan_view_checker_element_locator} | ||
| 45 | - run keyword if ${is_plan_found} == ${False} fail Opening plan page by uaid fails. | ||
| 46 | - | ||
| 47 | -open plan search form | ||
| 48 | - [Documentation] відкриває сторінку з пошуком планів | ||
| 49 | - | ||
| 50 | - open page and wait element by locator ${broker_baseurl}/plans ${plan_search_form_locator} | ||
| 51 | - | ||
| 52 | -fill plan form | ||
| 53 | - [Arguments] ${data} | ||
| 54 | - [Documentation] заповнення відкритої форми з масива даних | ||
| 55 | - | ||
| 56 | - fill plan general info ${data} | ||
| 57 | - ${items} = get from dictionary by keys ${data} items | ||
| 58 | - run keyword if condition is not none ${items} fill plan form items ${items} | ||
| 59 | - ${buyers} = get from dictionary by keys ${data} buyers | ||
| 60 | - run keyword if condition is not none ${buyers} fill plan form buyers ${buyers} | ||
| 61 | -#Пока не передает Дятлов | ||
| 62 | - ${budget_breakdowns} = get from dictionary by keys ${data} budget breakdown | ||
| 63 | - run keyword if condition is not none ${budget_breakdowns} fill plan form budgetbreakdowns ${budget_breakdowns} | ||
| 64 | -# fill plan form budgetbreakdowns | ||
| 65 | - | ||
| 66 | -fill plan general info | ||
| 67 | - [Arguments] ${data} | ||
| 68 | - [Documentation] заповнює приховані поля + відкриває попап основних даних, заповнює його і закриває | ||
| 69 | - | ||
| 70 | - # hidden inputs | ||
| 71 | - ${budget_id} = get from dictionary by keys ${data} budget id | ||
| 72 | - run keyword if condition is not none ${budget_id} input text to hidden input ${plan_form_budget_id_input_locator} ${budget_id} | ||
| 73 | - ${project_id} = get from dictionary by keys ${data} budget project id | ||
| 74 | - run keyword if condition is not none ${project_id} input text to hidden input ${plan_form_project_id_input_locator} ${project_id} | ||
| 75 | - ${project_name} = get from dictionary by keys ${data} budget project name | ||
| 76 | - run keyword if condition is not none ${project_name} input text to hidden input ${plan_form_project_name_input_locator} ${project_name} | ||
| 77 | - | ||
| 78 | - # general info | ||
| 79 | - open popup by btn locator ${plan_form_general_panel_edit_btn_locator} | ||
| 80 | - ${procurement_method_type} = get from dictionary by keys ${data} tender procurementMethodType | ||
| 81 | - run keyword if condition is not none ${procurement_method_type} select from visible list by value ${plan_form_procurement_method_type_input_locator} ${procurement_method_type} | ||
| 82 | - ${budget_description} = get from dictionary by keys ${data} budget description | ||
| 83 | - run keyword if condition is not none ${budget_description} input text to visible input ${plan_form_title_input_locator} ${budget_description} | ||
| 84 | - ${tender_start_date} = get from dictionary by keys ${data} tender tenderPeriod startDate | ||
| 85 | - run keyword if condition is not none ${tender_start_date} select from visible list by year of date ${plan_form_year_input_locator} ${tender_start_date} | ||
| 86 | - run keyword if condition is not none ${tender_start_date} input month.year of date to visible input ${plan_form_tender_start_date_input_locator} ${tender_start_date} | ||
| 87 | - ${amount} = get from dictionary by keys ${data} budget amount | ||
| 88 | - run keyword and ignore error run keyword if condition is not none ${amount} input number to visible input ${plan_form_value_amount_input_locator} ${amount} | ||
| 89 | - ${currency} = get from dictionary by keys ${data} budget currency | ||
| 90 | - run keyword if condition is not none ${currency} select from visible list by value ${plan_form_value_currency_input_locator} ${currency} | ||
| 91 | - ${classification} = get from dictionary by keys ${data} classification | ||
| 92 | - run keyword if condition is not none ${classification} select classification by code attributes ${plan_form_classification_edit_btn_locator} ${classification} | ||
| 93 | - ${additional_classifications} = get from dictionary by keys ${data} additionalClassifications | ||
| 94 | - run keyword if condition is not none ${additional_classifications} select classification by array of code attributes ${plan_form_additional_classification_edit_btn_locator} ${additional_classifications} ${None} ${kekv_schemes} | ||
| 95 | - run keyword if condition is not none ${additional_classifications} select classification by array of code attributes ${plan_form_kekv_classification_edit_btn_locator} ${additional_classifications} ${kekv_schemes} | ||
| 96 | - Execute Javascript $('[id$="planform-test_mode"]').click() | ||
| 97 | - submit current visible popup | ||
| 98 | - | ||
| 99 | -fill plan form items | ||
| 100 | - [Arguments] ${item_attributes_array} | ||
| 101 | - [Documentation] заповнення номенклатури плану | ||
| 102 | - | ||
| 103 | - :FOR ${item_attributes} IN @{item_attributes_array} | ||
| 104 | - \ ${item_update_index} = get from dictionary by keys ${item_attributes} list_index | ||
| 105 | - \ ${item_update_index_string} = convert to string ${item_update_index} | ||
| 106 | - \ ${open_form_btn_locator} = replace string ${plan_form_update_item_btn_locator_tpl} %index% ${item_update_index_string} | ||
| 107 | - \ run keyword if condition is not none ${item_update_index} click visible element ${open_form_btn_locator} | ||
| 108 | - \ run keyword if condition is none ${item_update_index} click visible element ${plan_form_add_item_btn_locator} | ||
| 109 | - \ wait until popup is visible | ||
| 110 | - \ fill plan item form in opened popup ${item_attributes} | ||
| 111 | - \ run keyword and ignore error submit current visible popup | ||
| 112 | - | ||
| 113 | -fill plan item form in opened popup | ||
| 114 | - [Arguments] ${data} | ||
| 115 | - | ||
| 116 | - fill item form in opened popup ${data} | ||
| 117 | - | ||
| 118 | - ${delivery_end_date} = get from dictionary by keys ${data} deliveryDate endDate | ||
| 119 | - run keyword if condition is not none ${delivery_end_date} run keyword and ignore error input date to input ${item_form_popup_delivery_end_date_input_locator} ${delivery_end_date} | ||
| 120 | - | ||
| 121 | -fill plan form buyers | ||
| 122 | - [Arguments] ${buyer_attributes_array} | ||
| 123 | - [Documentation] заповнення замовника плану | ||
| 124 | - | ||
| 125 | - :FOR ${buyer_attributes} IN @{buyer_attributes_array} | ||
| 126 | - \ click visible element ${plan_form_update_buyer_btn_locator} | ||
| 127 | - \ wait until popup is visible | ||
| 128 | - \ fill buyer form in opened popup ${buyer_attributes} | ||
| 129 | - \ submit current visible popup | ||
| 130 | - | ||
| 131 | -fill buyer form in opened popup | ||
| 132 | - [Arguments] ${data} | ||
| 133 | - [Documentation] заповнює відкриту форму згідно вказаних даних про замовника | ||
| 134 | - | ||
| 135 | - ${legal_name} = get from dictionary by keys ${data} identifier legalName | ||
| 136 | - run keyword if condition is not none ${legal_name} input text to visible input ${buyer_form_popup_legal_name_input_locator} ${legal_name} | ||
| 137 | - ${identifier_id} = get from dictionary by keys ${data} identifier id | ||
| 138 | - run keyword if condition is not none ${identifier_id} input text to visible input ${buyer_form_popup_identifier_id_input_locator} ${identifier_id} | ||
| 139 | - | ||
| 140 | -fill plan form budgetbreakdowns | ||
| 141 | - [Arguments] ${budgetbreakdowns_attributes_array} | ||
| 142 | - [Documentation] заповнення Джерел фінансування плану | ||
| 143 | - | ||
| 144 | - click visible element ${plan_form_update_budgetbreakdowns_btn_locator} | ||
| 145 | - wait until popup is visible | ||
| 146 | - :FOR ${budgetbreakdowns_attributes} IN @{budgetbreakdowns_attributes_array} | ||
| 147 | - \ click visible element ${plan_form_add_budgetbreakdowns_btn_locator} | ||
| 148 | - \ wait until page does not contain element ${popup_dynamic_form_loading_element_locator} | ||
| 149 | - \ fill budgetbreakdowns form in opened popup ${budgetbreakdowns_attributes} | ||
| 150 | -### \ submit current visible popup | ||
| 151 | -## click visible element ${plan_form_add_budgetbreakdowns_btn_locator} | ||
| 152 | -## wait until page does not contain element ${popup_dynamic_form_loading_element_locator} | ||
| 153 | -## fill budgetbreakdowns form in opened popup | ||
| 154 | -# fill budgetbreakdowns form in opened popup ${budgetbreakdowns_attributes} | ||
| 155 | - submit current visible popup | ||
| 156 | - | ||
| 157 | -fill budgetbreakdowns form in opened popup | ||
| 158 | - [Arguments] ${data} | ||
| 159 | - [Documentation] заповнює відкриту форму згідно вказаних даних про Джерела фінансування | ||
| 160 | - | ||
| 161 | - ${title} = get from dictionary by keys ${data} title | ||
| 162 | - run keyword if condition is not none ${title} select from visible list by label ${plan_budgetbreakdowns_form_popup_title_input_locator} ${title} | ||
| 163 | - ${value_amount} = get from dictionary by keys ${data} value amount | ||
| 164 | - run keyword if condition is not none ${value_amount} input number to visible input ${plan_budgetbreakdowns_value_amount_input_locator} ${value_amount} | ||
| 165 | -## input number to visible input ${plan_budgetbreakdowns_value_amount_input_locator} 56333.77 | ||
| 166 | - ${description} = get from dictionary by keys ${data} description | ||
| 167 | - run keyword if condition is not none ${description} input text to visible input ${plan_budgetbreakdowns_description_input_locator} ${description} | ||
| 168 | -## input text to visible input ${plan_budgetbreakdowns_description_input_locator} description | ||
| 169 | - | ||
| 170 | -save plan form and wait synchronization | ||
| 171 | - [Documentation] натискає кнопку "Зберегти" і чекає синхронізації плану | ||
| 172 | - | ||
| 173 | - submit form and check result ${plan_form_submit_btn_locator} ${plan_form_submit_success_msg} ${plan_created_checker_element_locator} | ||
| 174 | - wait until page does not contain element with reloading ${plan_sync_element_locator} | ||
| 175 | - | ||
| 176 | -delete plan | ||
| 177 | - [Arguments] ${data} | ||
| 178 | - [Documentation] натискає кнопку "Скасувати рядок плану" і видаляє план | ||
| 179 | - | ||
| 180 | - click visible element ${plan_delete_btn_locator} | ||
| 181 | - ${reason} = get from dictionary by keys ${data} reason | ||
| 182 | - run keyword if condition is not none ${reason} input text to visible input ${plan_form_delete_reason_value_locator} ${reason} | ||
| 183 | - submit form and check result ${plan_form_delete_sucess_btn_locator} ${plan_form_delete_submit_success_msg} |
playtender_plan_variables.robot
deleted
100644 → 0
| 1 | -*** Variables *** | ||
| 2 | - | ||
| 3 | -# plan form | ||
| 4 | -${plan_form_submit_success_msg} = Рядок плану завантажений, наступний крок - накладання ЕЦП/КЕП і підтвердження | ||
| 5 | -#${plan_form_submit_success_msg} = дочекайтесь опублікування на сайті уповноваженого органу | ||
| 6 | -${plan_form_locator} = id=plan-form | ||
| 7 | -${plan_form_general_panel_edit_btn_locator} = jquery=#General .panel-heading .js-form-popup-update | ||
| 8 | -${plan_form_procurement_method_type_input_locator} = id=planform-procurement_method_type | ||
| 9 | -${plan_form_budget_id_input_locator} = id=planform-budget_id | ||
| 10 | -${plan_form_project_id_input_locator} = id=planform-project_id | ||
| 11 | -${plan_form_project_name_input_locator} = id=planform-project_name | ||
| 12 | -${plan_form_title_input_locator} = id=planform-title | ||
| 13 | -${plan_form_year_input_locator} = id=planform-year | ||
| 14 | -${plan_form_tender_start_date_input_locator} = id=planform-tender_start_date | ||
| 15 | -${plan_form_value_amount_input_locator} = id=planform-value_amount-disp | ||
| 16 | -${plan_form_value_currency_input_locator} = id=planform-value_currency | ||
| 17 | -${plan_form_classification_edit_btn_locator} = jquery=.field-planform-classification_id .js-classification-input-wrapper [data-toggle="classification"] | ||
| 18 | -${plan_form_additional_classification_edit_btn_locator} = jquery=.field-planform-additional_classification_ids .js-additional-classification-input-wrapper [data-toggle="additional-classification"] | ||
| 19 | -${plan_form_kekv_classification_edit_btn_locator} = jquery=.field-planform-additional_classification_ids_kekv .js-additional-classification-input-wrapper [data-toggle="additional_classification_ids_kekv"] | ||
| 20 | -${plan_form_add_item_btn_locator} = jquery=#Items .js-form-popup-add | ||
| 21 | -${plan_form_update_item_btn_locator_tpl} = jquery=#Items .js-form-popup-panel:nth(%index%) .panel-heading .js-form-popup-update | ||
| 22 | -${plan_form_remove_item_btn_locator_tpl} = jquery=#Items .js-form-popup-panel[data-title*="%title%"] .panel-heading .js-form-popup-remove | ||
| 23 | -${plan_form_update_buyer_btn_locator} = jquery=#Buyer .js-form-popup-update | ||
| 24 | -${plan_form_submit_btn_locator} = jquery=#plan-form .js-submit-btn | ||
| 25 | -${plan_created_checker_element_locator} = id=plan-part-pjax | ||
| 26 | -${plan_form_update_budgetbreakdowns_btn_locator} = jquery=#BudgetBreakdowns .js-form-popup-update | ||
| 27 | -${plan_form_add_budgetbreakdowns_btn_locator} = jquery=#budgetbreakdowns-form-popup a[href*="#add-budgetBreakdowns"] | ||
| 28 | -${plan_budgetbreakdowns_form_popup_title_input_locator} = jquery=.fancybox-is-open:last .tab-content:first > .tab-pane.active:first [id$="-title"] | ||
| 29 | -${plan_budgetbreakdowns_value_amount_input_locator} = jquery=.fancybox-is-open:last .tab-content:first > .tab-pane.active:first [id$="-value_amount-disp"] | ||
| 30 | -#${plan_budgetbreakdowns_value_amount_input_locator} = jquery=.fancybox-is-open:last .tab-content:first > .tab-pane.active:first [id$="-value_amount"] | ||
| 31 | -${plan_budgetbreakdowns_description_input_locator} = jquery=.fancybox-is-open:last .tab-content:first > .tab-pane.active:first [id$="-description"] | ||
| 32 | - | ||
| 33 | -# plan view | ||
| 34 | -${plan_view_checker_element_locator} = id=plan-general-info | ||
| 35 | -${plan_sync_element_locator} = jquery=#aside-part-pjax .status-label .fa-refresh | ||
| 36 | -${plan_uaid_text_locator} = jquery=#plan-general-info .plan-id .value | ||
| 37 | -${plan_edit_btn_locator} = jquery=#aside-part-pjax a[href*="plan/update"] | ||
| 38 | -${plan_delete_btn_locator} = jquery=#aside-part-pjax a[href*="/plan/cancel"] | ||
| 39 | -# -- for viewer -- | ||
| 40 | -${plan_tender_procurementMethodType_value_locator} = jquery=#plan-general-info .procurement-method-type.hidden | ||
| 41 | -${plan_budget_amount_value_locator} = jquery=#plan-general-info .budget-amount.hidden | ||
| 42 | -${plan_budget_amount_value_type} = float | ||
| 43 | -${plan_budget_description_value_locator} = jquery=#plan-general-info .budget-description .value | ||
| 44 | -${plan_budget_currency_value_locator} = jquery=#plan-general-info .budget-currency.hidden | ||
| 45 | -${plan_budget_id_value_locator} = jquery=#plan-general-info .budget-id .value | ||
| 46 | -${plan_procuringEntity_name_value_locator} = jquery=#plan-general-info .organization .definitions__list .organization_name.hidden .definitions__value | ||
| 47 | -${plan_procuringEntity_identifier_scheme_value_locator} = jquery=#plan-general-info .organization .definitions__list .identifier_scheme.hidden .definitions__value | ||
| 48 | -${plan_procuringEntity_identifier_id_value_locator} = jquery=#plan-general-info .organization .definitions__list .identifier_code .definitions__value | ||
| 49 | -${plan_procuringEntity_identifier_legalName_value_locator} = jquery=#plan-general-info .organization .definitions__list .identifier_legal_name.hidden .definitions__value | ||
| 50 | -${plan_classification_description_value_locator} = jquery=#plan-general-info .main-classification-description.hidden | ||
| 51 | -${plan_classification_scheme_value_locator} = jquery=#plan-general-info .main-classification-scheme.hidden | ||
| 52 | -${plan_classification_id_value_locator} = jquery=#plan-general-info .main-classification-code.hidden | ||
| 53 | -${plan_tender_tenderPeriod_startDate_value_locator} = jquery=#plan-general-info .tender-start-date-source.hidden | ||
| 54 | -${plan_items_0_description_value_locator} = jquery=.items-wrapper .hidden.info-wrapper .description | ||
| 55 | -#${plan_items_0_description_value_locator} = jquery=.items-wrapper .pseudo-table .pseudo-table__row:nth(1) .textvalue | ||
| 56 | -${plan_items_0_quantity_value_locator} = jquery=.items-wrapper .pseudo-table .pseudo-table__row:nth(1) .item-info-wrapper .quantity-source | ||
| 57 | -${plan_items_0_quantity_value_type} = float | ||
| 58 | -${plan_items_0_deliveryDate_endDate_value_locator} = jquery=.items-wrapper .hidden.info-wrapper .delivery-end-date-source | ||
| 59 | -#${plan_items_0_deliveryDate_endDate_value_locator} = jquery=.items-wrapper .pseudo-table .pseudo-table__row:nth(1) .item-info-wrapper .delivery-end-date-source | ||
| 60 | -${plan_items_0_unit_code_value_locator} = jquery=.items-wrapper .hidden.info-wrapper .unit-code-source | ||
| 61 | -${plan_items_0_unit_name_value_locator} = jquery=.items-wrapper .hidden.info-wrapper .unit-title-source | ||
| 62 | -${plan_items_0_classification_description_value_locator} = jquery=.items-wrapper .hidden.info-wrapper .main-classification-description | ||
| 63 | -${plan_items_0_classification_scheme_value_locator} = jquery=.items-wrapper .hidden.info-wrapper .main-classification-scheme | ||
| 64 | -${plan_items_0_classification_id_value_locator} = jquery=.items-wrapper .hidden.info-wrapper .main-classification-code | ||
| 65 | -#${plan_items_0_unit_code_value_locator} = jquery=.items-wrapper .pseudo-table .pseudo-table__row:nth(1) .item-info-wrapper .unit-code-source | ||
| 66 | -#${plan_items_0_unit_name_value_locator} = jquery=.items-wrapper .pseudo-table .pseudo-table__row:nth(1) .item-info-wrapper .unit-title-source | ||
| 67 | -#${plan_items_0_classification_description_value_locator} = jquery=.items-wrapper .pseudo-table .pseudo-table__row:nth(1) .item-info-wrapper .main-classification-description | ||
| 68 | -#${plan_items_0_classification_scheme_value_locator} = jquery=.items-wrapper .pseudo-table .pseudo-table__row:nth(1) .item-info-wrapper .main-classification-scheme | ||
| 69 | -#${plan_items_0_classification_id_value_locator} = jquery=.items-wrapper .pseudo-table .pseudo-table__row:nth(1) .item-info-wrapper .main-classification-code | ||
| 70 | -${plan_items_1_description_value_locator} = jquery=.items-wrapper .pseudo-table .pseudo-table__row:nth(2) .textvalue | ||
| 71 | -${plan_items_1_quantity_value_locator} = jquery=.items-wrapper .pseudo-table .pseudo-table__row:nth(2) .item-info-wrapper .quantity-source | ||
| 72 | -${plan_items_1_quantity_value_type} = float | ||
| 73 | -${plan_items_1_deliveryDate_endDate_value_locator} = jquery=.items-wrapper .pseudo-table .pseudo-table__row:nth(2) .item-info-wrapper .delivery-end-date-source | ||
| 74 | -${plan_items_1_unit_code_value_locator} = jquery=.items-wrapper .pseudo-table .pseudo-table__row:nth(2) .item-info-wrapper .unit-code-source | ||
| 75 | -${plan_items_1_unit_name_value_locator} = jquery=.items-wrapper .pseudo-table .pseudo-table__row:nth(2) .item-info-wrapper .unit-title-source | ||
| 76 | -${plan_items_1_classification_description_value_locator} = jquery=.items-wrapper .pseudo-table .pseudo-table__row:nth(2) .item-info-wrapper .main-classification-description | ||
| 77 | -${plan_items_1_classification_scheme_value_locator} = jquery=.items-wrapper .pseudo-table .pseudo-table__row:nth(2) .item-info-wrapper .main-classification-scheme | ||
| 78 | -${plan_items_1_classification_id_value_locator} = jquery=.items-wrapper .pseudo-table .pseudo-table__row:nth(2) .item-info-wrapper .main-classification-code | ||
| 79 | -${plan_status_value_locator} = jquery=#aside-part-pjax .opstatus.hidden | ||
| 80 | - | ||
| 81 | -# plan index + search | ||
| 82 | -${plan_search_form_locator} = id=plan-filter-form | ||
| 83 | -##${plan_search_form_query_input_locator} = jquery=#plan-filter-form .dynamic-search-query input | ||
| 84 | -${plan_search_form_query_input_locator} = jquery=#plan-filter-form [data-ds-filter="query"] input.select2-search__field | ||
| 85 | -${plan_search_form_result_locator_tpl} = jquery=#plan-list .lots__item .lot__characteristic li:contains(%query%) | ||
| 86 | - | ||
| 87 | -${plan_form_ecp_btn_locator} = id=submitBtn | ||
| 88 | - | ||
| 89 | -#for delete | ||
| 90 | -${plan_form_delete_reason_value_locator} = id=plancancellationform-reason | ||
| 91 | -${plan_form_delete_sucess_btn_locator} = jquery=.btn.btn-success:contains("Скасувати") | ||
| 92 | -${plan_form_delete_submit_success_msg} = Рядок плану закупівлі успішно скасований |
playtender_qualification.robot
deleted
100644 → 0
| 1 | -*** Settings *** | ||
| 2 | - | ||
| 3 | -Resource playtender_common.robot | ||
| 4 | -Resource playtender_variables.robot | ||
| 5 | -Resource playtender_bid_variables.robot | ||
| 6 | -Resource playtender_qualification_variables.robot | ||
| 7 | - | ||
| 8 | -*** Keywords *** | ||
| 9 | - | ||
| 10 | - | ||
| 11 | -open tender form prequalification | ||
| 12 | - [Arguments] ${qualification_num} | ||
| 13 | - [Documentation] Відкрити форму прекваліфікації і потрібну кваліфікацію під номером qualification_num | ||
| 14 | - | ||
| 15 | - run keyword if ${qualification_num} == 0 wait until page contains element with reloading ${prequalification_form_0_open_btn_locator} | ||
| 16 | - run keyword if ${qualification_num} == 0 open popup by btn locator ${prequalification_form_0_open_btn_locator} | ||
| 17 | - run keyword if ${qualification_num} == 1 open popup by btn locator ${prequalification_form_1_open_btn_locator} | ||
| 18 | - run keyword if ${qualification_num} == -1 open popup by btn locator ${prequalification_form_-1_open_btn_locator} | ||
| 19 | - run keyword if ${qualification_num} == -2 wait until page contains element with reloading ${prequalification_form_-2_open_btn_locator} | ||
| 20 | - run keyword if ${qualification_num} == -2 open popup by btn locator ${prequalification_form_-2_open_btn_locator} | ||
| 21 | -# run keyword if ${qualification_num} == -2 execute javascript $('#bids-pjax .pseudo-table__row:last a[href*="/tender/prequalification"]').click() | ||
| 22 | - | ||
| 23 | -confirm qualifications | ||
| 24 | - [Documentation] Відкрити форму прекваліфікації і перевести кваліфікацію під номером qualification_num до тендера | ||
| 25 | - ... tender_uaid в статус active. | ||
| 26 | - | ||
| 27 | - Execute Javascript $('#prequalificationform-decision').val('accept').change() | ||
| 28 | - capture page screenshot | ||
| 29 | - wait until page contains element ${prequalification_form_eligible_input_locator} | ||
| 30 | - capture page screenshot | ||
| 31 | - click visible element ${prequalification_form_eligible_input_locator} | ||
| 32 | - click visible element ${prequalification_form_qualified_input_locator} | ||
| 33 | - submit form and check result ${qualification_form_submit_btn_locator} ${qualification_form_submit_success_msg} ${tender_created_checker_element_locator} | ||
| 34 | - | ||
| 35 | -reject qualifications | ||
| 36 | - [Documentation] Відкрити форму прекваліфікації і перевестикваліфікацію під номером qualification_num до тендера | ||
| 37 | - ... tender_uaid в статус unsuccessful. | ||
| 38 | - | ||
| 39 | - Execute Javascript $('#prequalificationform-decision').val('decline').change() | ||
| 40 | - capture page screenshot | ||
| 41 | -# wait until page contains element ${qualification_form_reasons_cancellation_input_locator} | ||
| 42 | -# capture page screenshot | ||
| 43 | -# input text to exist visible input ${qualification_form_reasons_cancellation_input_locator} GenerateFakeText | ||
| 44 | - Execute Javascript ${prequalification_form_title_cancellation_input_locator} | ||
| 45 | - capture page screenshot | ||
| 46 | -# input text to exist visible input ${qualification_form_reasons_cancellation_input_locator} GenerateFakeText | ||
| 47 | - input text to exist visible input ${prequalification_form_description_cancellation_input_locator} GenerateFakeText | ||
| 48 | - capture page screenshot | ||
| 49 | - submit form and check result ${qualification_form_submit_btn_locator} ${qualification_form_decline_success_msg} ${tender_created_checker_element_locator} | ||
| 50 | - capture page screenshot | ||
| 51 | - | ||
| 52 | -cancel qualifications | ||
| 53 | - [Documentation] Відкрити форму прекваліфікації і перевести кваліфікацію під номером qualification_num до тендера | ||
| 54 | - ... tender_uaid в статус cancelled. | ||
| 55 | - | ||
| 56 | - wait until page contains element ${prequalification_form_description_cancellation_input_locator} | ||
| 57 | - Execute Javascript $('#prequalificationform-decision').val('cancel').change() | ||
| 58 | -# select from visible list by label ${tender_form_award_organization_region_id_locator} ${region} | ||
| 59 | - capture page screenshot | ||
| 60 | - wait until page contains element ${prequalification_form_description_cancellation_input_locator} | ||
| 61 | - capture page screenshot | ||
| 62 | - input text to exist visible input ${prequalification_form_description_cancellation_input_locator} GenerateFakeText | ||
| 63 | - capture page screenshot | ||
| 64 | - submit form and check result ${qualification_form_submit_btn_locator} ${qualification_form_cancel_success_msg} ${tender_created_checker_element_locator} | ||
| 65 | - | ||
| 66 | -approve the final qualification decision | ||
| 67 | - [Documentation] Перевести тендер tender_uaid в статус active.pre-qualification.stand-still. | ||
| 68 | - | ||
| 69 | - wait until alert is visible ${qualification_form_approve_question_msg} | ||
| 70 | - click visible element ${alert_confirm_btn_locator} | ||
| 71 | - wait until alert is visible ${qualification_form_approve_success_msg} | ||
| 72 | - close current visible alert | ||
| 73 | - | ||
| 74 | - wait until page does not contain element ${alert_confirm_btn_locator} | ||
| 75 | - | ||
| 76 | -# wait until page contains ${qualification_form_approve_question_msg} | ||
| 77 | -# Execute Javascript ${qualification_form_approve_js_submit_btn_locator} | ||
| 78 | -# Wait Until Page Contains ${qualification_form_approve_success_msg} 60 | ||
| 79 | -# wait until alert is visible ${qualification_form_approve_success_msg} | ||
| 80 | -# run keyword and ignore error run keyword if condition is not none ${qualification_form_approve_success_msg} close current visible alert | ||
| 81 | - run keyword and ignore error Wait Until Keyword Succeeds 1600 s 20 s Wait For QualificationsPeriodEnd | ||
| 82 | - | ||
| 83 | -#qualification | ||
| 84 | -open tender form qualification | ||
| 85 | - [Arguments] ${award_num} | ||
| 86 | - [Documentation] Відкрити форму кваліфікації і потрібну кваліфікацію під номером award_num | ||
| 87 | - | ||
| 88 | - run keyword if "${mode}" not in "open_framework" Run Keywords | ||
| 89 | - ... run keyword if ${award_num} == 0 wait until page contains element with reloading ${qualification_form_0_open_btn_locator} | ||
| 90 | - ... AND run keyword if ${award_num} == 0 open popup by btn locator ${qualification_form_0_open_btn_locator} | ||
| 91 | -##### BOF - TMP ##### | ||
| 92 | - ... AND run keyword if ${award_num} == 1 open popup by btn locator ${qualification_form_1_open_btn_locator} | ||
| 93 | - ... AND run keyword if ${award_num} == -1 open popup by btn locator ${qualification_form_last_open_btn_locator} | ||
| 94 | - ... AND run keyword if ${award_num} == 2 open popup by btn locator ${qualification_form_2_open_btn_locator} | ||
| 95 | - ... ELSE IF "${mode}" in "open_framework" Run Keywords | ||
| 96 | - ... run keyword if ${award_num} == 0 wait until page contains element with reloading ${qualification_form_0_open_btn_locator} | ||
| 97 | - ... AND run keyword if ${award_num} == 0 open popup by btn locator ${qualification_form_0_open_btn_locator} | ||
| 98 | - ... AND run keyword if ${award_num} == 1 open popup by btn locator ${qualification_form_1_open_btn_locator} | ||
| 99 | - ... AND run keyword if ${award_num} == -1 open popup by btn locator ${qualification_form_last_open_btn_locator} | ||
| 100 | - ... AND run keyword if ${award_num} == 2 open popup by btn locator ${qualification_form_2_open_btn_locator} | ||
| 101 | - ... AND run keyword if ${award_num} == 3 open popup by btn locator ${qualification_form_3_open_btn_locator} | ||
| 102 | - | ||
| 103 | -copy file qualification | ||
| 104 | - [Arguments] ${username} ${document} ${award_num} | ||
| 105 | - [Documentation] Завантажити документ, який знаходиться по шляху document до | ||
| 106 | - ... постачальника під номером award_num для тендера tender_uaid. | ||
| 107 | - | ||
| 108 | - ## copy file to another dir to prevent it deleting | ||
| 109 | - ${new_doc_name} = Replace String ${document} /tmp/ /tmp/playtender/ | ||
| 110 | - Copy File ${document} ${new_doc_name} | ||
| 111 | - Set To Dictionary ${USERS.users['${username}']} qproposal${award_num}_document=${new_doc_name} | ||
| 112 | - | ||
| 113 | -confirm award qualification | ||
| 114 | - [Arguments] ${username} ${award_num} | ||
| 115 | - [Documentation] Перевести постачальника під номером award_num для тендера tender_uaid | ||
| 116 | - ... в статус active. | ||
| 117 | - | ||
| 118 | - Wait Until Page Contains ${popup_opened_content_success_locator} 60 | ||
| 119 | - run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 10 | ||
| 120 | - wait until element is visible ${qualification_form_submit_btn_locator} 60 | ||
| 121 | -# ${doc_isset}= GetDictionaryKeyExist ${USERS.users['${username}']} qproposal${award_num}_document | ||
| 122 | -# ${doc_name}= Run Keyword If ${doc_isset} GetValueFromDictionaryByKey ${USERS.users['${username}']} qproposal${award_num}_document | ||
| 123 | -# ... ELSE create_fake_doc | ||
| 124 | - ${file_path} ${file_name} ${file_content} = create_fake_doc | ||
| 125 | -# Execute Javascript ${qualification_form_accept_input_locator} | ||
| 126 | - Execute Javascript $('#qualificationform-decision').val('accept').change() | ||
| 127 | -# select from visible list by label ${tender_form_award_organization_region_id_locator} ${region} | ||
| 128 | - capture page screenshot | ||
| 129 | - run keyword and ignore error wait until page contains element ${qualification_form_eligible_input_locator} | ||
| 130 | - capture page screenshot | ||
| 131 | -# run keyword and ignore error click visible element ${qualification_form_eligible_input_locator} | ||
| 132 | -# run keyword and ignore error click visible element ${qualification_form_qualified_input_locator} | ||
| 133 | - run keyword and ignore error Execute Javascript $('#qualificationform-qualified').click() | ||
| 134 | - run keyword and ignore error Execute Javascript $('#qualificationform-eligible').click() | ||
| 135 | - choose file ${add_file_to_qualification_form_locator} ${file_path} | ||
| 136 | - wait until page does not contain element ${popup_dynamic_form_loading_element_locator} 60 | ||
| 137 | - wait until element is visible ${qualification_form_add_document_type_input_locator} 60 | ||
| 138 | -# submit current visible popup | ||
| 139 | - | ||
| 140 | - Run Keyword And Ignore Error Execute Javascript $('.fancybox-is-open .fancybox-content select[id*="-document_type"]:last').val('winningBid').change() | ||
| 141 | - capture page screenshot | ||
| 142 | - click visible element ${qualification_form_add_document_description_btn_locator} | ||
| 143 | - capture page screenshot | ||
| 144 | - wait until element is visible ${qualification_form_add_document_description_input_locator} | ||
| 145 | - input text to exist visible input ${qualification_form_add_document_description_input_locator} test2 | ||
| 146 | - capture page screenshot | ||
| 147 | - click visible element ${qualification_form_add_document_close_description_btn_locator} | ||
| 148 | - capture page screenshot | ||
| 149 | - | ||
| 150 | - run keyword and ignore error click visible element ${qualification_ecp_check_input_locator} | ||
| 151 | - capture page screenshot | ||
| 152 | - run keyword and ignore error submit form and check result ${qualification_form_submit_btn_locator} ${qualification_award_form_submit_success_msg} ${qualification_form_submit_btn_locator} | ||
| 153 | - capture page screenshot | ||
| 154 | - wait until element is visible ${qualification_form_submit_btn_locator} 60 | ||
| 155 | -## run keyword and ignore error submit form and check result ${qualification_form_submit_btn_locator} ${None} ${qualification_ecp_form_open_locator} | ||
| 156 | - Execute Javascript $('.fancybox-is-open .fancybox-content button.btn.btn-success').click() | ||
| 157 | -# click visible element ${qualification_form_submit_btn_locator} | ||
| 158 | - capture page screenshot | ||
| 159 | - wait until element is visible ${qualification_form_submit_btn_locator} 60 | ||
| 160 | - wait until element is visible ${qualification_ecp_form_open_locator} 60 | ||
| 161 | - run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 10 | ||
| 162 | - capture page screenshot | ||
| 163 | - run keyword and ignore error Load Sign | ||
| 164 | - capture page screenshot | ||
| 165 | - wait until element is visible ${qualification_form_submit_btn_locator} 60 | ||
| 166 | - run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 10 | ||
| 167 | - capture page screenshot | ||
| 168 | - run keyword and ignore error submit form and check result ${qualification_form_submit_btn_locator} ${qualification_award_after_ecp_form_submit_success_msg} ${None} | ||
| 169 | - capture page screenshot | ||
| 170 | -# Wait Until Page Contains ЕЦП/КЕП успішно накладено на рішення, тепер потрібно підтвердити рішення. 60 | ||
| 171 | -# click visible element xpath=//div[contains(@class, 'jconfirm')]//*[text()='Закрити'] | ||
| 172 | - | ||
| 173 | - | ||
| 174 | -reject award qualification | ||
| 175 | - [Arguments] ${username} ${award_num} | ||
| 176 | - [Documentation] Перевести постачальника під номером award_num для тендера tender_uaid | ||
| 177 | - ... в статус active. | ||
| 178 | - | ||
| 179 | - Wait Until Page Contains ${popup_opened_content_success_locator} 60 | ||
| 180 | - wait until element is visible ${qualification_form_submit_btn_locator} 60 | ||
| 181 | -# wait until popup is visible | ||
| 182 | - ${doc_isset} = GetDictionaryKeyExist ${USERS.users['${username}']} qproposal${award_num}_document | ||
| 183 | -# ${doc_name} = Run Keyword If ${doc_isset} GetValueFromDictionaryByKey ${USERS.users['${username}']} qproposal${award_num}_document | ||
| 184 | -# ... ELSE GenerateFakeDocument | ||
| 185 | - ${file_path} ${file_name} ${file_content} = create_fake_doc | ||
| 186 | - Execute Javascript $('#qualificationform-decision').val('decline').change() | ||
| 187 | - capture page screenshot | ||
| 188 | -# select from visible list by label ${tender_form_award_organization_region_id_locator} ${region} | ||
| 189 | - wait until page contains element ${qualification_form_reasons_cancellation_input_locator} | ||
| 190 | - capture page screenshot | ||
| 191 | - Execute Javascript ${qualification_award_form_title_cancellation_input_locator} | ||
| 192 | - capture page screenshot | ||
| 193 | -# input text to exist visible input ${qualification_form_reasons_cancellation_input_locator} GenerateFakeText | ||
| 194 | - input text to exist visible input ${qualification_form_description_cancellation_input_locator} GenerateFakeText | ||
| 195 | - | ||
| 196 | - choose file ${add_file_to_qualification_form_locator} ${file_path} | ||
| 197 | - wait until element is visible ${qualification_form_add_document_type_input_locator} | ||
| 198 | -# submit current visible popup | ||
| 199 | - | ||
| 200 | - Run Keyword And Ignore Error Execute Javascript $('.fancybox-is-open .fancybox-content #qualification-documents select[id*="-document_type"]:last').val('winningBid').change() | ||
| 201 | - capture page screenshot | ||
| 202 | - click visible element ${qualification_form_add_document_description_btn_locator} | ||
| 203 | - wait until element is visible ${qualification_form_add_document_description_input_locator} | ||
| 204 | - input text to exist visible input ${qualification_form_add_document_description_input_locator} test2 | ||
| 205 | - capture page screenshot | ||
| 206 | - click visible element ${qualification_form_add_document_close_description_btn_locator} | ||
| 207 | - capture page screenshot | ||
| 208 | - | ||
| 209 | - submit form and check result ${qualification_form_submit_btn_locator} ${qualification_form_cancell_success_msg} | ||
| 210 | - run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 10 | ||
| 211 | - capture page screenshot | ||
| 212 | - Execute Javascript $('.fancybox-is-open .fancybox-content button.btn.btn-success').click() | ||
| 213 | - capture page screenshot | ||
| 214 | - run keyword and ignore error Load Sign | ||
| 215 | - capture page screenshot | ||
| 216 | - wait until element is visible ${qualification_form_submit_btn_locator} 60 | ||
| 217 | - run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 10 | ||
| 218 | - capture page screenshot | ||
| 219 | - run keyword and ignore error submit form and check result ${qualification_form_submit_btn_locator} ${qualification_award_after_ecp_form_submit_success_msg} ${None} | ||
| 220 | - capture page screenshot | ||
| 221 | - reload page | ||
| 222 | - | ||
| 223 | -cancel award qualification | ||
| 224 | - [Documentation] Відкрити форму кваліфікації і перевести кваліфікацію під номером qualification_num до тендера | ||
| 225 | - ... tender_uaid в статус cancelled. | ||
| 226 | - | ||
| 227 | - wait until element is visible ${qualification_form_submit_btn_locator} 60 | ||
| 228 | -# Execute Javascript ${qualification_form_cancel_input_locator} | ||
| 229 | - Execute Javascript $('#qualificationform-decision').val('cancel').change() | ||
| 230 | -# select from visible list by label ${tender_form_award_organization_region_id_locator} ${region} | ||
| 231 | - capture page screenshot | ||
| 232 | - run keyword and ignore error wait until page contains element ${qualification_form_description_cancellation_input_locator} | ||
| 233 | - capture page screenshot | ||
| 234 | - run keyword and ignore error Execute Javascript ${qualification_award_form_title_decline_input_locator} | ||
| 235 | - run keyword and ignore error input text to exist visible input ${qualification_form_description_cancellation_input_locator} GenerateFakeText | ||
| 236 | - capture page screenshot | ||
| 237 | - submit form and check result ${qualification_form_submit_btn_locator} ${qualification_form_cancel_success_msg} ${tender_created_checker_element_locator} | ||
| 238 | - | ||
| 239 | -#qualification awawd reporting and negotiotion | ||
| 240 | -confirm award | ||
| 241 | - [Arguments] ${document} | ||
| 242 | - [Documentation] Перевести постачальника в статус active. | ||
| 243 | - | ||
| 244 | - run keyword and ignore error run keyword if '${mode}' in 'negotiation reporting' Wait Until Page Contains ${award_form_negotiation_submit_success_msg} 10 | ||
| 245 | -# run keyword and ignore error run keyword if '${mode}' in 'negotiation reporting' wait until alert is visible ${award_form_negotiation_submit_success_msg} | ||
| 246 | - run keyword and ignore error run keyword if '${mode}' in 'negotiation reporting' close current visible alert | ||
| 247 | - | ||
| 248 | - capture page screenshot | ||
| 249 | - wait until page contains element with reloading ${qualification_form_0_open_btn_locator} | ||
| 250 | - open popup by btn locator ${qualification_form_0_open_btn_locator} | ||
| 251 | -# ${file_path} ${file_name} ${file_content} = create_fake_doc | ||
| 252 | - Execute Javascript $('#qualificationform-decision').val('accept').change() | ||
| 253 | - capture page screenshot | ||
| 254 | -# run keyword and ignore error wait until page contains element ${award_form_qualified_input_locator} | ||
| 255 | - capture page screenshot | ||
| 256 | - run keyword and ignore error click visible element ${award_form_qualified_input_locator} | ||
| 257 | - choose file ${add_file_to_qualification_form_locator} ${document} | ||
| 258 | -# wait until page does not contain element ${popup_dynamic_form_loading_element_locator} 60 | ||
| 259 | - wait until element is visible ${qualification_form_add_document_type_input_locator} 60 | ||
| 260 | -# submit current visible popup | ||
| 261 | - | ||
| 262 | - Run Keyword And Ignore Error Execute Javascript $('.fancybox-is-open .fancybox-content select[id*="-document_type"]:last').val('winningBid').change() | ||
| 263 | - capture page screenshot | ||
| 264 | - click visible element ${qualification_form_add_document_description_btn_locator} | ||
| 265 | - capture page screenshot | ||
| 266 | - wait until element is visible ${qualification_form_add_document_description_input_locator} | ||
| 267 | - input text to exist visible input ${qualification_form_add_document_description_input_locator} test2 | ||
| 268 | - capture page screenshot | ||
| 269 | - click visible element ${qualification_form_add_document_close_description_btn_locator} | ||
| 270 | - capture page screenshot | ||
| 271 | - | ||
| 272 | -# run keyword and ignore error run keyword if '${mode}' in 'reporting' submit form and check result ${qualification_form_submit_btn_locator} ${qualification_award_form_submit_success_msg} | ||
| 273 | - capture page screenshot | ||
| 274 | -# run keyword and ignore error run keyword if '${mode}' in 'reporting' wait until page contains element with reloading ${qualification_form_0_open_btn_locator} | ||
| 275 | - capture page screenshot | ||
| 276 | -# run keyword and ignore error run keyword if '${mode}' in 'reporting' open popup by btn locator ${qualification_form_0_open_btn_locator} | ||
| 277 | - run keyword and ignore error run keyword if '${mode}' in 'reporting' Execute Javascript $('[id$="qualificationform-tender_not_signed_qualification_confirmation_required"]').click() | ||
| 278 | - capture page screenshot | ||
| 279 | -# run keyword and ignore error run keyword if '${mode}' in 'reporting' Execute Javascript $('#qualificationform-decision').val('accept').change() | ||
| 280 | - run keyword and ignore error run keyword if '${mode}' in 'negotiation' Execute Javascript $('[id$="qualificationform-qualified"]').click() | ||
| 281 | - capture page screenshot | ||
| 282 | - run keyword and ignore error submit form and check result ${qualification_form_submit_btn_locator} ${qualification_award_form_submit_success_msg} ${qualification_form_submit_btn_locator} | ||
| 283 | - capture page screenshot | ||
| 284 | - run keyword and ignore error click visible element ${qualification_ecp_check_input_locator} | ||
| 285 | - capture page screenshot | ||
| 286 | - wait until element is visible ${qualification_form_submit_btn_locator} 60 | ||
| 287 | -# run keyword and ignore error submit form and check result ${qualification_form_submit_btn_locator} ${None} ${qualification_ecp_form_open_locator} | ||
| 288 | - Execute Javascript $('.fancybox-is-open .fancybox-content button.btn.btn-success').click() | ||
| 289 | -# click visible element ${qualification_form_submit_btn_locator} | ||
| 290 | - capture page screenshot | ||
| 291 | - wait until element is visible ${qualification_form_submit_btn_locator} 60 | ||
| 292 | - wait until element is visible ${qualification_ecp_form_open_locator} 60 | ||
| 293 | - run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 10 | ||
| 294 | - capture page screenshot | ||
| 295 | - run keyword and ignore error Load Sign | ||
| 296 | - capture page screenshot | ||
| 297 | - wait until element is visible ${qualification_form_submit_btn_locator} 60 | ||
| 298 | - run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 10 | ||
| 299 | - capture page screenshot | ||
| 300 | - run keyword and ignore error submit form and check result ${qualification_form_submit_btn_locator} ${qualification_award_after_ecp_form_submit_success_msg} ${None} | ||
| 301 | - capture page screenshot | ||
| 302 | - | ||
| 303 | -confirm awards | ||
| 304 | - [Documentation] Перевести постачальників для тендера tender_uaid | ||
| 305 | - ... в статус active. | ||
| 306 | - | ||
| 307 | - wait until page contains element with reloading ${qualification_agreement_form_approve_submit_btn_locator} 720 30 | ||
| 308 | - click visible element ${qualification_agreement_form_approve_submit_btn_locator} | ||
| 309 | - wait until page contains ${qualification_agreement_form_approve_question_msg} | ||
| 310 | - Execute Javascript ${qualification_form_approve_js_submit_btn_locator} | ||
| 311 | - Wait Until Page Contains ${qualification_agreement_form_approve_success_msg} 60 | ||
| 312 | - wait until alert is visible ${qualification_agreement_form_approve_success_msg} | ||
| 313 | - run keyword and ignore error run keyword if condition is not none ${qualification_agreement_form_approve_success_msg} close current visible alert | ||
| 314 | - Wait Until Keyword Succeeds 800 s 20 s Wait For QualificationsPeriodEnd | ||
| 315 | - | ||
| 316 | - |
| 1 | -*** Variables *** | ||
| 2 | - | ||
| 3 | -#qualification | ||
| 4 | -${prequalification_form_0_open_btn_locator} = jquery=#bids-pjax .pseudo-table__row[qualification-index="0"] a[href*="/tender/prequalification"] | ||
| 5 | -${prequalification_form_1_open_btn_locator} = jquery=#bids-pjax .pseudo-table__row[qualification-index="1"] a[href*="/tender/prequalification"] | ||
| 6 | -${prequalification_form_2_open_btn_locator} = jquery=#bids-pjax .pseudo-table__row[qualification-index="2"] a[href*="/tender/prequalification"] | ||
| 7 | -${prequalification_form_3_open_btn_locator} = jquery=#bids-pjax .pseudo-table__row[qualification-index="3"] a[href*="/tender/prequalification"] | ||
| 8 | -${prequalification_form_-1_open_btn_locator} = jquery=#bids-pjax .pseudo-table__row[qualification-negative-index="-1"] a[href*="/tender/prequalification"] | ||
| 9 | -${prequalification_form_-2_open_btn_locator} = jquery=#bids-pjax .pseudo-table__row[qualification-negative-index="-2"] a[href*="/tender/prequalification"] | ||
| 10 | -${prequalification_form_last_open_btn_locator} = jquery=#bids-pjax .pseudo-table__row[qualification-index-last] a[href*="/tender/prequalification"] | ||
| 11 | -${prequalification_form_approve_open_btn_locator} = jquery=.aside__inner a[href*="/tender/prequalification-approve"] | ||
| 12 | -${prequalification_form_accept_input_locator} = $('#prequalificationform-decision').val('accept').change() | ||
| 13 | -${prequalification_form_decline_input_locator} = $('#prequalificationform-decision').val('decline').change() | ||
| 14 | -${prequalification_form_cancel_input_locator} = $('#prequalificationform-decision').val('cancel').change() | ||
| 15 | -${prequalification_form_eligible_input_locator} = jquery=#prequalificationform-eligible | ||
| 16 | -${prequalification_form_qualified_input_locator} = jquery=#prequalificationform-qualified | ||
| 17 | -${qualification_form_reasons_cancellation_input_locator} = jquery=.fancybox-is-open .select2-search__field | ||
| 18 | -${prequalification_form_title_cancellation_input_locator} = $('#prequalificationform-title').val('Тендерна пропозиція не відповідає вимогам тендерної документації').change() | ||
| 19 | -${prequalification_form_description_cancellation_input_locator} = jquery=#prequalificationform-description | ||
| 20 | - | ||
| 21 | -${qualification_form_submit_success_msg} = Пропозиція прийнята | ||
| 22 | -${qualification_form_decline_success_msg} = Пропозиція відхилена | ||
| 23 | -${qualification_form_cancel_success_msg} = Рішення скасоване | ||
| 24 | -${qualification_form_cancell_success_msg} = Рішення завантажене, тепер потрібно накласти ЕЦП/КЕП. | ||
| 25 | -${qualification_form_approve_question_msg} = Ви впевнені що бажаєте завершити прекваліфікацію і перейти до наступного етапу? | ||
| 26 | -${qualification_form_submit_btn_locator} = jquery=.fancybox-is-open .fancybox-content button.btn.btn-success | ||
| 27 | -${qualification_form_approve_submit_btn_locator} = jquery=.jconfirm-box-container .btn.btn-default | ||
| 28 | -${qualification_form_approve_success_msg} = Прекваліфікація підтверджена, дочекайтесь опублікування на сайті уповноваженого органу. | ||
| 29 | -${qualification_form_approve_js_submit_btn_locator} = $('.jconfirm-box-container .btn.btn-default').click() | ||
| 30 | -${qualification_agreement_form_approve_submit_btn_locator} = jquery=.aside__inner a.js-qualification-approve | ||
| 31 | -${qualification_agreement_form_approve_success_msg} = Кваліфікація підтверджена, дочекайтесь опублікування на сайті уповноваженого органу. | ||
| 32 | -${qualification_agreement_form_approve_question_msg} = Ви впевнені що бажаєте завершити кваліфікацію і перейти до наступного етапу? | ||
| 33 | - | ||
| 34 | -${qualification_form_0_open_btn_locator} = jquery=#bids-pjax .pseudo-table__row[award-index="0"] a[href*="/tender/qualification"] | ||
| 35 | -${qualification_form_1_open_btn_locator} = jquery=#bids-pjax .pseudo-table__row[award-index="1"] a[href*="/tender/qualification"] | ||
| 36 | -${qualification_form_2_open_btn_locator} = jquery=#bids-pjax .pseudo-table__row[award-index="2"] a[href*="/tender/qualification"] | ||
| 37 | -${qualification_form_3_open_btn_locator} = jquery=#bids-pjax .pseudo-table__row[award-index="3"] a[href*="/tender/qualification"] | ||
| 38 | -${qualification_form_last_open_btn_locator} = jquery=#bids-pjax .pseudo-table__row[award-index-last] a[href*="/tender/qualification"] | ||
| 39 | -${qualification_form_eligible_input_locator} = jquery=#qualificationform-eligible | ||
| 40 | -${qualification_form_qualified_input_locator} = jquery=#qualificationform-qualified | ||
| 41 | -${qualification_award_form_submit_success_msg} = Рішення завантажене, тепер потрібно накласти ЕЦП/КЕП. | ||
| 42 | -${qualification_award_after_ecp_form_submit_success_msg} = Рішення підтверджене, очікує опублікування на сайті уповноваженого органу. | ||
| 43 | -${qualification_ecp_form_submit_success_msg} = ЕЦП/КЕП успішно накладено | ||
| 44 | -#${qualification_ecp_form_submit_success_msg} = ЕЦП/КЕП успішно накладено на рішення, тепер потрібно підтвердити рішення. | ||
| 45 | -${qualification_ecp_form_open_locator} = jquery=.modal.modal-xs.fancybox-content | ||
| 46 | -${qualification_ecp_check_input_locator} = jquery=input[id$="form-signing"] | ||
| 47 | -${qualification_award_form_title_cancellation_input_locator} = $('#qualificationform-title').val('Тендерна пропозиція не відповідає вимогам тендерної документації').change() | ||
| 48 | -${qualification_award_form_title_decline_input_locator} = $('#qualificationform-title').val('Переможець відмовився від підписання договору про закупівлю відповідно до вимог тендерної документації або укладення договору про закупівлю').change() | ||
| 49 | -${qualification_form_description_cancellation_input_locator} = jquery=#qualificationform-description | ||
| 50 | -${qualification_form_approve_open_btn_locator} = jquery=.aside__inner a[href*="/tender/qualification-approve"] | ||
| 51 | -${qualification_form_accept_input_locator} = $('#qualificationform-decision').val('accept').change() | ||
| 52 | -${qualification_form_decline_input_locator} = $('#qualificationform-decision').val('decline').change() | ||
| 53 | -${add_file_to_qualification_form_locator} = jquery=.field-qualificationform-documents .js-upload-documents input[type$="file"]:first | ||
| 54 | -${qualification_form_cancel_input_locator} = $('#qualificationform-decision').val('cancel').change() | ||
| 55 | -${qualification_form_add_document_type_input_locator} = jquery=.js-dynamic-form-content-item:last .document-type select[id*="-document_type"] | ||
| 56 | -${qualification_form_add_document_description_btn_locator} = jquery=.js-dynamic-form-content-item:last [href$="#edit"]:last | ||
| 57 | -${qualification_form_add_document_description_input_locator} = jquery=.js-dynamic-form-content-item:last .popover.fade.top.in textarea[id*="-description"].form-control | ||
| 58 | -${qualification_form_add_document_close_description_btn_locator} = jquery=#qualification-documents .js-actions-wrapper:last .popover.fade.top.in [href$="#close"] | ||
| 59 | -#${qualification_form_add_document_close_description_btn_locator} = jquery=.js-dynamic-form-content-item:last .popover.fade.top.in [href$="#close"] | ||
| 60 | - | ||
| 61 | -#award reporting and negotiotion | ||
| 62 | -${award_form_qualified_input_locator} = jquery=#qualificationform-qualified | ||
| 63 | -${award_form_negotiation_submit_success_msg} = Інформація о постачальниках успішно онвлена. | ||
| 64 | - |
playtender_question.robot
deleted
100644 → 0
| 1 | -*** Settings *** | ||
| 2 | - | ||
| 3 | -Resource playtender_common.robot | ||
| 4 | -Resource playtender_question_variables.robot | ||
| 5 | - | ||
| 6 | -*** Keywords *** | ||
| 7 | - | ||
| 8 | -add question | ||
| 9 | - [Arguments] ${username} ${tender_uaid} ${type} ${type_id} ${question} | ||
| 10 | - [Documentation] Створити запитання з question в описі для тендера tender_uaid. | ||
| 11 | - | ||
| 12 | - click visible element ${question_form_open_btn_locator} | ||
| 13 | - open popup by btn locator ${question_form_open_create_btn_locator} | ||
| 14 | - Wait Until Page Contains ${popup_opened_content_success_locator} 60 | ||
| 15 | - wait until element is visible ${question_form_create_questionform_title_input_locator} 60 | ||
| 16 | - wait until popup is visible | ||
| 17 | -# input text to exist visible input ${question_form_open_form_answer_input_locator} ${question.data.answer} | ||
| 18 | - Run Keyword If '${type}' == 'tender' Select From List By Label ${question_form_create_questionform_related_of_input_locator} Закупівля | ||
| 19 | - Run Keyword If '${type}' == 'lot' Select From List By Label ${question_form_create_questionform_related_of_input_locator} Лот | ||
| 20 | - Run Keyword If '${type}' == 'lot' run keyword and ignore error Click Element ${question_form_create_questionform_related_lot_input_locator} | ||
| 21 | - ${question_form_create_questionform_related_lot_input_locator} = Run Keyword If '${type}' == 'lot' replace string ${question_form_create_questionform_related_lot_input_locator_tpl} %type_id% ${type_id} | ||
| 22 | - Run Keyword If '${type}' == 'lot' run keyword and ignore error Click Element ${question_form_create_questionform_related_lot_input_locator} | ||
| 23 | - Run Keyword If '${type}' == 'item' Select From List By Label ${question_form_create_questionform_related_of_input_locator} Предмет закупівлі | ||
| 24 | - Run Keyword If '${type}' == 'item' run keyword and ignore error Click Element ${question_form_create_questionform_related_item_input_locator} | ||
| 25 | - ${question_form_create_questionform_related_item_input_locator} = Run Keyword If '${type}' == 'item' replace string ${question_form_create_questionform_related_item_input_locator_tpl} %type_id% ${type_id} | ||
| 26 | - Run Keyword If '${type}' == 'item' run keyword and ignore error Click Element ${question_questionform_related_item_input_locator} | ||
| 27 | - input text to exist visible input ${question_form_create_questionform_title_input_locator} ${question.data.title} | ||
| 28 | - input text to exist visible input ${question_form_create_questionform_description_input_locator} ${question.data.description} | ||
| 29 | - submit form and check result ${question_form_answer_submit_btn_locator} ${question_form_submit_success_msg} ${tender_created_checker_element_locator} ${true} | ||
| 30 | -# click visible element ${question_form_answer_submit_btn_locator} | ||
| 31 | - wait until page does not contain element with reloading ${tender_sync_element_locator} | ||
| 32 | - sleep 5 | ||
| 33 | - | ||
| 34 | -answer question | ||
| 35 | - [Arguments] ${answer_data} ${question_id} | ||
| 36 | - [Documentation] Дати відповідь answer_data на запитання з question_id в описі для тендера tender_uaid. | ||
| 37 | - | ||
| 38 | - click visible element ${question_form_open_btn_locator} | ||
| 39 | - ${question_open_form_answer_locator} = replace string ${question_open_form_answer_btn_locator_tpl} %title% ${question_id} | ||
| 40 | - wait until page contains element with reloading ${question_open_form_answer_locator} | ||
| 41 | - ${question_form_open_form_answer_btn_locator} = replace string ${question_form_open_form_answer_btn_locator_tpl} %title% ${question_id} | ||
| 42 | - wait until page contains element with reloading ${question_form_open_form_answer_btn_locator} | ||
| 43 | - open popup by btn locator ${question_form_open_form_answer_btn_locator} | ||
| 44 | - input text to exist visible input ${question_answer_form_answer_input_locator} ${answer_data.data.answer} | ||
| 45 | - submit form and check result ${question_answer_form_submit_btn_locator} ${question_form_submit_answer_success_msg} ${true} | ||
| 46 | - | ||
| 47 | -get question information | ||
| 48 | - [Arguments] ${question_id} ${field_name} | ||
| 49 | - [Documentation] Отримати значення поля field_name із запитання з question_id | ||
| 50 | - ... в описі для тендера tender_uaid. | ||
| 51 | - | ||
| 52 | - submit form and check result ${bid_form_refresh_btn_locator} ${bid_form_refresh_success_msg} ${tender_created_checker_element_locator} ${true} | ||
| 53 | - click visible element ${question_form_open_btn_locator} | ||
| 54 | - ${question_open_form_answer_locator} = replace string ${question_open_form_answer_btn_locator_tpl} %title% ${question_id} | ||
| 55 | - wait until page contains element with reloading ${question_open_form_answer_locator} | ||
| 56 | - ${question_title_value_locator} = Run Keyword If 'title' == '${field_name}' replace string ${question_title_value_locator_tpl} %title% ${question_id} | ||
| 57 | - ${question_answer_value_locator} = Run Keyword If 'answer' == '${field_name}' replace string ${question_answer_value_locator_tpl} %title% ${question_id} | ||
| 58 | - ${question_description_value_locator} = Run Keyword If 'description' == '${field_name}' replace string ${question_description_value_locator_tpl} %title% ${question_id} | ||
| 59 | - Run Keyword If 'answer' == '${field_name}' wait until page contains element with reloading ${question_answer_value_locator} | ||
| 60 | - ${return_value} = Run Keyword If 'title' == '${field_name}' get_text ${question_title_value_locator} | ||
| 61 | - ... ELSE Run Keyword If 'answer' == '${field_name}' get_text ${question_answer_value_locator} | ||
| 62 | - ... ELSE Run Keyword If 'description' == '${field_name}' get_text ${question_description_value_locator} | ||
| 63 | - [Return] ${return_value} | ||
| 64 | - | ||
| 65 | - |
playtender_question_variables.robot
deleted
100644 → 0
| 1 | -*** Variables *** | ||
| 2 | - | ||
| 3 | -#question | ||
| 4 | -${question_form_open_btn_locator} = jquery=#aside-part-pjax a[href*="/tender/questions"] | ||
| 5 | -${question_open_form_answer_btn_locator_tpl} = jquery=#tender-question-list .js-item div[data-title*="%title%"] | ||
| 6 | -#${question_open_form_answer_js_btn_locator_tpl} = $('#tender-question-list .js-item div[data-title*="%title%"] .btn.btn-default').click() | ||
| 7 | -#${question_form_open_form_answer_btn_locator_tpl} = jquery=#tender-question-list .js-item div[data-title*="%title%"] .btn.btn-default | ||
| 8 | -${question_open_form_answer_js_btn_locator_tpl} = $('#tender-question-list .js-item div[data-title*="%title%"] .btn.btn-success.btn-custom').click() | ||
| 9 | -${question_form_open_form_answer_btn_locator_tpl} = jquery=#tender-question-list .js-item div[data-title*="%title%"] .btn.btn-success.btn-custom | ||
| 10 | -${question_form_open_form_answer_input_locator} = jquery=.fancybox-is-open .fancybox-content #tender-question-answer-form #questionanswerform-answer | ||
| 11 | -${question_form_answer_submit_btn_locator} = jquery=.fancybox-is-open .fancybox-content button.js-submit-btn | ||
| 12 | -${question_form_submit_answer_success_msg} = Відповідь на питання успішно надана. | ||
| 13 | -${question_form_create_question_btn_locator} = jquery=#aside-part-pjax [data-url*="/tender/question-create"] | ||
| 14 | -${question_form_create_questionform_related_of_input_locator} = jquery=.fancybox-is-open .fancybox-content #questionform-related_of | ||
| 15 | -${question_form_create_questionform_related_item_input_locator} = jquery=.fancybox-is-open .fancybox-content #questionform-related_item | ||
| 16 | -${question_form_create_questionform_related_item_input_locator_tpl} = jquery=.fancybox-is-open .fancybox-content #questionform-related_item option:contains("%type_id%") | ||
| 17 | -${question_form_create_questionform_title_input_locator} = jquery=.fancybox-is-open .fancybox-content #questionform-title | ||
| 18 | -${question_form_create_questionform_description_input_locator} = jquery=.fancybox-is-open .fancybox-content #questionform-description | ||
| 19 | -${question_form_submit_success_msg} = Запитання створене. | ||
| 20 | -${question_form_create_questionform_related_lot_input_locator} = jquery=.fancybox-is-open .fancybox-content #questionform-related_lot | ||
| 21 | -${question_form_create_questionform_related_lot_input_locator} = jquery=.fancybox-is-open .fancybox-content #questionform-related_lot | ||
| 22 | -${question_form_create_questionform_related_lot_input_locator_tpl} = jquery=.fancybox-is-open .fancybox-content #questionform-related_lot option:contains("%type_id%") | ||
| 23 | -${question_form_open_create_btn_locator} = jquery=#tender-part-pjax a[href*="/tender/question-create"]:first | ||
| 24 | - | ||
| 25 | -${question_answer_form_answer_input_locator} = jquery=#questionanswerform-answer | ||
| 26 | -${question_answer_form_submit_btn_locator} = jquery=#tender-question-answer-form .js-submit-btn | ||
| 27 | - | ||
| 28 | -#for viewer | ||
| 29 | -${question_answer_value_locator_tpl} = jquery=#tender-question-list .js-item div[data-title*="%title%"] .info-row.answer span.value | ||
| 30 | -${question_title_value_locator_tpl} = jquery=#tender-question-list .js-item div[data-title*="%title%"] h4.callout__title | ||
| 31 | -${question_description_value_locator_tpl} = jquery=#tender-question-list .js-item div[data-title*="%title%"] .info-row.description span.value | ||
| 32 | - | ||
| 33 | -${popup_locator} = jquery=.fancybox-is-open .fancybox-slide--current .fancybox-content | ||
| 34 | - |
playtender_service.py
deleted
100644 → 0
| 1 | -# -*- coding: utf-8 - | ||
| 2 | -import re | ||
| 3 | -import copy | ||
| 4 | -import urllib | ||
| 5 | -import urllib3 | ||
| 6 | -import string | ||
| 7 | - | ||
| 8 | -import dateutil.parser | ||
| 9 | -from iso8601 import parse_date | ||
| 10 | -from robot.libraries.BuiltIn import BuiltIn | ||
| 11 | -from datetime import datetime, timedelta | ||
| 12 | -import pytz | ||
| 13 | - | ||
| 14 | -TZ = pytz.timezone('Europe/Kiev') | ||
| 15 | - | ||
| 16 | -def get_library(): | ||
| 17 | - return BuiltIn().get_library_instance('Selenium2Library') | ||
| 18 | - | ||
| 19 | - | ||
| 20 | -def get_webdriver_instance(): | ||
| 21 | - return get_library()._current_browser() | ||
| 22 | - | ||
| 23 | - | ||
| 24 | -# return of variable is None | ||
| 25 | -def get_variable_is_none(variable): | ||
| 26 | - if variable is None: | ||
| 27 | - return True | ||
| 28 | - return False | ||
| 29 | - | ||
| 30 | - | ||
| 31 | -# run specified keyword if condition is not none type | ||
| 32 | -def run_keyword_if_condition_is_not_none(condition, name, *args): | ||
| 33 | - if get_variable_is_none(condition) == False: | ||
| 34 | - BuiltIn().run_keyword(name, *args) | ||
| 35 | - | ||
| 36 | - | ||
| 37 | -# run specified keyword if condition is none type | ||
| 38 | -def run_keyword_if_condition_is_none(condition, name, *args): | ||
| 39 | - if get_variable_is_none(condition) == True: | ||
| 40 | - BuiltIn().run_keyword(name, *args) | ||
| 41 | - | ||
| 42 | - | ||
| 43 | -# return value for *keys (nested) in `element` (dict). | ||
| 44 | -def get_from_dictionary_by_keys(element, *keys): | ||
| 45 | - if not isinstance(element, dict): | ||
| 46 | - raise AttributeError('keys_exists() expects dict as first argument.') | ||
| 47 | - if len(keys) == 0: | ||
| 48 | - raise AttributeError('keys_exists() expects at least two arguments, one given.') | ||
| 49 | - | ||
| 50 | - _element = element | ||
| 51 | - for key in keys: | ||
| 52 | - try: | ||
| 53 | - _element = _element[key] | ||
| 54 | - except KeyError: | ||
| 55 | - return None | ||
| 56 | - return _element | ||
| 57 | - | ||
| 58 | - | ||
| 59 | -# returns if element exists on page. optimization | ||
| 60 | -def get_is_element_exist(locator): | ||
| 61 | - jquery_locator = convert_locator_to_jquery(locator) | ||
| 62 | - if get_variable_is_none(jquery_locator) == False: | ||
| 63 | - jquery_locator = jquery_locator.replace('"', '\\"') | ||
| 64 | - length = get_webdriver_instance().execute_script('return $("' + jquery_locator + '").length;') | ||
| 65 | - return length > 0 | ||
| 66 | - | ||
| 67 | - try: | ||
| 68 | - get_library()._element_find(locator, None, True) | ||
| 69 | - except Exception: | ||
| 70 | - return False | ||
| 71 | - return True | ||
| 72 | - | ||
| 73 | - | ||
| 74 | -# click | ||
| 75 | -def js_click_element(locator): | ||
| 76 | - element = get_library()._element_find(locator, None, True) | ||
| 77 | - get_webdriver_instance().execute_script( | ||
| 78 | - 'var $el = jQuery(arguments[0]); if($el.length) $el.click();', | ||
| 79 | - element | ||
| 80 | - ) | ||
| 81 | - | ||
| 82 | - | ||
| 83 | -# convert locator to jquery locator | ||
| 84 | -def convert_locator_to_jquery(locator): | ||
| 85 | - locator_params = locator.split('=', 1) | ||
| 86 | - if locator_params[0] == 'id': | ||
| 87 | - return '#' + locator_params[1] | ||
| 88 | - if locator_params[0] == 'jquery': | ||
| 89 | - return locator_params[1] | ||
| 90 | - if locator_params[0] == 'css': | ||
| 91 | - return locator_params[1] | ||
| 92 | - return None | ||
| 93 | - | ||
| 94 | - | ||
| 95 | -# set scroll to element in view | ||
| 96 | -def set_element_scroll_into_view(locator): | ||
| 97 | - element = get_library()._element_find(locator, None, True) | ||
| 98 | - get_webdriver_instance().execute_script( | ||
| 99 | - 'var $el = jQuery(arguments[0]); if($el.length) $el.get(0).scrollIntoView();', | ||
| 100 | - element | ||
| 101 | - ) | ||
| 102 | - | ||
| 103 | - | ||
| 104 | -# return text/value by specified locator | ||
| 105 | -def get_value_by_locator(locator): | ||
| 106 | - element = get_library()._element_find(locator, None, True) | ||
| 107 | - text = get_webdriver_instance().execute_script( | ||
| 108 | - 'var $element = jQuery(arguments[0]);' | ||
| 109 | - 'if($element.is("input[type=checkbox]")) return $element.is(":checked") ? "1":"0";' | ||
| 110 | - 'if($element.is("input,textarea,select")) return $element.val();' | ||
| 111 | - 'return $element.text();', | ||
| 112 | - element | ||
| 113 | - ) | ||
| 114 | - return text | ||
| 115 | - | ||
| 116 | - | ||
| 117 | -# input text to hidden input | ||
| 118 | -def input_text_to_hidden_input(locator, text): | ||
| 119 | - element = get_library()._element_find(locator, None, True) | ||
| 120 | - get_webdriver_instance().execute_script( | ||
| 121 | - 'jQuery(arguments[0]).val("' + text.replace('"', '\\"') + '");', | ||
| 122 | - element | ||
| 123 | - ) | ||
| 124 | - | ||
| 125 | - | ||
| 126 | -# select option by label for hidden select | ||
| 127 | -def select_from_hidden_list_by_label(locator, label): | ||
| 128 | - element = get_library()._element_find(locator, None, True) | ||
| 129 | - get_webdriver_instance().execute_script( | ||
| 130 | - 'var $option = jQuery("option:contains(' + label.replace('"', '\\"') + ')", arguments[0]);' + | ||
| 131 | - 'if($option.length) jQuery(arguments[0]).val($option.attr("value"));', | ||
| 132 | - element | ||
| 133 | - ) | ||
| 134 | - | ||
| 135 | - | ||
| 136 | -# trigger change event for input by locator | ||
| 137 | -def trigger_input_change_event(locator): | ||
| 138 | - element = get_library()._element_find(locator, None, True) | ||
| 139 | - get_webdriver_instance().execute_script( | ||
| 140 | - 'var $el = jQuery(arguments[0]); if($el.length) $el.trigger("change");', | ||
| 141 | - element | ||
| 142 | - ) | ||
| 143 | - | ||
| 144 | - | ||
| 145 | -# convert all numners to string | ||
| 146 | -def convert_float_to_string(number): | ||
| 147 | - return repr(float(number)) | ||
| 148 | - | ||
| 149 | - | ||
| 150 | -def convert_esco__float_to_string(number): | ||
| 151 | - return '{0:.5f}'.format(float(number)) | ||
| 152 | - | ||
| 153 | - | ||
| 154 | -def convert_float_to_string_3f(number): | ||
| 155 | - return '{0:.3f}'.format(float(number)) | ||
| 156 | - | ||
| 157 | - | ||
| 158 | -# convert any variable to specified type | ||
| 159 | -def convert_to_specified_type(value, type): | ||
| 160 | - value = "%s" % (value) | ||
| 161 | - if type == 'integer': | ||
| 162 | - value = value.split() | ||
| 163 | - value = ''.join(value) | ||
| 164 | - print(value) | ||
| 165 | - value = int(value) | ||
| 166 | - if type == 'float': | ||
| 167 | - value = value.split() | ||
| 168 | - value = ''.join(value) | ||
| 169 | - print(value) | ||
| 170 | - value = float(value) | ||
| 171 | - return value | ||
| 172 | - | ||
| 173 | - | ||
| 174 | -# prepare isodate in needed format | ||
| 175 | -def isodate_format(isodate, format): | ||
| 176 | - iso_dt = parse_date(isodate) | ||
| 177 | - return iso_dt.strftime(format) | ||
| 178 | - | ||
| 179 | - | ||
| 180 | -def procuring_entity_name(tender_data): | ||
| 181 | - tender_data.data.procuringEntity['name'] = u"ТОВ \"ПлейТендер\"" | ||
| 182 | - tender_data.data.procuringEntity['name_en'] = u"TOV \"playtender\"" | ||
| 183 | - tender_data.data.procuringEntity.identifier['id'] = u"1234567890-playtender" | ||
| 184 | - tender_data.data.procuringEntity.identifier['legalName'] = u"ТОВ \"ПлейТендер\"" | ||
| 185 | - tender_data.data.procuringEntity.identifier['legalName_en'] = u"TOV \"playtender\"" | ||
| 186 | - if 'address' in tender_data.data.procuringEntity: | ||
| 187 | - tender_data.data.procuringEntity.address['region'] = u"м. Київ" | ||
| 188 | - tender_data.data.procuringEntity.address['postalCode'] = u"123123" | ||
| 189 | - tender_data.data.procuringEntity.address['locality'] = u"Київ" | ||
| 190 | - tender_data.data.procuringEntity.address['streetAddress'] = u"address" | ||
| 191 | - if 'contactPoint' in tender_data.data.procuringEntity: | ||
| 192 | - tender_data.data.procuringEntity.contactPoint['name'] = u"Test ЗамовникОборони" | ||
| 193 | - tender_data.data.procuringEntity.contactPoint['name_en'] = u"Test" | ||
| 194 | - tender_data.data.procuringEntity.contactPoint['email'] = u"chuzhin@mail.ua" | ||
| 195 | - tender_data.data.procuringEntity.contactPoint['telephone'] = u"+3801111111111" | ||
| 196 | - tender_data.data.procuringEntity.contactPoint['url'] = u"http://playtender.com.ua" | ||
| 197 | - if 'buyers' in tender_data.data: | ||
| 198 | - tender_data.data.buyers[0]['name'] = u"ТОВ \"ПлейТендер\"" | ||
| 199 | - tender_data.data.buyers[0].identifier['id'] = u"1234567890-playtender" | ||
| 200 | - tender_data.data.buyers[0].identifier['legalName'] = u"ТОВ \"ПлейТендер\"" | ||
| 201 | - return tender_data | ||
| 202 | - | ||
| 203 | -# prepare data | ||
| 204 | -def prepare_procuring_entity_data(data): | ||
| 205 | - try: | ||
| 206 | - data['name'] = u"Playtender" | ||
| 207 | - data.identifier['id'] = u"playtender" | ||
| 208 | - data.identifier['legalName'] = u"Playtender" | ||
| 209 | - data.identifier['scheme'] = u"UA-EDR" | ||
| 210 | - if 'name_en' in data: | ||
| 211 | - data['name_en'] = u"Playtender" | ||
| 212 | - if 'legalName_en' in data.identifier: | ||
| 213 | - data.identifier['legalName_en'] = u"Playtender" | ||
| 214 | - if 'address' in data: | ||
| 215 | - data.address['countryName'] = u"Україна" | ||
| 216 | - data.address['locality'] = u"Київ" | ||
| 217 | - data.address['postalCode'] = u"01111" | ||
| 218 | - data.address['region'] = u"місто Київ" | ||
| 219 | - data.address['streetAddress'] = u"вулиця Тестова, 220, 8" | ||
| 220 | - if 'contactPoint' in data: | ||
| 221 | - data.contactPoint['email'] = u"chuzhin@mail.ua" | ||
| 222 | - data.contactPoint['faxNumber'] = u"+3801111111111" | ||
| 223 | - data.contactPoint['telephone'] = u"+3801111111111" | ||
| 224 | - data.contactPoint['name'] = u"Test" | ||
| 225 | - if 'name_en' in data.contactPoint: | ||
| 226 | - data.contactPoint['name_en'] = u"Test" | ||
| 227 | - data.contactPoint['url'] = u"https://playtender.com.ua" | ||
| 228 | - except Exception: | ||
| 229 | - raise Exception('data is not a dictionary') | ||
| 230 | - | ||
| 231 | - | ||
| 232 | -# prepare data | ||
| 233 | -def prepare_buyers_data(data): | ||
| 234 | - if type(data) is not list: | ||
| 235 | - raise Exception('data is not a list') | ||
| 236 | - | ||
| 237 | - # preventing console errors about changing buyer data in cases | ||
| 238 | - if len(data) != 1: | ||
| 239 | - return | ||
| 240 | - | ||
| 241 | - item = next(iter(data), None) | ||
| 242 | - item['name'] = u"Playtender" | ||
| 243 | - item.identifier['id'] = u"playtender" | ||
| 244 | - item.identifier['legalName'] = u"Playtender" | ||
| 245 | - item.identifier['scheme'] = u"UA-EDR" | ||
| 246 | - | ||
| 247 | - | ||
| 248 | -# prepare dictionary from field path + value | ||
| 249 | -def generate_dictionary_from_field_path_and_value(path, value): | ||
| 250 | - data = dict() | ||
| 251 | - path_keys_list = path.split('.') | ||
| 252 | - if len(path_keys_list) > 1: | ||
| 253 | - key = path_keys_list.pop(0) | ||
| 254 | - value = generate_dictionary_from_field_path_and_value('.'.join(path_keys_list), value) | ||
| 255 | - indexRegex = re.compile(r'(\[(\d+)\]$)') | ||
| 256 | - matchObj = indexRegex.search(key) | ||
| 257 | - print matchObj | ||
| 258 | - if matchObj: | ||
| 259 | - key = indexRegex.sub('', key) | ||
| 260 | - value['list_index'] = matchObj.group(2) | ||
| 261 | - value = [value] | ||
| 262 | - data[key] = value | ||
| 263 | - else: | ||
| 264 | - data = dict() | ||
| 265 | - data[path] = value | ||
| 266 | - return data | ||
| 267 | - | ||
| 268 | - | ||
| 269 | -# Percentage conversion | ||
| 270 | -def multiply_hundred(number): | ||
| 271 | - return number * 100 | ||
| 272 | - | ||
| 273 | - | ||
| 274 | -# prepares data for filling form in easiest way | ||
| 275 | -def prepare_tender_data(data_original): | ||
| 276 | - # preventing change data in global view | ||
| 277 | - data = copy.deepcopy(data_original) | ||
| 278 | - | ||
| 279 | - # check if data is for multilot | ||
| 280 | - if 'lots' not in data: | ||
| 281 | - return data | ||
| 282 | - | ||
| 283 | - # moves features to its related items | ||
| 284 | - if 'features' in data: | ||
| 285 | - i = 0 | ||
| 286 | - l = len(data['features']) | ||
| 287 | - while i < l: | ||
| 288 | - if data['features'][i]['featureOf'] == 'lot': | ||
| 289 | - for lot in data['lots']: | ||
| 290 | - if lot['id'] == data['features'][i]['relatedItem']: | ||
| 291 | - if 'features' not in lot: | ||
| 292 | - lot['features'] = [] | ||
| 293 | - lot['features'].append(data['features'].pop(i)) | ||
| 294 | - l = l - 1 | ||
| 295 | - i = i - 1 | ||
| 296 | - break | ||
| 297 | - if data['features'][i]['featureOf'] == 'item': | ||
| 298 | - for item in data['items']: | ||
| 299 | - if item['id'] == data['features'][i]['relatedItem']: | ||
| 300 | - if 'features' not in item: | ||
| 301 | - item['features'] = [] | ||
| 302 | - item['features'].append(data['features'].pop(i)) | ||
| 303 | - l = l - 1 | ||
| 304 | - i = i - 1 | ||
| 305 | - break | ||
| 306 | - i = i + 1 | ||
| 307 | - | ||
| 308 | - if 'features' in data: | ||
| 309 | - if len(data['features']) == 0: | ||
| 310 | - del data['features'] | ||
| 311 | - | ||
| 312 | - # moves items to its related lots | ||
| 313 | - i = 0 | ||
| 314 | - l = len(data['items']) | ||
| 315 | - while i < l: | ||
| 316 | - for lot in data['lots']: | ||
| 317 | - if lot['id'] == data['items'][i]['relatedLot']: | ||
| 318 | - if 'items' not in lot: | ||
| 319 | - lot['items'] = [] | ||
| 320 | - lot['items'].append(data['items'].pop(i)) | ||
| 321 | - l = l - 1 | ||
| 322 | - i = i - 1 | ||
| 323 | - break | ||
| 324 | - i = i + 1 | ||
| 325 | - | ||
| 326 | - del data['items'] | ||
| 327 | - | ||
| 328 | - if 'milestones' not in data: | ||
| 329 | - return data | ||
| 330 | - # moves milestones to its related lots | ||
| 331 | - i = 0 | ||
| 332 | - l = len(data['milestones']) | ||
| 333 | - while i < l: | ||
| 334 | - for lot in data['lots']: | ||
| 335 | - if lot['id'] == data['milestones'][i]['relatedLot']: | ||
| 336 | - if 'milestones' not in lot: | ||
| 337 | - lot['milestones'] = [] | ||
| 338 | - lot['milestones'].append(data['milestones'].pop(i)) | ||
| 339 | - l = l - 1 | ||
| 340 | - i = i - 1 | ||
| 341 | - break | ||
| 342 | - i = i + 1 | ||
| 343 | - | ||
| 344 | - del data['milestones'] | ||
| 345 | - | ||
| 346 | - return data | ||
| 347 | - | ||
| 348 | - | ||
| 349 | -def split_agreementDuration(str, type): | ||
| 350 | - if type in 'year': | ||
| 351 | - year_temp = str.split('Y', 1) | ||
| 352 | - value = year_temp[0].split('P', 1) | ||
| 353 | - elif type in 'month': | ||
| 354 | - month_temp = str.split('M', 1) | ||
| 355 | - value = month_temp[0].split('Y', 1) | ||
| 356 | - else: | ||
| 357 | - day_temp = str.split('D', 1) | ||
| 358 | - value = day_temp[0].split('M', 1) | ||
| 359 | - return value[1] | ||
| 360 | - | ||
| 361 | - | ||
| 362 | -def convert_date_to_string_contr(date): | ||
| 363 | - date = dateutil.parser.parse(date) | ||
| 364 | - date = date.strftime("%d.%m.%Y %H:%M:%S") | ||
| 365 | - return date | ||
| 366 | - | ||
| 367 | -def get_value_minimalStepPercentage(value): | ||
| 368 | - value = value / 100 | ||
| 369 | - return value | ||
| 370 | - | ||
| 371 | -def set_value_minimalStepPercentage(value): | ||
| 372 | - value = value * 100 | ||
| 373 | - return value | ||
| 374 | - | ||
| 375 | -def convert_esco__float_to_string(number): | ||
| 376 | - return '{0:.5f}'.format(float(number)) | ||
| 377 | - | ||
| 378 | -def convert_string_to_float(number): | ||
| 379 | - return float(number) | ||
| 380 | - | ||
| 381 | -def download_file(url, file_name, output_dir): | ||
| 382 | - urllib.urlretrieve(url, ('{}/{}'.format(output_dir, file_name))) | ||
| 383 | - | ||
| 384 | -def parse_complaintPeriod_date(date_string): | ||
| 385 | - date_str = datetime.strptime(date_string, "%d.%m.%Y %H:%M") | ||
| 386 | - date = datetime(date_str.year, date_str.month, date_str.day, date_str.hour, date_str.minute, date_str.second, | ||
| 387 | - date_str.microsecond) | ||
| 388 | - date = TZ.localize(date).isoformat() | ||
| 389 | - return date | ||
| 390 | - | ||
| 391 | -def parse_deliveryPeriod_date1(date): | ||
| 392 | - date = dateutil.parser.parse(date) | ||
| 393 | - date = date.strftime("%d.%m.%Y") | ||
| 394 | - return date | ||
| 395 | - | ||
| 396 | -def parse_deliveryPeriod_date(date_string): | ||
| 397 | -# date_str = datetime.strptime(date_string, "%Y-%m-%dT%H:%M:%S+03:00") | ||
| 398 | - if '+03' in date_string: | ||
| 399 | - date_str = datetime.strptime(date_string, "%Y-%m-%dT%H:%M:%S+03:00") | ||
| 400 | - else: | ||
| 401 | - date_str = datetime.strptime(date_string, "%Y-%m-%dT%H:%M:%S+02:00") | ||
| 402 | - date = datetime(date_str.year, date_str.month, date_str.day) | ||
| 403 | - date = date.strftime("%d.%m.%Y") | ||
| 404 | - return date | ||
| 405 | - | ||
| 406 | -def split_joinvalue(str_value): | ||
| 407 | - str_value = str_value.split() | ||
| 408 | - str_value = ''.join(str_value) | ||
| 409 | - print(str_value) | ||
| 410 | - str_value.replace(" ", "") | ||
| 411 | - return str_value |
playtender_tender.robot
deleted
100644 → 0
| 1 | -*** Settings *** | ||
| 2 | - | ||
| 3 | -Resource playtender_common.robot | ||
| 4 | -Resource playtender_variables.robot | ||
| 5 | -Resource playtender_question.robot | ||
| 6 | -Resource playtender_claim.robot | ||
| 7 | -Resource playtender_bid.robot | ||
| 8 | -Resource playtender_viewer.robot | ||
| 9 | - | ||
| 10 | -*** Keywords *** | ||
| 11 | - | ||
| 12 | -open new tender form | ||
| 13 | - [Documentation] відкриття сторінки створення тендеру | ||
| 14 | - | ||
| 15 | - open page and wait element by locator ${broker_baseurl}/tender/create ${tender_form_locator} | ||
| 16 | - | ||
| 17 | -update tender queue | ||
| 18 | - [Documentation] запускає оновлення тендерів з ЦБД і додає їх в чергу, тобто синхронізація може відбутися не відразу | ||
| 19 | - ... поточна сторіка повертається | ||
| 20 | - | ||
| 21 | - ${current_url} = get location | ||
| 22 | - go to ${broker_baseurl}/utils/queue-tender-update | ||
| 23 | - go to ${current_url} | ||
| 24 | - | ||
| 25 | -open tender form by uaid | ||
| 26 | - [Arguments] ${tender_uaid} | ||
| 27 | - [Documentation] відкриття сторінки редагування плану | ||
| 28 | - | ||
| 29 | - open tender page by uaid ${tender_uaid} | ||
| 30 | - click visible element and wait until page contains element ${tender_edit_btn_locator} ${tender_form_locator} | ||
| 31 | - | ||
| 32 | -open tender page by uaid | ||
| 33 | - [Arguments] ${uaid} | ||
| 34 | - [Documentation] відкриває сторінку з тендером | ||
| 35 | - | ||
| 36 | - open site page and wait content element ${broker_baseurl}/tender/${uaid} | ||
| 37 | - ${is_tender_found} = get is element exist ${tender_view_checker_element_locator} | ||
| 38 | - return from keyword if ${is_tender_found} == ${True} | ||
| 39 | - ${is_tender_not_found} = get is 404 page | ||
| 40 | - ${is_needed_to_update_and_wait_sync} = set variable if ${is_test_role_owner} == ${False} and ${is_tender_not_found} ${True} ${False} | ||
| 41 | - run keyword if ${is_needed_to_update_and_wait_sync} update tender queue | ||
| 42 | - run keyword if ${is_needed_to_update_and_wait_sync} wait until 404 page disappears | ||
| 43 | - ${is_tender_found} = get is element exist ${tender_view_checker_element_locator} | ||
| 44 | - run keyword if ${is_tender_found} == ${False} fail Opening tender page by uaid fails. | ||
| 45 | - | ||
| 46 | - | ||
| 47 | -fill tender form | ||
| 48 | - [Arguments] ${data} | ||
| 49 | - [Documentation] заповнення форми з масива даних | ||
| 50 | - | ||
| 51 | - fill tender general info ${data} | ||
| 52 | - ${features} = get from dictionary by keys ${data} features | ||
| 53 | - run keyword if condition is not none ${features} fill tender form features ${features} ${tender_form_general_panel_add_feature_btn_locator} | ||
| 54 | - ${items} = get from dictionary by keys ${data} items | ||
| 55 | - run keyword if condition is not none ${items} fill tender form items ${items} | ||
| 56 | - ${milestones} = get from dictionary by keys ${data} milestones | ||
| 57 | - run keyword and ignore error run keyword if condition is not none ${milestones} fill tender form milestones ${milestones} | ||
| 58 | - ${lots} = get from dictionary by keys ${data} lots | ||
| 59 | - run keyword if condition is not none ${lots} fill tender form lots ${lots} | ||
| 60 | - ${supplier_data} = op_robot_tests.tests_files.service_keywords . Test Supplier Data | ||
| 61 | - ##### BOF - TMP for negotiation milestone 1 lot##### | ||
| 62 | - run keyword if '${mode}' in 'reporting' Set Global Variable ${rep_val} ${data.value.amount} | ||
| 63 | - ##### EOF - TMP ##### | ||
| 64 | - run keyword if '${mode}' in 'negotiation reporting' fill tender from award reporting ${data.value.amount} ${supplier_data.data.suppliers[0]} | ||
| 65 | - Run Keyword And Ignore Error fill tender required documents | ||
| 66 | - ${procurement_method_type} = get from dictionary by keys ${data} procurementMethodType | ||
| 67 | - Run Keyword And Ignore Error run keyword if '${mode}' in 'openeu open_esco open_framework' or ('${mode}' == 'open_competitive_dialogue' and '${procurement_method_type}' == 'competitiveDialogueEU') fill tender contact person ${data} | ||
| 68 | -# Run Keyword And Ignore Error Execute Javascript $('a.btn.btn-default.btn-update.js-form-popup-add').click() | ||
| 69 | - | ||
| 70 | -fill tender form 2 stage | ||
| 71 | - [Arguments] ${data} | ||
| 72 | - [Documentation] заповнення форми з масива даних | ||
| 73 | - | ||
| 74 | - fill tender general info 2 stage ${data} | ||
| 75 | - ${features} = get from dictionary by keys ${data} features | ||
| 76 | - run keyword if condition is not none ${features} fill tender form features ${features} ${tender_form_general_panel_add_feature_btn_locator} | ||
| 77 | - ${items} = get from dictionary by keys ${data} items | ||
| 78 | -# run keyword if condition is not none ${items} fill tender form items ${items} | ||
| 79 | - run keyword if condition is not none ${items} fill tender form ${items} | ||
| 80 | - ${milestones} = get from dictionary by keys ${data} milestones | ||
| 81 | - run keyword and ignore error run keyword if condition is not none ${milestones} fill tender form milestones ${milestones} | ||
| 82 | - ${lots} = get from dictionary by keys ${data} lots | ||
| 83 | - run keyword if condition is not none ${lots} fill tender form lots 2 stage ${lots} | ||
| 84 | - ${supplier_data} = op_robot_tests.tests_files.service_keywords . Test Supplier Data | ||
| 85 | - run keyword if '${mode}' in 'negotiation reporting' fill tender from award reporting ${data.value.amount} ${supplier_data.data.suppliers[0]} | ||
| 86 | - Run Keyword And Ignore Error fill tender required documents | ||
| 87 | - | ||
| 88 | -fill tender general info | ||
| 89 | - [Arguments] ${data} | ||
| 90 | - [Documentation] обирає потрібний тип закупівлі, чекає оновлення форми, вказує мультилотовість, заповнює | ||
| 91 | - ... приховані поля + відкриває попап основних даних, заповнює його і закриває | ||
| 92 | - | ||
| 93 | - Execute Javascript $(window).scrollTop(0) | ||
| 94 | - wait until page does not contain element ${tender_load_form_after_mode_locator} | ||
| 95 | - wait until page contains element ${tender_form_procurement_method_type_input_locator} | ||
| 96 | - capture page screenshot | ||
| 97 | - ${procurement_method_type} = get from dictionary by keys ${data} procurementMethodType | ||
| 98 | - capture page screenshot | ||
| 99 | - run keyword if condition is not none ${procurement_method_type} select from list by value ${tender_form_procurement_method_type_input_locator} ${procurement_method_type} | ||
| 100 | - wait until page does not contain element ${tender_load_form_after_mode_locator} | ||
| 101 | - | ||
| 102 | - ${lots} = get from dictionary by keys ${data} lots | ||
| 103 | - run keyword if condition is not none ${lots} Run Keyword And Ignore Error Execute Javascript $('[id$="form-is_multilot"]').click() | ||
| 104 | - wait until page does not contain element ${tender_load_form_after_mode_locator} 20 | ||
| 105 | - | ||
| 106 | - open popup by btn locator ${plan_form_general_panel_edit_btn_locator} | ||
| 107 | - ${plan_path} = Get Variable Value ${ARTIFACT_FILE} artifact_plan.yaml | ||
| 108 | - ${closeFrameworkAgreementSelectionUA_path} = Get Variable Value ${ARTIFACT_FILE} artifact.yaml | ||
| 109 | - ${ARTIFACT} = load_data_from ${plan_path} | ||
| 110 | - run keyword and ignore error run keyword if condition is not none ${ARTIFACT.tender_uaid} input text to visible input ${tender_form_general_tender_plan_id_locator} ${ARTIFACT.tender_uaid} | ||
| 111 | - ${ARTIFACT2} = load_data_from ${closeFrameworkAgreementSelectionUA_path} | ||
| 112 | - run keyword and ignore error run keyword if condition is not none ${ARTIFACT.tender_uaid} input text to visible input ${tender_form_general_agreementid_input_locator} ${ARTIFACT2.tender_uaid} | ||
| 113 | - ${title} = get from dictionary by keys ${data} title | ||
| 114 | - run keyword if condition is not none ${title} input text to visible input ${tender_form_general_tender_title_locator} ${title} | ||
| 115 | - ${title_en} = get from dictionary by keys ${data} title_en | ||
| 116 | - run keyword if condition is not none ${title} input text to exist visible input ${tender_form_general_tender_title_en_locator} ${title_en} | ||
| 117 | - ${description} = get from dictionary by keys ${data} description | ||
| 118 | - run keyword if condition is not none ${title} input text to visible input ${tender_form_general_tender_description_locator} ${description} | ||
| 119 | - ${description_en} = get from dictionary by keys ${data} description_en | ||
| 120 | - run keyword if condition is not none ${title} input text to exist visible input ${tender_form_general_tender_description_en_locator} ${description_en} | ||
| 121 | - ${funders} = get from dictionary by keys ${data} funders | ||
| 122 | - run keyword if condition is not none ${funders} Click Element ${tender_form_general_tender_funder_locator} | ||
| 123 | - run keyword if condition is not none ${funders} fill tender form funders ${funders} | ||
| 124 | - ${amount} = get from dictionary by keys ${data} value amount | ||
| 125 | - run keyword and ignore error run keyword if condition is not none ${amount} run keyword and ignore error input number to exist visible input ${tender_form_general_value_amount_input_locator} ${amount} | ||
| 126 | - ${currency} = get from dictionary by keys ${data} value currency | ||
| 127 | - run keyword if condition is not none ${currency} select from visible list by value ${tender_form_general_value_currency_input_locator} ${currency} | ||
| 128 | - ${value_added_tax_included} = get from dictionary by keys ${data} value valueAddedTaxIncluded | ||
| 129 | - run keyword if condition is not none ${value_added_tax_included} run keyword if ${value_added_tax_included} Execute Javascript $('[id$="form-value_added_tax_included"]').click() | ||
| 130 | -##run keyword and ignore error | ||
| 131 | - | ||
| 132 | -##click element ${tender_form_general_value_added_tax_input_locator} | ||
| 133 | - Execute Javascript $('[id$="form-test_mode"]').click() | ||
| 134 | - ${min_step_amount} = get from dictionary by keys ${data} minimalStep amount | ||
| 135 | - run keyword if condition is not none ${min_step_amount} input number to exist visible input ${tender_form_general_minimalStep_amount_input_locator} ${min_step_amount} | ||
| 136 | - ${main_procurement_category} = get from dictionary by keys ${data} mainProcurementCategory | ||
| 137 | - run keyword if condition is not none ${main_procurement_category} select from visible list by value ${tender_form_general_main_procurement_category_input_locator} ${main_procurement_category} | ||
| 138 | - ${tender_enquiry_period_start_date} = get from dictionary by keys ${data} enquiryPeriod startDate | ||
| 139 | -# run keyword if condition is not none ${tender_enquiry_period_start_date} select from visible list by year of date ${tender_enquiry_period_start_date_input_locator} ${tender_enquiry_period_start_date} | ||
| 140 | - run keyword and ignore error run keyword if condition is not none ${tender_enquiry_period_start_date} input datetime to visible input ${tender_enquiry_period_start_date_input_locator} ${tender_enquiry_period_start_date} | ||
| 141 | - ${tender_enquiry_period_end_date} = get from dictionary by keys ${data} enquiryPeriod endDate | ||
| 142 | -# run keyword if condition is not none ${tender_enquiry_period_start_date} select from visible list by year of date ${tender_enquiry_period_start_date_input_locator} ${tender_enquiry_period_start_date} | ||
| 143 | - run keyword if condition is not none ${tender_enquiry_period_end_date} input datetime to visible input ${tender_enquiry_period_end_date_input_locator} ${tender_enquiry_period_end_date} | ||
| 144 | - ${tender_start_date} = get from dictionary by keys ${data} tenderPeriod startDate | ||
| 145 | - run keyword if condition is not none ${tender_start_date} run keyword and ignore error input datetime to visible input ${tender_tender_period_start_date_input_locator} ${tender_start_date} | ||
| 146 | - ${tender_end_date} = get from dictionary by keys ${data} tenderPeriod endDate | ||
| 147 | - run keyword if condition is not none ${tender_end_date} input datetime to visible input ${tender_tender_period_end_date_input_locator} ${tender_end_date} | ||
| 148 | -# run keyword and ignore error click element ${tender_tender_quick_mode_locator} | ||
| 149 | - run keyword and ignore error Execute Javascript $('[id$="form-quick_mode"]').click() | ||
| 150 | - ${classification} = get from dictionary by keys ${data} classification | ||
| 151 | - run keyword if condition is not none ${classification} select classification by code attributes ${plan_form_classification_edit_btn_locator} ${classification} | ||
| 152 | - ${additional_classifications} = get from dictionary by keys ${data} additionalClassifications | ||
| 153 | - run keyword if condition is not none ${additional_classifications} select classification by array of code attributes ${plan_form_additional_classification_edit_btn_locator} ${additional_classifications} ${None} ${kekv_schemes} | ||
| 154 | - run keyword if condition is not none ${additional_classifications} select classification by array of code attributes ${plan_form_kekv_classification_edit_btn_locator} ${additional_classifications} ${kekv_schemes} | ||
| 155 | - ${funding_kind} = get from dictionary by keys ${data} fundingKind | ||
| 156 | - run keyword if condition is not none ${funding_kind} select from visible list by value ${tender_form_general_funding_kind_input_locator} ${funding_kind} | ||
| 157 | -#esco | ||
| 158 | - ${nbu_discount_rate} = get from dictionary by keys ${data} NBUdiscountRate | ||
| 159 | - ${nbu_discount_rate} = Run keyword If '${nbu_discount_rate}' != '${None}' set_value_minimalStepPercentage ${nbu_discount_rate} | ||
| 160 | - ${nbu_discount_rate} = Run keyword If '${nbu_discount_rate}' != '${None}' convert_esco__float_to_string ${nbu_discount_rate} | ||
| 161 | - run keyword and ignore error run keyword if condition is not none ${nbu_discount_rate} input number to exist visible input ${tender_form_general_nbu_discount_rate_input_locator} ${nbu_discount_rate} | ||
| 162 | -#closeframework | ||
| 163 | - ${max_awards_count} = get from dictionary by keys ${data} maxAwardsCount | ||
| 164 | - run keyword if condition is not none ${max_awards_count} input text to exist visible input ${tender_form_general_max_awards_count_input_locator} ${max_awards_count} | ||
| 165 | - ${agreement_duration_years} = get from dictionary by keys ${data} agreementDuration | ||
| 166 | - ${agreement_duration_years1}= Run keyword If '${agreement_duration_years}' != '${None}' split_agreementDuration ${agreement_duration_years} year | ||
| 167 | - run keyword if condition is not none ${agreement_duration_years} select from visible list by value ${tender_form_general_agreement_duration_years_input_locator} ${agreement_duration_years1} | ||
| 168 | - ${agreement_duration_months} = get from dictionary by keys ${data} agreementDuration | ||
| 169 | - ${agreement_duration_months1}= Run keyword If '${agreement_duration_months}' != '${None}' split_agreementDuration ${agreement_duration_months} month | ||
| 170 | - run keyword if condition is not none ${agreement_duration_months} select from visible list by value ${tender_form_general_agreement_duration_months_input_locator} ${agreement_duration_months1} | ||
| 171 | - ${agreement_duration_days} = get from dictionary by keys ${data} agreementDuration | ||
| 172 | - ${agreement_duration_days1}= Run keyword If '${agreement_duration_days}' != '${None}' split_agreementDuration ${agreement_duration_years} day | ||
| 173 | - run keyword if condition is not none ${agreement_duration_days} select from visible list by value ${tender_form_general_agreement_duration_days_input_locator} ${agreement_duration_days1} | ||
| 174 | -#closeFrameworkAgreementSelectionUA | ||
| 175 | - ${max_awards_count} = get from dictionary by keys ${data} maxAwardsCount | ||
| 176 | - run keyword if condition is not none ${max_awards_count} input text to exist visible input ${tender_form_general_max_awards_count_input_locator} ${max_awards_count} | ||
| 177 | - ${agreement_duration_years} = get from dictionary by keys ${data} agreementDuration | ||
| 178 | - ${agreement_duration_years1}= Run keyword If '${agreement_duration_years}' != '${None}' split_agreementDuration ${agreement_duration_years} year | ||
| 179 | - run keyword if condition is not none ${agreement_duration_years} select from visible list by value ${tender_form_general_agreement_duration_years_input_locator} ${agreement_duration_years1} | ||
| 180 | - ${agreement_duration_months} = get from dictionary by keys ${data} agreementDuration | ||
| 181 | - ${agreement_duration_months1}= Run keyword If '${agreement_duration_months}' != '${None}' split_agreementDuration ${agreement_duration_months} month | ||
| 182 | - run keyword if condition is not none ${agreement_duration_months} select from visible list by value ${tender_form_general_agreement_duration_months_input_locator} ${agreement_duration_months1} | ||
| 183 | - ${agreement_duration_days} = get from dictionary by keys ${data} agreementDuration | ||
| 184 | - ${agreement_duration_days1}= Run keyword If '${agreement_duration_days}' != '${None}' split_agreementDuration ${agreement_duration_years} day | ||
| 185 | - run keyword if condition is not none ${agreement_duration_days} select from visible list by value ${tender_form_general_agreement_duration_days_input_locator} ${agreement_duration_days1} | ||
| 186 | -#negotiation | ||
| 187 | - ${cause} = get from dictionary by keys ${data} cause | ||
| 188 | - run keyword if condition is not none ${cause} select from visible list by value ${tender_form_general_cause_input_locator} ${cause} | ||
| 189 | - ${cause_description} = get from dictionary by keys ${data} causeDescription | ||
| 190 | - run keyword if condition is not none ${cause_description} input text to visible input ${tender_form_general_cause_description_input_locator} ${cause_description} | ||
| 191 | -#complaints | ||
| 192 | - Run Keyword If '${SUITE_NAME}' == 'Tests Files.Complaints' click visible element ${tender_form_auction_skip_mode_input_locator} | ||
| 193 | - submit current visible popup | ||
| 194 | - | ||
| 195 | - | ||
| 196 | -fill tender general info 2 stage | ||
| 197 | - [Arguments] ${data} | ||
| 198 | - [Documentation] обирає потрібний тип закупівлі, чекає оновлення форми, вказує мультилотовість, заповнює | ||
| 199 | - ... приховані поля + відкриває попап основних даних, заповнює його і закриває | ||
| 200 | - | ||
| 201 | - Execute Javascript $(window).scrollTop(0) | ||
| 202 | - wait until page does not contain element ${tender_load_form_after_mode_locator} | ||
| 203 | - wait until page contains element ${tender_form_procurement_method_type_input_locator} | ||
| 204 | - capture page screenshot | ||
| 205 | - ${procurement_method_type} = get from dictionary by keys ${data} procurementMethodType | ||
| 206 | - capture page screenshot | ||
| 207 | - run keyword if condition is not none ${procurement_method_type} select from list by value ${tender_form_procurement_method_type_input_locator} ${procurement_method_type} | ||
| 208 | - wait until page does not contain element ${tender_load_form_after_mode_locator} | ||
| 209 | - | ||
| 210 | - ${lots} = get from dictionary by keys ${data} lots | ||
| 211 | - run keyword if condition is not none ${lots} Run Keyword And Ignore Error Click Element ${tender_multilot_locator} | ||
| 212 | - wait until page does not contain element ${tender_load_form_after_mode_locator} 20 | ||
| 213 | - | ||
| 214 | - open popup by btn locator ${plan_form_general_panel_edit_btn_locator} | ||
| 215 | - ${closeFrameworkAgreementSelectionUA_path} = Get Variable Value ${ARTIFACT_FILE} artifact.yaml | ||
| 216 | - ${ARTIFACT2} = load_data_from ${closeFrameworkAgreementSelectionUA_path} | ||
| 217 | - run keyword and ignore error run keyword if condition is not none ${ARTIFACT.tender_uaid} input text to visible input ${tender_form_general_agreementid_input_locator} ${ARTIFACT2.tender_uaid} | ||
| 218 | - ${main_procurement_category} = get from dictionary by keys ${data} mainProcurementCategory | ||
| 219 | - run keyword if condition is not none ${main_procurement_category} Execute Javascript $('[id$="form-main_procurement_category"]').val('${main_procurement_category}').change() | ||
| 220 | - ${title} = get from dictionary by keys ${data} title | ||
| 221 | - run keyword if condition is not none ${title} input text to visible input ${tender_form_general_tender_title_locator} ${title} | ||
| 222 | - ${title_en} = get from dictionary by keys ${data} title_en | ||
| 223 | - run keyword if condition is not none ${title} input text to exist visible input ${tender_form_general_tender_title_en_locator} ${title_en} | ||
| 224 | - ${description} = get from dictionary by keys ${data} description | ||
| 225 | - run keyword if condition is not none ${title} input text to visible input ${tender_form_general_tender_description_locator} ${description} | ||
| 226 | - ${description_en} = get from dictionary by keys ${data} description_en | ||
| 227 | - run keyword if condition is not none ${title} input text to exist visible input ${tender_form_general_tender_description_en_locator} ${description_en} | ||
| 228 | - ${amount} = get from dictionary by keys ${data} value amount | ||
| 229 | - run keyword and ignore error run keyword if condition is not none ${amount} run keyword and ignore error input number to exist visible input ${tender_form_general_value_amount_input_locator} ${amount} | ||
| 230 | - ${currency} = get from dictionary by keys ${data} value currency | ||
| 231 | - run keyword if condition is not none ${currency} select from visible list by value ${tender_form_general_value_currency_input_locator} ${currency} | ||
| 232 | - ${value_added_tax_included} = get from dictionary by keys ${data} value valueAddedTaxIncluded | ||
| 233 | - run keyword if condition is not none ${value_added_tax_included} run keyword if ${value_added_tax_included} Click Element ${tender_form_general_value_added_tax_input_locator} | ||
| 234 | - ${min_step_amount} = get from dictionary by keys ${data} minimalStep amount | ||
| 235 | - run keyword if condition is not none ${min_step_amount} input number to exist visible input ${tender_form_general_minimalStep_amount_input_locator} ${min_step_amount} | ||
| 236 | - ${tender_enquiry_period_start_date} = get from dictionary by keys ${data} enquiryPeriod startDate | ||
| 237 | -# run keyword if condition is not none ${tender_enquiry_period_start_date} select from visible list by year of date ${tender_enquiry_period_start_date_input_locator} ${tender_enquiry_period_start_date} | ||
| 238 | - run keyword if condition is not none ${tender_enquiry_period_start_date} input datetime to visible input ${tender_enquiry_period_start_date_input_locator} ${tender_enquiry_period_start_date} | ||
| 239 | - ${tender_enquiry_period_end_date} = get from dictionary by keys ${data} enquiryPeriod endDate | ||
| 240 | -# run keyword if condition is not none ${tender_enquiry_period_start_date} select from visible list by year of date ${tender_enquiry_period_start_date_input_locator} ${tender_enquiry_period_start_date} | ||
| 241 | - run keyword if condition is not none ${tender_enquiry_period_end_date} input datetime to visible input ${tender_enquiry_period_end_date_input_locator} ${tender_enquiry_period_end_date} | ||
| 242 | - ${tender_start_date} = get from dictionary by keys ${data} tenderPeriod startDate | ||
| 243 | - run keyword if condition is not none ${tender_start_date} run keyword and ignore error input datetime to visible input ${tender_tender_period_start_date_input_locator} ${tender_start_date} | ||
| 244 | - ${tender_end_date} = get from dictionary by keys ${data} tenderPeriod endDate | ||
| 245 | - run keyword if condition is not none ${tender_end_date} input datetime to visible input ${tender_tender_period_end_date_input_locator} ${tender_end_date} | ||
| 246 | - ${date_start} = Get Current Date increment=03:00:00 | ||
| 247 | - run keyword if condition is none ${tender_end_date} input datetime to visible input ${tender_tender_period_end_date_input_locator} ${date_start} | ||
| 248 | - run keyword and ignore error click element ${tender_tender_quick_mode_locator} | ||
| 249 | - ${classification} = get from dictionary by keys ${data} classification | ||
| 250 | - run keyword if condition is not none ${classification} select classification by code attributes ${plan_form_classification_edit_btn_locator} ${classification} | ||
| 251 | - ${additional_classifications} = get from dictionary by keys ${data} additionalClassifications | ||
| 252 | - run keyword if condition is not none ${additional_classifications} select classification by array of code attributes ${plan_form_additional_classification_edit_btn_locator} ${additional_classifications} ${None} ${kekv_schemes} | ||
| 253 | - run keyword if condition is not none ${additional_classifications} select classification by array of code attributes ${plan_form_kekv_classification_edit_btn_locator} ${additional_classifications} ${kekv_schemes} | ||
| 254 | - ${funding_kind} = get from dictionary by keys ${data} fundingKind | ||
| 255 | - run keyword if condition is not none ${funding_kind} select from visible list by value ${tender_form_general_funding_kind_input_locator} ${funding_kind} | ||
| 256 | -#closeframework | ||
| 257 | - ${max_awards_count} = get from dictionary by keys ${data} maxAwardsCount | ||
| 258 | - run keyword if condition is not none ${max_awards_count} input text to exist visible input ${tender_form_general_max_awards_count_input_locator} ${max_awards_count} | ||
| 259 | - ${agreement_duration_years} = get from dictionary by keys ${data} agreementDuration | ||
| 260 | - ${agreement_duration_years1}= Run keyword If '${agreement_duration_years}' != '${None}' split_agreementDuration ${agreement_duration_years} year | ||
| 261 | - run keyword if condition is not none ${agreement_duration_years} select from visible list by value ${tender_form_general_agreement_duration_years_input_locator} ${agreement_duration_years1} | ||
| 262 | - ${agreement_duration_months} = get from dictionary by keys ${data} agreementDuration | ||
| 263 | - ${agreement_duration_months1}= Run keyword If '${agreement_duration_months}' != '${None}' split_agreementDuration ${agreement_duration_months} month | ||
| 264 | - run keyword if condition is not none ${agreement_duration_months} select from visible list by value ${tender_form_general_agreement_duration_months_input_locator} ${agreement_duration_months1} | ||
| 265 | - ${agreement_duration_days} = get from dictionary by keys ${data} agreementDuration | ||
| 266 | - ${agreement_duration_days1}= Run keyword If '${agreement_duration_days}' != '${None}' split_agreementDuration ${agreement_duration_years} day | ||
| 267 | - run keyword if condition is not none ${agreement_duration_days} select from visible list by value ${tender_form_general_agreement_duration_days_input_locator} ${agreement_duration_days1} | ||
| 268 | -#closeFrameworkAgreementSelectionUA | ||
| 269 | - ${max_awards_count} = get from dictionary by keys ${data} maxAwardsCount | ||
| 270 | - run keyword if condition is not none ${max_awards_count} input text to exist visible input ${tender_form_general_max_awards_count_input_locator} ${max_awards_count} | ||
| 271 | - ${agreement_duration_years} = get from dictionary by keys ${data} agreementDuration | ||
| 272 | - ${agreement_duration_years1}= Run keyword If '${agreement_duration_years}' != '${None}' split_agreementDuration ${agreement_duration_years} year | ||
| 273 | - run keyword if condition is not none ${agreement_duration_years} select from visible list by value ${tender_form_general_agreement_duration_years_input_locator} ${agreement_duration_years1} | ||
| 274 | - ${agreement_duration_months} = get from dictionary by keys ${data} agreementDuration | ||
| 275 | - ${agreement_duration_months1}= Run keyword If '${agreement_duration_months}' != '${None}' split_agreementDuration ${agreement_duration_months} month | ||
| 276 | - run keyword if condition is not none ${agreement_duration_months} select from visible list by value ${tender_form_general_agreement_duration_months_input_locator} ${agreement_duration_months1} | ||
| 277 | - ${agreement_duration_days} = get from dictionary by keys ${data} agreementDuration | ||
| 278 | - ${agreement_duration_days1}= Run keyword If '${agreement_duration_days}' != '${None}' split_agreementDuration ${agreement_duration_years} day | ||
| 279 | - run keyword if condition is not none ${agreement_duration_days} select from visible list by value ${tender_form_general_agreement_duration_days_input_locator} ${agreement_duration_days1} | ||
| 280 | - submit current visible popup | ||
| 281 | - | ||
| 282 | -fill tender form items | ||
| 283 | - [Arguments] ${item_attributes_array} | ||
| 284 | - [Documentation] заповнення номенклатури тендеру | ||
| 285 | - | ||
| 286 | - :FOR ${item_attributes} IN @{item_attributes_array} | ||
| 287 | - \ run keyword and ignore error open popup by btn locator ${tender_form_item_add_edit_btn_locator} | ||
| 288 | -# \ wait until popup is visible | ||
| 289 | - \ fill tender item form in opened popup ${item_attributes} | ||
| 290 | - \ submit current visible popup | ||
| 291 | - \ ${features} = get from dictionary by keys ${item_attributes} features | ||
| 292 | - \ run keyword if condition is not none ${features} fill tender form features ${features} ${tender_form_item_panel_add_feature_btn_locator} | ||
| 293 | - | ||
| 294 | -fill tender form items 2 stage | ||
| 295 | - [Arguments] ${item_attributes_array} | ||
| 296 | - [Documentation] заповнення номенклатури тендеру | ||
| 297 | - | ||
| 298 | - :FOR ${item_attributes} IN @{item_attributes_array} | ||
| 299 | - \ run keyword and ignore error open popup by btn locator ${tender_form_item_edit_btn_locator} | ||
| 300 | -# \ wait until popup is visible | ||
| 301 | - \ fill tender item form in opened popup ${item_attributes} | ||
| 302 | - \ submit current visible popup | ||
| 303 | - \ ${features} = get from dictionary by keys ${item_attributes} features | ||
| 304 | - \ run keyword if condition is not none ${features} fill tender form features ${features} ${tender_form_item_panel_add_feature_btn_locator} | ||
| 305 | - | ||
| 306 | -fill tender item form in opened popup | ||
| 307 | - [Arguments] ${data} | ||
| 308 | - [Documentation] заповнює відкриту форму згідно вказаних даних | ||
| 309 | - | ||
| 310 | - fill item form in opened popup ${data} | ||
| 311 | - | ||
| 312 | - ${region} = get from dictionary by keys ${data} deliveryAddress region | ||
| 313 | - run keyword if condition is not none ${region} select from visible list by label ${item_form_popup_delivery_region_id_input_locator} ${region} | ||
| 314 | - ${postal_code} = get from dictionary by keys ${data} deliveryAddress postalCode | ||
| 315 | - run keyword if condition is not none ${postal_code} input text to visible input ${item_form_popup_delivery_postal_code_input_locator} ${postal_code} | ||
| 316 | - ${locality} = get from dictionary by keys ${data} deliveryAddress locality | ||
| 317 | - run keyword if condition is not none ${locality} input text to visible input ${item_form_popup_delivery_locality_input_locator} ${locality} | ||
| 318 | - ${street_address} = get from dictionary by keys ${data} deliveryAddress streetAddress | ||
| 319 | - run keyword if condition is not none ${street_address} input text to visible input ${item_form_popup_delivery_street_address_input_locator} ${street_address} | ||
| 320 | - ${delivery_start_date} = get from dictionary by keys ${data} deliveryDate startDate | ||
| 321 | - ${delivery_start_date} = Run keyword If '${delivery_start_date}' != '${None}' parse_deliveryPeriod_date ${delivery_start_date} | ||
| 322 | - run keyword if condition is not none ${delivery_start_date} run keyword and ignore error input datetime to exist visible input ${item_form_popup_delivery_start_date_input_locator} ${delivery_start_date} | ||
| 323 | - ${delivery_end_date} = get from dictionary by keys ${data} deliveryDate endDate | ||
| 324 | - ${delivery_end_date} = Run keyword If '${delivery_end_date}' != '${None}' parse_deliveryPeriod_date ${delivery_end_date} | ||
| 325 | - run keyword if condition is not none ${delivery_end_date} run keyword and ignore error input text ${item_form_popup_delivery_end_date_input_locator} ${delivery_end_date} | ||
| 326 | -## run keyword if condition is not none ${delivery_end_date} run keyword and ignore error input datetime to exist visible input ${item_form_popup_delivery_end_date_input_locator} ${delivery_end_date} | ||
| 327 | - | ||
| 328 | -fill tender form milestones | ||
| 329 | - [Arguments] ${milestone_attributes_array} | ||
| 330 | - [Documentation] заповнення умов оплати тендеру | ||
| 331 | - | ||
| 332 | - open popup by btn locator ${tender_form_milestones_panel_edit_btn_locator} | ||
| 333 | -# click visible element ${tender_form_milestones_panel_edit_btn_locator} | ||
| 334 | -# wait until popup is visible | ||
| 335 | - :FOR ${milestone_attributes} IN @{milestone_attributes_array} | ||
| 336 | - \ click visible element ${milestone_form_popup_add_btn_locator} | ||
| 337 | - \ wait until page does not contain element ${popup_dynamic_form_loading_element_locator} | ||
| 338 | - \ fill milestone form in opened popup ${milestone_attributes} | ||
| 339 | - submit current visible popup | ||
| 340 | - | ||
| 341 | -fill tender form milestones fake | ||
| 342 | - [Documentation] заповнення умов оплати тендеру | ||
| 343 | - | ||
| 344 | - open popup by btn locator ${tender_form_milestones_panel_edit_btn_locator} | ||
| 345 | - click visible element ${milestone_form_popup_add_btn_locator} | ||
| 346 | - wait until page does not contain element ${popup_dynamic_form_loading_element_locator} | ||
| 347 | - select from visible list by value ${milestone_form_popup_title_input_locator} submissionDateOfApplications | ||
| 348 | - input text to exist visible input ${milestone_form_popup_description_input_locator} submissionDateOfApplications | ||
| 349 | - input text to exist visible input ${milestone_form_popup_percentage_input_locator} 100 | ||
| 350 | - select from visible list by value ${milestone_form_popup_code_input_locator} postpayment | ||
| 351 | - input text to exist visible input ${milestone_form_popup_duration_days_input_locator} 145 | ||
| 352 | - select from visible list by value ${milestone_form_popup_duration_type_input_locator} working | ||
| 353 | - submit current visible popup | ||
| 354 | - | ||
| 355 | -fill milestone form in opened popup | ||
| 356 | - [Arguments] ${data} | ||
| 357 | - [Documentation] заповнює відкриту форму в активній вкладці згідно вказаних даних | ||
| 358 | - | ||
| 359 | - ${title} = get from dictionary by keys ${data} title | ||
| 360 | - run keyword if condition is not none ${title} select from visible list by value ${milestone_form_popup_title_input_locator} ${title} | ||
| 361 | - ${description} = get from dictionary by keys ${data} description | ||
| 362 | - run keyword if condition is not none ${description} input text to exist visible input ${milestone_form_popup_description_input_locator} ${description} | ||
| 363 | - ${percentage} = get from dictionary by keys ${data} percentage | ||
| 364 | - run keyword if condition is not none ${percentage} input text to exist visible input ${milestone_form_popup_percentage_input_locator} ${percentage} | ||
| 365 | - ${code} = get from dictionary by keys ${data} code | ||
| 366 | - run keyword if condition is not none ${code} select from visible list by value ${milestone_form_popup_code_input_locator} ${code} | ||
| 367 | - ${duration_days} = get from dictionary by keys ${data} duration days | ||
| 368 | - run keyword if condition is not none ${duration_days} input text to exist visible input ${milestone_form_popup_duration_days_input_locator} ${duration_days} | ||
| 369 | - ${duration_type} = get from dictionary by keys ${data} duration type | ||
| 370 | - run keyword if condition is not none ${duration_type} select from visible list by value ${milestone_form_popup_duration_type_input_locator} ${duration_type} | ||
| 371 | - | ||
| 372 | -fill tender form features | ||
| 373 | - [Arguments] ${feature_attributes_array} ${add_btn_locator} | ||
| 374 | - [Documentation] заповнення нецінові крітерії тендеру | ||
| 375 | - | ||
| 376 | - open popup by btn locator ${add_btn_locator} | ||
| 377 | -# click visible element ${add_btn_locator} | ||
| 378 | -# wait until popup is visible | ||
| 379 | - :FOR ${feature_attributes} IN @{feature_attributes_array} | ||
| 380 | -# \ click visible element ${tender_form_features_panel_edit_btn_locator} | ||
| 381 | - \ execute javascript ${tender_form_features_panel_edit_btn_locator} | ||
| 382 | - \ wait until page does not contain element ${popup_dynamic_form_loading_element_locator} | ||
| 383 | - \ fill feature form in opened popup ${feature_attributes} | ||
| 384 | - submit current visible popup | ||
| 385 | - | ||
| 386 | -fill tender form features2 | ||
| 387 | - [Arguments] ${feature_attributes_array} ${add_btn_locator} | ||
| 388 | - [Documentation] заповнення нецінові крітерії тендеру | ||
| 389 | - | ||
| 390 | - open popup by btn locator ${add_btn_locator} | ||
| 391 | -# click visible element ${add_btn_locator} | ||
| 392 | -# wait until popup is visible | ||
| 393 | - click visible element ${tender_form_features_panel_edit_btn_locator} | ||
| 394 | - wait until page does not contain element ${popup_dynamic_form_loading_element_locator} | ||
| 395 | - fill feature form in opened popup ${feature_attributes_array} | ||
| 396 | - submit current visible popup | ||
| 397 | - | ||
| 398 | -fill feature form in opened popup | ||
| 399 | - [Arguments] ${data} | ||
| 400 | - [Documentation] заповнює відкриту форму в активній вкладці згідно вказаних даних | ||
| 401 | - | ||
| 402 | - ${title} = get from dictionary by keys ${data} title | ||
| 403 | - run keyword if condition is not none ${title} input text to exist visible input ${feature_form_popup_title_input_locator} ${title} | ||
| 404 | - ${description} = get from dictionary by keys ${data} description | ||
| 405 | - run keyword if condition is not none ${description} input text to exist visible input ${feature_form_popup_description_input_locator} ${description} | ||
| 406 | - ${title_en} = get from dictionary by keys ${data} title_en | ||
| 407 | - run keyword if condition is not none ${title_en} input text to exist visible input ${feature_form_popup_title_en_input_locator} ${title_en} | ||
| 408 | - ${description_en} = get from dictionary by keys ${data} description | ||
| 409 | - run keyword if condition is not none ${description_en} input text to exist visible input ${feature_form_popup_description_en_input_locator} ${description_en} | ||
| 410 | - ${options} = Get From Dictionary ${data} enum | ||
| 411 | - ${count} = Get Length ${options} | ||
| 412 | - ${ex}= Evaluate ${count} - 1 | ||
| 413 | - : FOR ${INDEX} IN RANGE 0 ${count} | ||
| 414 | - \ run keyword if condition is not none ${options[${INDEX}].title} input text to exist visible input ${feature_form_popup_enum_title_input_locator} ${options[${INDEX}].title} | ||
| 415 | - \ run keyword and ignore error input text to exist visible input ${feature_form_popup_enum_title_en_input_locator} test2 | ||
| 416 | -# \ run keyword if condition is not none ${options[${INDEX}].title_en} input text to exist visible input ${feature_form_popup_enum_title_en_input_locator} ${options[${INDEX}].title_en} | ||
| 417 | - \ ${value} = convert_float_to_string ${options[${INDEX}].value} | ||
| 418 | - \ ${value} = Convert To Number ${value} | ||
| 419 | - \ ${value} = multiply_hundred ${value} | ||
| 420 | - \ ${value} = convert_float_to_string ${value} | ||
| 421 | - \ run keyword if condition is not none ${options[${INDEX}].value} input text to exist visible input ${feature_form_popup_enum_value_input_locator} ${value} | ||
| 422 | - \ Continue For Loop If '${INDEX}' == '${ex}' | ||
| 423 | - \ Run Keyword If ${count} != 1 click visible element ${feature_form_popup_add-enums_btn_locator} | ||
| 424 | - \ wait until page does not contain element ${popup_dynamic_form_loading_element_locator} | ||
| 425 | - | ||
| 426 | -fill tender form lots | ||
| 427 | - [Arguments] ${lot_attributes_array} | ||
| 428 | - [Documentation] заповнення номенклатури тендеру | ||
| 429 | - | ||
| 430 | - ##### BOF - TMP for negotiation milestone 1 lot##### | ||
| 431 | - ${prepared_tender_data} = Get From Dictionary ${td_railway_crutch} data | ||
| 432 | - ${milestones1} = Run Keyword If "${mode}" in "negotiation" Get From Dictionary ${prepared_tender_data} milestones | ||
| 433 | - ##### EOF - TMP ##### | ||
| 434 | - :FOR ${lot_attributes} IN @{lot_attributes_array} | ||
| 435 | - \ run keyword if '${mode}' not in 'open_framework' open popup by btn locator ${tender_form_lots_panel_edit_btn_locator} | ||
| 436 | - \ ... ELSE click visible element ${tender_form_lots_edit_lot1_btn_locator} | ||
| 437 | -# \ open popup by btn locator ${tender_form_lots_panel_edit_btn_locator} | ||
| 438 | -# \ click visible element ${tender_form_lots_panel_edit_btn_locator} | ||
| 439 | -# \ wait until popup is visible | ||
| 440 | - \ fill lot form in opened popup ${lot_attributes} | ||
| 441 | - \ submit current visible popup | ||
| 442 | - \ ${features} = get from dictionary by keys ${lot_attributes} features | ||
| 443 | - \ run keyword if condition is not none ${features} fill tender form features ${features} ${tender_form_lot_panel_add_feature_btn_locator} | ||
| 444 | - \ ${milestones} = get from dictionary by keys ${lot_attributes} milestones | ||
| 445 | - \ run keyword if condition is not none ${milestones} fill tender form milestones ${milestones} | ||
| 446 | - \ run keyword if condition is none ${milestones} run keyword if "${mode}" in "negotiation" fill tender form milestones ${milestones1} | ||
| 447 | - \ ${items} = get from dictionary by keys ${lot_attributes} items | ||
| 448 | - \ run keyword if condition is not none ${items} fill tender form items ${items} | ||
| 449 | - | ||
| 450 | -fill tender form lots 2 stage | ||
| 451 | - [Arguments] ${lot_attributes_array} | ||
| 452 | - [Documentation] заповнення номенклатури тендеру | ||
| 453 | - | ||
| 454 | - ##### BOF - TMP for negotiation milestone 1 lot##### | ||
| 455 | - ${prepared_tender_data} = Get From Dictionary ${td_railway_crutch} data | ||
| 456 | - ${milestones1} = Run Keyword If "${mode}" in "negotiation" Get From Dictionary ${prepared_tender_data} milestones | ||
| 457 | - ##### EOF - TMP ##### | ||
| 458 | - :FOR ${lot_attributes} IN @{lot_attributes_array} | ||
| 459 | - \ open popup by btn locator ${tender_form_lots_edit_lot1_btn_locator} | ||
| 460 | - ##\ open popup by btn locator ${tender_form_lots_panel_edit_btn_locator} | ||
| 461 | - \ fill lot form in opened popup ${lot_attributes} | ||
| 462 | - \ submit current visible popup | ||
| 463 | - \ ${features} = get from dictionary by keys ${lot_attributes} features | ||
| 464 | - \ run keyword if condition is not none ${features} fill tender form features ${features} ${tender_form_lot_panel_add_feature_btn_locator} | ||
| 465 | - \ ${milestones} = get from dictionary by keys ${lot_attributes} milestones | ||
| 466 | - \ run keyword if condition is not none ${milestones} fill tender form milestones ${milestones} | ||
| 467 | - \ run keyword if condition is none ${milestones} run keyword if "${mode}" in "negotiation" fill tender form milestones ${milestones1} | ||
| 468 | - \ run keyword if condition is none ${milestones} run keyword if "${mode}" in "framework_selection" fill tender form milestones fake | ||
| 469 | - \ ${items} = get from dictionary by keys ${lot_attributes} items | ||
| 470 | - \ run keyword if condition is not none ${items} fill tender form items 2 stage ${items} | ||
| 471 | - | ||
| 472 | -fill lot form in opened popup | ||
| 473 | - [Arguments] ${data} | ||
| 474 | - [Documentation] заповнює відкриту форму згідно вказаних даних | ||
| 475 | - | ||
| 476 | - log many ${data} | ||
| 477 | - ${title} = get from dictionary by keys ${data} title | ||
| 478 | - run keyword if condition is not none ${title} input text to visible input ${lot_form_popup_title_input_locator} ${title} | ||
| 479 | - ${title_en} = get from dictionary by keys ${data} title_en | ||
| 480 | - run keyword if condition is not none ${title_en} input text to exist visible input ${lot_form_popup_title_en_input_locator} ${title_en} | ||
| 481 | - ${description} = get from dictionary by keys ${data} description | ||
| 482 | - run keyword if condition is not none ${description} input text to visible input ${lot_form_popup_description_input_locator} ${description} | ||
| 483 | - ${description_en} = get from dictionary by keys ${data} description_en | ||
| 484 | - run keyword if condition is not none ${description_en} input text to exist visible input ${lot_form_popup_description_en_input_locator} ${description_en} | ||
| 485 | - capture page screenshot | ||
| 486 | - ${description_ru} = get from dictionary by keys ${data} description_ru | ||
| 487 | - run keyword if condition is not none ${description_ru} input text to exist visible input ${item_form_popup_description_ru_input_locator} ${description_ru} | ||
| 488 | - ${amount} = get from dictionary by keys ${data} value amount | ||
| 489 | - run keyword if condition is not none ${amount} input number to exist visible input ${lot_form_popup_value_amount_input_locator} ${amount} | ||
| 490 | - ${min_step_amount} = get from dictionary by keys ${data} minimalStep amount | ||
| 491 | - run keyword if condition is not none ${min_step_amount} input number to exist visible input ${lot_form_popup_minimalstep_amount_input_locator} ${min_step_amount} | ||
| 492 | - | ||
| 493 | - ${yearly_payments_percentage_range} = get from dictionary by keys ${data} yearlyPaymentsPercentageRange | ||
| 494 | - ${yearly_payments_percentage_range} = Run keyword If '${yearly_payments_percentage_range}' != '${None}' set_value_minimalStepPercentage ${yearly_payments_percentage_range} | ||
| 495 | - ${yearly_payments_percentage_range} = Run keyword If '${yearly_payments_percentage_range}' != '${None}' convert_esco__float_to_string ${yearly_payments_percentage_range} | ||
| 496 | - run keyword if condition is not none ${yearly_payments_percentage_range} input number to exist visible input ${tender_form_general_yearly_payments_percentage_range_input_locator} ${yearly_payments_percentage_range} | ||
| 497 | - ${minimal_step_percentage} = get from dictionary by keys ${data} minimalStepPercentage | ||
| 498 | - ${minimal_step_percentage} = Run keyword If '${minimal_step_percentage}' != '${None}' set_value_minimalStepPercentage ${minimal_step_percentage} | ||
| 499 | - ${minimal_step_percentage} = Run keyword If '${minimal_step_percentage}' != '${None}' convert_esco__float_to_string ${minimal_step_percentage} | ||
| 500 | - run keyword if condition is not none ${minimal_step_percentage} input number to exist visible input ${tender_form_general_minimal_step_percentage_input_locator} ${minimal_step_percentage} | ||
| 501 | -# ${currency} = get from dictionary by keys ${data} value currency | ||
| 502 | -# run keyword if condition is not none ${currency} select from visible list by value ${tender_form_lots_value_currency_input_locator} ${currency} | ||
| 503 | -# ${valueAddedTaxIncluded} = get from dictionary by keys ${data} value valueAddedTaxIncluded | ||
| 504 | -# run keyword if condition is not none ${valueAddedTaxIncluded} run keyword if ${valueAddedTaxIncluded} Click Element ${tender_form_lots_value_added_tax_input_locator} | ||
| 505 | - | ||
| 506 | -fill tender form funders | ||
| 507 | - [Arguments] ${funder_attributes_array} | ||
| 508 | - [Documentation] заповнення донорів тендеру | ||
| 509 | - | ||
| 510 | - :FOR ${funder_attributes} IN @{funder_attributes_array} | ||
| 511 | - \ ${name} = get from dictionary by keys ${funder_attributes} name | ||
| 512 | - \ run keyword if condition is not none ${name} select from visible list by label ${tender_form_general_tender_funder_name_locator} ${name} | ||
| 513 | - | ||
| 514 | -fill tender required documents | ||
| 515 | - [Documentation] додає документ до усієї закупівлі для успішної валідації форми | ||
| 516 | - | ||
| 517 | - ${file_path} ${file_name} ${file_content} = create_fake_doc | ||
| 518 | - click visible element ${tender_form_general_panel_add_document_btn_locator} | ||
| 519 | - choose file ${add_file_to_form_locator} ${file_path} | ||
| 520 | - wait until page does not contain element ${popup_dynamic_form_loading_element_locator} | ||
| 521 | - submit current visible popup | ||
| 522 | - | ||
| 523 | -fill tender from award reporting | ||
| 524 | - [Arguments] ${budget} ${award_attributes_array} | ||
| 525 | - [Documentation] заповнення переможця reporting тендеру | ||
| 526 | - | ||
| 527 | - capture page screenshot | ||
| 528 | - run keyword and ignore error click visible element ${tender_form_general_panel_update_award_negotiation_btn_locator} | ||
| 529 | - capture page screenshot | ||
| 530 | -# Run Keyword If "${TEST_NAME}" == "Можливість створити переговорну процедуру" open popup by btn locator ${tender_form_general_panel_add_award_negotiation_btn_locator} | ||
| 531 | - run keyword and ignore error Run Keyword If "${TEST_NAME}" == "Можливість створити переговорну процедуру" open popup by btn locator ${tender_form_general_panel_add_award_negotiation_btn_locator} | ||
| 532 | - ... ELSE IF "${TEST_NAME}" == "Можливість створити звіт про укладений договір" open popup by btn locator ${tender_form_general_panel_update_award_reporting_btn_locator} | ||
| 533 | - capture page screenshot | ||
| 534 | - Run Keyword If "${TEST_NAME}" == "Можливість зареєструвати і підтвердити постачальника до звіту про укладений договір" open popup by btn locator ${tender_form_general_panel_update_award_reporting_btn_locator} | ||
| 535 | - capture page screenshot | ||
| 536 | -# Run Keyword If "${TEST_NAME}" == "Можливість зареєструвати і підтвердити постачальника до переговорної процедури" open popup by btn locator ${tender_form_general_panel_update_award_negotiation_btn_locator} | ||
| 537 | - capture page screenshot | ||
| 538 | - fill award reporting form in opened popup ${budget} ${award_attributes_array} | ||
| 539 | - submit current visible popup | ||
| 540 | - | ||
| 541 | -fill award reporting form in opened popup | ||
| 542 | - [Arguments] ${budget} ${data} | ||
| 543 | - [Documentation] заповнює відкриту форму в активній вкладці згідно вказаних даних | ||
| 544 | - | ||
| 545 | - ${org_name} = get from dictionary by keys ${data} identifier legalName | ||
| 546 | - run keyword if condition is not none ${org_name} input text to exist visible input ${tender_form_award_organization_name_locator} ${org_name} | ||
| 547 | - ${organization_identifier_code} = get from dictionary by keys ${data} identifier id | ||
| 548 | - run keyword if condition is not none ${organization_identifier_code} input text to exist visible input ${tender_form_award_organization_identifier_code_locator} ${organization_identifier_code} | ||
| 549 | - ${award_organization_scale} = get from dictionary by keys ${data} scale | ||
| 550 | - run keyword if condition is not none ${award_organization_scale} select from visible list by value ${tender_form_award_organization_scale_locator} ${award_organization_scale} | ||
| 551 | - ${region} = get from dictionary by keys ${data} address region | ||
| 552 | - run keyword if condition is not none ${region} select from visible list by label ${tender_form_award_organization_region_id_locator} ${region} | ||
| 553 | - ${postal_code} = get from dictionary by keys ${data} address postalCode | ||
| 554 | - run keyword if condition is not none ${postal_code} input text to exist visible input ${tender_form_award_organization_postal_code_locator} ${postal_code} | ||
| 555 | - ${locality} = get from dictionary by keys ${data} address locality | ||
| 556 | - run keyword if condition is not none ${locality} input text to exist visible input ${tender_form_award_organization_locality_locator} ${locality} | ||
| 557 | - ${street_address} = get from dictionary by keys ${data} address streetAddress | ||
| 558 | - run keyword if condition is not none ${street_address} input text to exist visible input ${tender_form_award_organization_street_address_locator} ${street_address} | ||
| 559 | - ${contact_point_name} = get from dictionary by keys ${data} contactPoint name | ||
| 560 | - run keyword if condition is not none ${contact_point_name} input text to exist visible input ${tender_form_award_organization_contact_point_name_locator} ${contact_point_name} | ||
| 561 | - ${contact_point_email} = get from dictionary by keys ${data} contactPoint email | ||
| 562 | - run keyword if condition is not none ${contact_point_email} input text to exist visible input ${tender_form_award_organization_contact_point_email_locator} ${contact_point_email} | ||
| 563 | - ${contact_point_phone} = get from dictionary by keys ${data} contactPoint telephone | ||
| 564 | - run keyword if condition is not none ${contact_point_phone} input text to exist visible input ${tender_form_award_organization_contact_point_phone_locator} ${contact_point_phone} | ||
| 565 | -# ${duration_days} = get from dictionary by keys ${data} contactPoint days | ||
| 566 | -# run keyword if condition is not none ${duration_days} input text to exist visible input ${milestone_form_popup_duration_days_input_locator} ${duration_days} | ||
| 567 | - input number to exist visible input ${tender_form_award_budget_locator} ${budget} | ||
| 568 | - | ||
| 569 | -open tender search form | ||
| 570 | - [Documentation] відкриває сторінку з пошуком тендерів | ||
| 571 | - | ||
| 572 | - open page and wait element by locator ${broker_baseurl}/tenders ${tender_search_form_locator} | ||
| 573 | - | ||
| 574 | -save tender form and wait synchronization | ||
| 575 | - [Documentation] натискає кнопку "Зберегти" і чекає синхронізації тендеру | ||
| 576 | - | ||
| 577 | - submit form and check result ${tender_form_submit_btn_locator} ${tender_form_submit_success_msg} ${tender_created_checker_element_locator} ${true} | ||
| 578 | - wait until page does not contain element with reloading ${tender_sync_element_locator} | ||
| 579 | - | ||
| 580 | -add document in tender | ||
| 581 | - [Arguments] ${filepath} | ||
| 582 | - [Documentation] Завантажити документ, який знаходиться по шляху filepath. | ||
| 583 | - | ||
| 584 | - click visible element ${tender_form_general_panel_edit_add_document_btn_locator} | ||
| 585 | - choose file ${add_file_to_form_locator} ${filepath} | ||
| 586 | - wait until page does not contain element ${popup_dynamic_form_loading_element_locator} | ||
| 587 | - submit current visible popup | ||
| 588 | - | ||
| 589 | -add document in lot | ||
| 590 | - [Arguments] ${filepath} ${lot_id} | ||
| 591 | - [Documentation] Завантажити в лот (з ідентіфікатором ${lot_id}) документ, який знаходиться по шляху filepath. | ||
| 592 | - | ||
| 593 | - ${open_form_add_doc_lot_btn_locator} = replace string ${tender_form_lot_panel_add_document_btn_locator_tpl} %lot_id% ${lot_id} | ||
| 594 | - click visible element and wait until page contains element ${open_form_add_doc_lot_btn_locator} jquery=.modal.modal-form.js-form-popup.fancybox-content | ||
| 595 | - choose file ${add_file_to_form_locator} ${filepath} | ||
| 596 | - wait until page does not contain element ${popup_dynamic_form_loading_element_locator} | ||
| 597 | - submit current visible popup | ||
| 598 | - | ||
| 599 | -confirm-stage2 | ||
| 600 | - [Documentation] Перевести тендер tender_uaid в статус active.stage2.waiting. | ||
| 601 | - | ||
| 602 | - Wait Until Keyword Succeeds 300 s 20 s Wait For stage2button | ||
| 603 | - click visible element ${tender_stage2_open_btn_locator} | ||
| 604 | - Wait Until Page Contains ${tender_stage2_submit_success_msg} 60 | ||
| 605 | -# click visible element ${tender_stage2_submit_success_btn_locator} | ||
| 606 | -# submit form and check result ${tender_stage2_submit_success_btn_locator} ${tender_stage2_submit_alert_success_msg} ${tender_created_checker_element_locator} | ||
| 607 | - execute javascript ${tender_stage2_submit_js_success_btn_locator} | ||
| 608 | - Wait Until Page Contains ${tender_stage2_submit_alert_success_msg} 60 | ||
| 609 | - wait until alert is visible ${tender_stage2_submit_alert_success_msg} | ||
| 610 | - run keyword and ignore error close current visible alert | ||
| 611 | - | ||
| 612 | - | ||
| 613 | -activate stage 2 | ||
| 614 | - [Documentation] Перевести тендер tender_uaid в статус active.tendering. | ||
| 615 | - | ||
| 616 | - open popup by btn locator ${tender_form_general_panel_edit_btn_locator} | ||
| 617 | - ${tender_end_date} = Get Current Date increment=00:35:00 | ||
| 618 | - input datetime to visible input ${tender_tender_period_end_date_input_locator} ${tender_end_date} | ||
| 619 | - capture page screenshot | ||
| 620 | - click visible element ${tender_form_general_panel_draft_mode_input_locator} | ||
| 621 | - capture page screenshot | ||
| 622 | - submit current visible popup | ||
| 623 | - capture page screenshot | ||
| 624 | - ${file_path} ${file_name} ${file_content} = create_fake_doc | ||
| 625 | - click visible element ${tender_form_general_panel_document_stage2_input_locator} | ||
| 626 | - choose file ${add_file_to_form_locator} ${file_path} | ||
| 627 | - wait until element is visible ${stage2_form_add_document_type_input_locator} | ||
| 628 | - click visible element ${stage2_form_add_document_description_btn_locator} | ||
| 629 | - capture page screenshot | ||
| 630 | - wait until element is visible ${stage2_form_add_document_description_input_locator} | ||
| 631 | - input text to exist visible input ${stage2_form_add_document_description_input_locator} test2 | ||
| 632 | - click visible element ${stage2_form_add_document_close_description_btn_locator} | ||
| 633 | - capture page screenshot | ||
| 634 | - submit current visible popup | ||
| 635 | - capture page screenshot | ||
| 636 | - | ||
| 637 | -fix awards data in global Users variable | ||
| 638 | - [Arguments] ${username} | ||
| 639 | - [Documentation] Фікс для помилки "Resolving variable '${award.value.amount}' failed: AttributeError: value" | ||
| 640 | - | ||
| 641 | - :FOR ${user} IN @{USERS} | ||
| 642 | - \ continue for loop if '${user}' == '${username}' | ||
| 643 | - \ ${is_user_has_data} = run keyword and return status dictionary should contain key ${USERS.users} ${user} | ||
| 644 | - \ continue for loop if ${is_user_has_data} == ${False} | ||
| 645 | - \ ${user_data} = set variable ${USERS.users['${user}']} | ||
| 646 | - \ ${is_user_has_tender_data} = run keyword and return status dictionary should contain key ${user_data} tender_data | ||
| 647 | - \ continue for loop if ${is_user_has_tender_data} == ${False} | ||
| 648 | - \ ${status} ${award_data} = run keyword and ignore error get_from_object ${USERS.users['${user}'].tender_data.data} awards | ||
| 649 | - \ continue for loop if '${status}' != 'PASS' | ||
| 650 | - \ set to object ${USERS.users['${username}'].tender_data.data} awards ${award_data} | ||
| 651 | - \ exit for loop | ||
| 652 | - | ||
| 653 | -fill tender contact person | ||
| 654 | - [Arguments] ${data} | ||
| 655 | - [Documentation] заповнює відкриту форму згідно вказаних даних | ||
| 656 | - run keyword and ignore error open popup by btn locator ${tender_form_cp_edit_btn_locator} | ||
| 657 | - ${organization_name_en} = get from dictionary by keys ${data} procuringEntity name_en | ||
| 658 | - run keyword if condition is not none ${organization_name_en} input text to visible input ${tender_form_organization_name_en_input_locator} ${organization_name_en} | ||
| 659 | - ${contact_point_name_en} = get from dictionary by keys ${data} procuringEntity contactPoint name_en | ||
| 660 | - run keyword if condition is not none ${contact_point_name_en} input text to visible input ${tender_form_contact_point_name_en_input_locator} ${contact_point_name_en} | ||
| 661 | - submit current visible popup |
playtender_variables.robot
deleted
100644 → 0
| 1 | -*** Variables *** | ||
| 2 | - | ||
| 3 | -${kekv_schemes} = ["KEKV", "КЕКВ"] | ||
| 4 | -${site_allowed_schemes} = ["ДК021", "ДК015", "ДК018", "ДК003", "specialNorms", "INN", "ATC"] | ||
| 5 | -${page_content_locator} = jquery=.page__content | ||
| 6 | - | ||
| 7 | -# alerts | ||
| 8 | -${alert_opened_locator} = jquery=.jconfirm:last .content | ||
| 9 | -${alert_confirm_btn_locator} = jquery=.jconfirm:last .buttons .js-btn-confirm | ||
| 10 | -${alert_opened_close_btn_locator} = jquery=.jconfirm:last .closeIcon | ||
| 11 | -${alert_message_contains_text_locator_tpl} = jquery=.jconfirm:last .message:contains(%text%) | ||
| 12 | - | ||
| 13 | -# popups | ||
| 14 | -${popup_opened_last_locator} = jquery=.fancybox-is-open:last | ||
| 15 | -${popup_opened_last_submit_btn_locator} = jquery=.fancybox-is-open:last .fancybox-slide--current .modal-footer:last .js-submit,.fancybox-is-open:last .fancybox-slide--current .modal-footer:last .js-popup-submit | ||
| 16 | -${popup_opened_content_locator} = jquery=.fancybox-is-open .fancybox-slide--current .fancybox-content # for checking if it's visible | ||
| 17 | - | ||
| 18 | -# error pages | ||
| 19 | -${error_page_404_checker_element_locator} = jquery=.site-error[data-error-code="404"] | ||
| 20 | - | ||
| 21 | -# language | ||
| 22 | -${language_selector_active_element_locator} = jquery=.languages.page-header__languages .languages__btn | ||
| 23 | -${language_selector_active_element_code_attribute_name} = data-language-code | ||
| 24 | -${language_selector_open_element_locator} = jquery=.languages.page-header__languages .js-popup-open-initiator | ||
| 25 | -${language_selector_active_element_by_code_locator_tpl} = jquery=.languages.page-header__languages .languages__btn[data-language-code='%code%'] | ||
| 26 | -${language_selector_list_element_locator_tpl} = jquery=.languages.page-header__languages .popup.languages__menu .languages__link[data-language-code='%code%'] | ||
| 27 | - | ||
| 28 | -# classification popup | ||
| 29 | -${classification_popup_opened_content_locator} = jquery=.fancybox-is-open .fancybox-slide--current .fancybox-content.classification-modal # for checking if it's visible | ||
| 30 | -${classification_popup_scheme_tab_locator_tpl} = jquery=.fancybox-is-open .fancybox-slide--current .fancybox-content.classification-modal .nav a[data-toggle="tab"][data-scheme="%scheme%"] | ||
| 31 | -${classification_popup_search_input_locator} = jquery=.fancybox-is-open .fancybox-slide--current .fancybox-content.classification-modal .js-search-wrapper:visible .js-input | ||
| 32 | -${classification_popup_serach_item_locator_tpl} = jquery=.fancybox-is-open .fancybox-slide--current .fancybox-content.classification-modal .js-search-wrapper:visible .js-search-tree strong:contains(%code%) | ||
| 33 | - | ||
| 34 | -# authorization | ||
| 35 | -${login_popup_open_locator} = jquery=.page__header a[data-action="login"] | ||
| 36 | -${login_popup_login_input_locator} = id=loginform-identity | ||
| 37 | -#${login_popup_login_input_locator} = id=loginform-email | ||
| 38 | -${login_popup_password_input_locator} = id=loginform-password | ||
| 39 | -${login_popup_submit_btn_locator} = jquery=#login-form .js-submit-btn | ||
| 40 | -${user_logged_checker_element_locator} = id=notifications-button # елемент для перевірки чи авторизований користувач | ||
| 41 | - | ||
| 42 | -# item form | ||
| 43 | -${item_form_popup_description_input_locator} = jquery=.fancybox-is-open:last .fancybox-slide--current .fancybox-content [id$='-description'] | ||
| 44 | -${item_form_popup_description_ru_input_locator} = jquery=.fancybox-is-open:last .fancybox-slide--current .fancybox-content [id$='-description_ru'] | ||
| 45 | -${item_form_popup_description_en_input_locator} = jquery=.fancybox-is-open:last .fancybox-slide--current .fancybox-content [id$='-description_en'] | ||
| 46 | -${item_form_popup_quantity_input_locator} = jquery=.fancybox-is-open:last .fancybox-slide--current .fancybox-content [id$='-quantity'] | ||
| 47 | -${item_form_popup_unit_input_locator} = jquery=.fancybox-is-open:last .fancybox-slide--current .fancybox-content [id$='-unit_id'] | ||
| 48 | -${item_form_popup_classification_edit_btn_locator} = jquery=.fancybox-is-open:last .fancybox-slide--current .fancybox-content .js-classification-input-wrapper [data-toggle="classification"] | ||
| 49 | -${item_form_popup_additional_classification_edit_btn_locator} = jquery=.fancybox-is-open:last .fancybox-slide--current .fancybox-content .js-additional-classification-input-wrapper [data-toggle="additional-classification"] | ||
| 50 | -${item_form_popup_delivery_region_id_input_locator} = jquery=.fancybox-is-open:last .fancybox-slide--current .fancybox-content [id$='-delivery_region_id'] | ||
| 51 | -${item_form_popup_delivery_postal_code_input_locator} = jquery=.fancybox-is-open:last .fancybox-slide--current .fancybox-content [id$='-delivery_postal_code'] | ||
| 52 | -${item_form_popup_delivery_locality_input_locator} = jquery=.fancybox-is-open:last .fancybox-slide--current .fancybox-content [id$='-delivery_locality'] | ||
| 53 | -${item_form_popup_delivery_street_address_input_locator} = jquery=.fancybox-is-open:last .fancybox-slide--current .fancybox-content [id$='-delivery_street_address'] | ||
| 54 | -${item_form_popup_delivery_start_date_input_locator} = jquery=.fancybox-is-open:last .fancybox-slide--current .fancybox-content [id$='-delivery_start_date'] | ||
| 55 | -${item_form_popup_delivery_end_date_input_locator} = jquery=.fancybox-is-open:last .fancybox-slide--current .fancybox-content [id$='-delivery_end_date'] | ||
| 56 | - | ||
| 57 | -# buyer form | ||
| 58 | -${buyer_form_popup_legal_name_input_locator} = jquery=.fancybox-is-open:last .fancybox-slide--current .fancybox-content [id$='-procuring_entity_name'] | ||
| 59 | -${buyer_form_popup_identifier_id_input_locator} = jquery=.fancybox-is-open:last .fancybox-slide--current .fancybox-content [id$='-procuring_entity_identifier_code'] | ||
| 60 | - | ||
| 61 | -# tender form | ||
| 62 | -${tender_load_form_after_mode_locator} = jquery=#tender-form-pjax.loading-wrapper | ||
| 63 | -#${tender_form_submit_success_msg} = дочекайтеся опублікування на сайті уповноваженого органу | ||
| 64 | -${tender_form_submit_success_msg} = опублікування на сайті уповноваженого органу | ||
| 65 | -${tender_form_submit_reporting_success_msg} = Закупівля успішно створена, дочекайтесь закінчення синхронізації, після чого потрібно накласти ЕЦП/КЕП | ||
| 66 | -${tender_form_locator} = id=tender-form | ||
| 67 | -${tender_form_procurement_method_type_input_locator} = jquery=.form-inline [id$="form-procurement_method_type"] | ||
| 68 | -${tender_multilot_locator} = jquery=[id$="form-is_multilot"] | ||
| 69 | -${tender_form_general_panel_edit_btn_locator} = jquery=#General #headingGeneral .actions-wrapper .js-form-popup-update | ||
| 70 | -${tender_form_general_tender_plan_id_locator} = jquery=[id$="form-plan_id"] | ||
| 71 | -${tender_form_general_tender_title_locator} = jquery=[id$="form-title"] | ||
| 72 | -${tender_form_general_tender_title_en_locator} = jquery=[id$="form-title_en"] | ||
| 73 | -${tender_form_general_tender_description_locator} = jquery=[id$="form-description"] | ||
| 74 | -${tender_form_general_tender_description_en_locator} = jquery=[id$="form-description_en"] | ||
| 75 | -${tender_form_general_tender_funder_locator} = jquery=[id$="form-is_donor"] | ||
| 76 | -${tender_form_general_tender_funder_name_locator} = jquery=[id$="-funder_organization_id"] | ||
| 77 | -${tender_form_general_value_amount_input_locator} = jquery=[id$="form-value_amount-disp"] | ||
| 78 | -${tender_form_general_value_currency_input_locator} = jquery=[id$="form-value_currency"] | ||
| 79 | -${tender_form_general_value_added_tax_input_locator} = jquery=[id$="form-value_added_tax_included"] | ||
| 80 | -#${tender_form_general_minimalStep_amount_input_locator} = jquery=[id$="form-min_step_amount"] | ||
| 81 | -${tender_form_general_minimalStep_amount_input_locator} = jquery=[id$="form-min_step_amount-disp"] | ||
| 82 | -${tender_form_general_main_procurement_category_input_locator} = jquery=[id$="form-main_procurement_category"] | ||
| 83 | -${tender_enquiry_period_start_date_input_locator} = jquery=[id$="form-enquiry_period_start_date"] | ||
| 84 | -${tender_enquiry_period_end_date_input_locator} = jquery=[id$="form-enquiry_period_end_date"] | ||
| 85 | -${tender_tender_period_start_date_input_locator} = jquery=[id$="form-tender_period_start_date"] | ||
| 86 | -${tender_tender_period_end_date_input_locator} = jquery=[id$="form-tender_period_end_date"] | ||
| 87 | -${tender_tender_quick_mode_locator} = jquery=[id$="form-quick_mode"] | ||
| 88 | -${tender_cpv_form_submit_success_msg} = Вид предмету закупівлі не відповідає вказаному коду CPV | ||
| 89 | -${tender_cpv_submit_btn_locator} = jquery=.animated-content .js-btn-confirm | ||
| 90 | -${tender_cpv_js_submit_btn_locator} = $('.animated-content .js-btn-confirm').click() | ||
| 91 | - | ||
| 92 | -#esco | ||
| 93 | -${tender_form_general_funding_kind_input_locator} = id=tenderescoform-funding_kind | ||
| 94 | -${tender_form_general_nbu_discount_rate_input_locator} = id=tenderescoform-nbu_discount_rate | ||
| 95 | -${tender_form_general_minimal_step_percentage_input_locator} = jquery=[id$="-min_step_percentage"] | ||
| 96 | -${tender_form_general_yearly_payments_percentage_range_input_locator} = jquery=[id$="-yearly_payments_percentage_range"] | ||
| 97 | -#closeframework | ||
| 98 | -${tender_form_general_max_awards_count_input_locator} = jquery=[id$="form-max_awards_count"] | ||
| 99 | -${tender_form_general_agreement_duration_years_input_locator} = jquery=[id$="form-agreement_duration_years"] | ||
| 100 | -${tender_form_general_agreement_duration_months_input_locator} = jquery=[id$="form-agreement_duration_months"] | ||
| 101 | -${tender_form_general_agreement_duration_days_input_locator} = jquery=[id$="form-agreement_duration_days"] | ||
| 102 | -#closeFrameworkAgreementSelectionUA | ||
| 103 | -${tender_form_general_agreementid_input_locator} = jquery=[id$="form-agreement_id"] | ||
| 104 | -${tender_form_item_edit_btn_locator} = jquery=.form-group-popup-panel[data-attribute="items"]:last > .panel-collapse.collapse.in .panel-heading .js-form-popup-update:first | ||
| 105 | -#${tender_form_general_max_awards_count_input_locator} = jquery=[id$="form-max_awards_count"] | ||
| 106 | -#${tender_form_general_agreement_duration_years_input_locator} = jquery=[id$="form-agreement_duration_years"] | ||
| 107 | -#${tender_form_general_agreement_duration_months_input_locator} = jquery=[id$="form-agreement_duration_months"] | ||
| 108 | -#${tender_form_general_agreement_duration_days_input_locator} = jquery=[id$="form-agreement_duration_days"] | ||
| 109 | -#negotiation | ||
| 110 | -${tender_form_general_cause_input_locator} = jquery=[id$="form-cause"] | ||
| 111 | -${tender_form_general_cause_description_input_locator} = jquery=[id$="form-cause_description"] | ||
| 112 | -${tender_form_cp_edit_btn_locator} = jquery=[id="headingContactPoint"] a[data-url="#contactpoint-form-popup"] | ||
| 113 | -${tender_form_organization_name_en_input_locator} = jquery=[id*="organization_name_en"] | ||
| 114 | -${tender_form_contact_point_name_en_input_locator} = jquery=[id*="contact_point_name_en"] | ||
| 115 | - | ||
| 116 | -#Tests Files.Complaints | ||
| 117 | -${tender_form_auction_skip_mode_input_locator} = jquery=input[id$="form-auction_skip_mode"] | ||
| 118 | - | ||
| 119 | -${tender_form_general_panel_add_feature_btn_locator} = jquery=#collapseGeneral .btn[data-attribute="features"] | ||
| 120 | -${tender_form_features_panel_edit_btn_locator} = $('.fancybox-content [href$="#add-features"]').trigger("click") | ||
| 121 | -#${tender_form_features_panel_edit_btn_locator} = jquery=.fancybox-content [href$="#add-features"] | ||
| 122 | -${feature_form_popup_title_input_locator} = jquery=.fancybox-is-open .tab-content:first > .tab-pane.active:first [id$="-title"]:first | ||
| 123 | -${feature_form_popup_description_input_locator} = jquery=.fancybox-is-open .tab-content:first > .tab-pane.active:first [id$="-description"]:first | ||
| 124 | -${feature_form_popup_title_en_input_locator} = jquery=.fancybox-is-open .tab-content:first > .tab-pane.active:first [id$="-title_en"]:first | ||
| 125 | -${feature_form_popup_description_en_input_locator} = jquery=.fancybox-is-open .tab-content:first > .tab-pane.active:first [id$="-description_en"]:first | ||
| 126 | -${feature_form_popup_value_input_locator} = jquery=[id$="-value"] | ||
| 127 | -${feature_form_popup_add-enums_btn_locator} = jquery=.fancybox-is-open .enums-dynamic-forms-wrapper .btn-add a[href$="#add-enums"]:last | ||
| 128 | -${feature_form_popup_enum_title_input_locator} = jquery=.fancybox-is-open .enums-dynamic-forms-wrapper .tab-content:last > .tab-pane.active input[id$="-title"] | ||
| 129 | -${feature_form_popup_enum_title_en_input_locator} = jquery=.fancybox-is-open .enums-dynamic-forms-wrapper .tab-content:last > .tab-pane.active input[id$="-title_en"] | ||
| 130 | -${feature_form_popup_enum_value_input_locator} = jquery=.fancybox-is-open .enums-dynamic-forms-wrapper .tab-content:last > .tab-pane.active input[id$="-value"] | ||
| 131 | -#${feature_form_popup_enum_title_input_locator} = jquery=.fancybox-is-open .enums-dynamic-forms-wrapper .tab-content:first > .tab-pane.active input[id$="-title"] | ||
| 132 | -#${feature_form_popup_enum_title_en_input_locator} = jquery=.fancybox-is-open .enums-dynamic-forms-wrapper .tab-content:first > .tab-pane.active input[id$="-title_en"] | ||
| 133 | -#${feature_form_popup_enum_value_input_locator} = jquery=.fancybox-is-open .enums-dynamic-forms-wrapper .tab-content:first > .tab-pane.active input[id$="-value"] | ||
| 134 | - | ||
| 135 | -${tender_form_general_panel_add_document_btn_locator} = jquery=#collapseGeneral .btn[data-attribute="documents"] | ||
| 136 | -${tender_form_general_panel_edit_add_document_btn_locator} = jquery=div[data-form="general-form-popup"] .js-form-hidden-popup-panel:last a.btn-update | ||
| 137 | - | ||
| 138 | -#${tender_form_item_add_edit_btn_locator} = jquery=.js-form-group-popup-panel .panel-heading .actions-wrapper .js-form-popup-add | ||
| 139 | -#последняя кнопка “Додати” для номенклатуры (для лотовой и безлотовой и репортинг) | ||
| 140 | -${tender_form_item_add_edit_btn_locator} = jquery=.form-group-popup-panel[data-attribute="items"]:last > .panel-heading .js-form-popup-add | ||
| 141 | -${tender_form_item_panel_add_feature_btn_locator} = jquery=.form-group-popup-panel[data-attribute="items"]:last .js-form-popup-panel-list:first > .js-form-popup-panel-item:last .actions-wrapper .btn[data-attribute="features"] | ||
| 142 | -${tender_form_item_add_feature_btn_locator} = jquery=.form-group-popup-panel[data-attribute="items"]:last .js-form-popup-panel-list:first > .js-form-popup-panel-item:last .js-form-popup-panel[data-attribute="features"] .actions-wrapper .btn.js-form-popup-update | ||
| 143 | -${tender_form_item_edit_btn_locator} = jquery=.form-group-popup-panel[data-attribute="items"]:last > .panel-heading .js-form-popup-add | ||
| 144 | - | ||
| 145 | -#${tender_form_milestones_panel_edit_btn_locator} = jquery=[data-url$="#milestones-form-popup"] | ||
| 146 | -${tender_form_milestones_panel_edit_btn_locator} = jquery=.form-popup-panel[data-attribute="milestones"]:last > .panel-heading .js-form-popup-update | ||
| 147 | -${milestone_form_popup_add_btn_locator} = jquery=.fancybox-is-open [href$="#add-milestones"] | ||
| 148 | -${milestone_form_popup_title_input_locator} = jquery=.fancybox-is-open:last .tab-content:first > .tab-pane.active:first [id$="-title"] | ||
| 149 | -${milestone_form_popup_description_input_locator} = jquery=.fancybox-is-open:last .tab-content:first > .tab-pane.active:first [id$="-description"] | ||
| 150 | -${milestone_form_popup_percentage_input_locator} = jquery=.fancybox-is-open:last .tab-content:first > .tab-pane.active:first [id$="-percentage"] | ||
| 151 | -${milestone_form_popup_code_input_locator} = jquery=.fancybox-is-open:last .tab-content:first > .tab-pane.active:first [id$="-code"] | ||
| 152 | -${milestone_form_popup_duration_days_input_locator} = jquery=.fancybox-is-open:last .tab-content:first > .tab-pane.active:first [id$="-duration_days"] | ||
| 153 | -${milestone_form_popup_duration_type_input_locator} = jquery=.fancybox-is-open:last .tab-content:first > .tab-pane.active:first [id$="-duration_type"] | ||
| 154 | - | ||
| 155 | -${tender_form_lots_panel_edit_btn_locator} = jquery=a.btn.btn-default.btn-update.js-form-popup-add | ||
| 156 | -${lot_form_popup_add_btn_locator} = jquery=[href$="#add-milestones"] | ||
| 157 | -${lot_form_popup_title_input_locator} = jquery=.fancybox-is-open [id$="-title"] | ||
| 158 | -${lot_form_popup_description_input_locator} = jquery=.fancybox-is-open [id$="-description"] | ||
| 159 | -${lot_form_popup_title_en_input_locator} = jquery=.fancybox-is-open [id$="-title_en"] | ||
| 160 | -${lot_form_popup_description_en_input_locator} = jquery=.fancybox-is-open [id$="-description_en"] | ||
| 161 | -${lot_form_popup_value_amount_input_locator} = jquery=.fancybox-is-open [id$="-value_amount-disp"] | ||
| 162 | -##${lot_form_popup_value_amount_input_locator} = jquery=.fancybox-is-open [id$="-value_amount"] | ||
| 163 | -${lot_form_popup_value_currency_input_locator} = jquery=.fancybox-is-open [id$="-value_currency"] | ||
| 164 | -${lot_form_popup_value_added_tax_input_locator} = jquery=.fancybox-is-open [id$="-value_added_tax_included"] | ||
| 165 | -${lot_form_popup_minimalstep_amount_input_locator} = jquery=.fancybox-is-open [id$="-min_step_amount-disp"] | ||
| 166 | -##${lot_form_popup_minimalstep_amount_input_locator} = jquery=.fancybox-is-open [id$="-min_step_amount"] | ||
| 167 | -${lot_form_popup_min_step_percentage_amount_input_locator} = jquery=.fancybox-is-open [id$="-min_step_percentage"] | ||
| 168 | - | ||
| 169 | -${tender_form_lot_panel_add_feature_btn_locator} = jquery=#Lots .js-form-popup-panel-list:first > .js-form-popup-panel-item:last .actions-wrapper .btn[data-attribute="features"] | ||
| 170 | -${tender_form_lot_panel_update_feature_btn_locator} = jquery=#Lots #collapseLots0 .js-form-popup-panel-list:first .js-form-hidden-popup-panel:nth(0) a.js-form-popup-update | ||
| 171 | -${tender_form_lot_panel_add_document_btn_locator_tpl} = jquery=#Lots #collapseLots div[data-title*="%lot_id%"] .actions-wrapper a.js-btn-add-form-popup-panel:last | ||
| 172 | -${tender_form_lot_panel_edit_add_document_btn_locator} = jquery=#Lots #collapseLots div[data-title*="%lot_id%"] .js-form-hidden-popup-panel:last .actions-wrapper a.js-form-popup-update | ||
| 173 | - | ||
| 174 | - | ||
| 175 | -${tender_form_procuringEntity_contactPoint_edit_btn_locator} = jquery=(#tender-form .panel.panel-default.form-popup-panel.js-form-popup-panel .panel-heading .actions-wrapper .js-form-popup-update)[4] | ||
| 176 | -${tender_form_submit_btn_locator} = jquery=#tender-form .js-submit-btn | ||
| 177 | -${tender_created_checker_element_locator} = id=tender-part-pjax | ||
| 178 | - | ||
| 179 | -# tender view | ||
| 180 | -${tender_view_checker_element_locator} = id=tender-general-info | ||
| 181 | -${tender_sync_element_locator} = jquery=#aside-part-pjax .status-label .fa-refresh | ||
| 182 | -${tender_uaid_text_locator} = jquery=#tender-general-info .tender-id .value | ||
| 183 | -${tender_edit_btn_locator} = jquery=#aside-part-pjax a[href*="tender/update"] | ||
| 184 | -${tender_status_value_locator} = jquery=#aside-part-pjax .hidden.opstatus | ||
| 185 | -#елемент проверки загрузки формы в попапе | ||
| 186 | -${popup_dynamic_form_loading_element_locator} = jquery=.fancybox-is-open .btn-add .fa-spin | ||
| 187 | -#${add_file_to_form} xpath=//input[@type='file'] | ||
| 188 | -${add_file_to_form_locator} = jquery=.fancybox-is-open input[type$="file"] | ||
| 189 | - | ||
| 190 | -# tender index + search | ||
| 191 | -${tender_search_form_locator} = id=tender-filter-form | ||
| 192 | -${tender_search_form_query_input_locator} = jquery=#tender-filter-form .dynamic-search-query input | ||
| 193 | -${tender_search_form_result_locator_tpl} = jquery=#tender-list .lots__item .lot__characteristic li:contains(%query%) | ||
| 194 | - | ||
| 195 | -# -- for viewer -- | ||
| 196 | -${tender_title_value_locator} = jquery=#tender-part-pjax > section > div > h1 | ||
| 197 | -${tender_description_value_locator} = jquery=#tender-part-pjax > section > p | ||
| 198 | -${tender_mainProcurementCategory_value_locator} = jquery=#tender-part-pjax .main-procurement-category-source.hidden | ||
| 199 | -${tender_budget_amount_value_locator} = jquery=#tender-general-info .budget-amount.hidden | ||
| 200 | -${tender_budget_amount_value_type} = float | ||
| 201 | -${tender_tenderID_value_locator} = jquery=#tender-general-info .info-row.tender-id span.value | ||
| 202 | -${tender_milestones_0_code_value_locator} = jquery=#tender-part-pjax .milestone-list-wrapper .milestone-info-wrapper.hidden.info-wrapper:first .code | ||
| 203 | -${tender_milestones_0_title_value_locator} = jquery=#tender-part-pjax .milestone-list-wrapper .milestone-info-wrapper.hidden.info-wrapper:first .title | ||
| 204 | -${tender_milestones_0_percentage_value_locator} = jquery=#tender-part-pjax .milestone-list-wrapper .milestone-info-wrapper.hidden.info-wrapper:first .percentage | ||
| 205 | -${tender_milestones_0_percentage_value_type} = float | ||
| 206 | -${tender_milestones_0_duration_days_value_locator} = jquery=#tender-part-pjax .milestone-list-wrapper .milestone-info-wrapper.hidden.info-wrapper:first .duration_days | ||
| 207 | -${tender_milestones_0_duration_days_value_type} = integer | ||
| 208 | -${tender_milestones_0_duration_type_value_locator} = jquery=#tender-part-pjax .milestone-list-wrapper .milestone-info-wrapper.hidden.info-wrapper:first .duration_type | ||
| 209 | -${tender_milestones_1_code_value_locator} = jquery=#tender-part-pjax .milestone-list-wrapper .milestone-info-wrapper.hidden.info-wrapper:nth(1) .code | ||
| 210 | -${tender_milestones_1_title_value_locator} = jquery=#tender-part-pjax .milestone-list-wrapper .milestone-info-wrapper.hidden.info-wrapper:nth(1) .title | ||
| 211 | -${tender_milestones_1_percentage_value_locator} = jquery=#tender-part-pjax .milestone-list-wrapper .milestone-info-wrapper.hidden.info-wrapper:nth(1) .percentage | ||
| 212 | -${tender_milestones_1_percentage_value_type} = float | ||
| 213 | -${tender_milestones_1_duration_days_value_locator} = jquery=#tender-part-pjax .milestone-list-wrapper .milestone-info-wrapper.hidden.info-wrapper:nth(1) .duration_days | ||
| 214 | -${tender_milestones_1_duration_days_value_type} = integer | ||
| 215 | -${tender_milestones_1_duration_type_value_locator} = jquery=#tender-part-pjax .milestone-list-wrapper .milestone-info-wrapper.hidden.info-wrapper:nth(1) .duration_type | ||
| 216 | -${tender_milestones_2_code_value_locator} = jquery=#tender-part-pjax .milestone-list-wrapper .milestone-info-wrapper.hidden.info-wrapper:last .code | ||
| 217 | -${tender_milestones_2_title_value_locator} = jquery=#tender-part-pjax .milestone-list-wrapper .milestone-info-wrapper.hidden.info-wrapper:last .title | ||
| 218 | -${tender_milestones_2_percentage_value_locator} = jquery=#tender-part-pjax .milestone-list-wrapper .milestone-info-wrapper.hidden.info-wrapper:last .percentage | ||
| 219 | -${tender_milestones_2_percentage_value_type} = float | ||
| 220 | -${tender_milestones_2_duration_days_value_locator} = jquery=#tender-part-pjax .milestone-list-wrapper .milestone-info-wrapper.hidden.info-wrapper:last .duration_days | ||
| 221 | -${tender_milestones_2_duration_days_value_type} = integer | ||
| 222 | -${tender_milestones_2_duration_type_value_locator} = jquery=#tender-part-pjax .milestone-list-wrapper .milestone-info-wrapper.hidden.info-wrapper:last .duration_type | ||
| 223 | -${tender_value_amount_value_locator} = jquery=#tender-general-info .budget-amount.hidden | ||
| 224 | -${tender_value_amount_value_type} = float | ||
| 225 | -${tender_value_currency_value_locator} = jquery=#tender-general-info .budget-currency.hidden | ||
| 226 | -${tender_value_valueAddedTaxIncluded_value_locator} = jquery=#tender-general-info .budget-tax-included.hidden | ||
| 227 | -${tender_minimalStep_amount_value_locator} = jquery=#tender-general-info .minimal-step-source.hidden | ||
| 228 | -${tender_minimalStep_amount_value_type} = float | ||
| 229 | -${tender_minimalStepPercentage_value_locator} = jquery=#tender-general-info .minimal-step-percentage-source.hidden | ||
| 230 | -${tender_fundingKind_value_locator} = jquery=#tender-general-info .funding-kind-source.hidden | ||
| 231 | -${tender_yearlyPaymentsPercentageRange_value_locator} = jquery=#tender-general-info .yearly-payments-percentage-range-source.hidden | ||
| 232 | -${tender_procuringEntity_name_value_locator} = jquery=#tender-part-pjax .info-row.organization span.value > span | ||
| 233 | -${tender_enquiryPeriod_startDate_value_locator} = jquery=#tender-part-pjax .info-row.enquiry-period-start-date.hidden | ||
| 234 | -${tender_enquiryPeriod_endDate_value_locator} = jquery=#tender-part-pjax .info-row.enquiry-period-end-date.hidden | ||
| 235 | -${tender_tenderPeriod_startDate_value_locator} = jquery=#tender-part-pjax .info-row.tender-period-start-date.hidden | ||
| 236 | -${tender_tenderPeriod_endDate_value_locator} = jquery=#tender-part-pjax .info-row.tender-period-end-date.hidden | ||
| 237 | -${tender_qualificationPeriod_endDate_value_locator} = jquery=#tender-general-info .prequalification-period .value .end-date | ||
| 238 | -#negotiation | ||
| 239 | -${tender_cause_value_locator} = jquery=#tender-general-info .cause-source.hidden | ||
| 240 | -${tender_causeDescription_value_locator} = jquery=#tender-general-info .cause-description .value | ||
| 241 | - | ||
| 242 | -${tender_items_0_description_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .description | ||
| 243 | -#${tender_items_0_description_value_locator} = jquery=#tender-part-pjax .tabs__pane--visible .pseudo-table .item-item-wrapper .textvalue.hidden | ||
| 244 | -#${tender_items_0_description_value_locator} = jquery=execute javascript return $('#tender-part-pjax .tabs__pane--visible .pseudo-table .item-item-wrapper').attr("data-title") | ||
| 245 | - | ||
| 246 | -#lots | ||
| 247 | -${tender_lot_switch_tabs_lot_btn_locator_tpl} jquery=#lots .tabs__list .tabs__item span.tabs__tab-big-text:contains("%lot_id%") | ||
| 248 | -${tender_lot_1_tabs_item_btn_locator} jquery=#lots .tabs__item:first > a | ||
| 249 | -${tender_lot_title_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible > span div.textvalue:first | ||
| 250 | -${tender_lot_description_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible > span div.textvalue:last | ||
| 251 | -#${tender_lot_description_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible #text-modal-description div.textvalue | ||
| 252 | -${tender_lot_value_amount_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden | ||
| 253 | -${tender_lot_value_amount_value_type} = float | ||
| 254 | -${tender_lot_value_currency_value_locator} = jquery=#tender-general-info .budget-currency.hidden | ||
| 255 | -${tender_lot_value_value_added_tax_included_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible .budget .value | ||
| 256 | -${tender_lot_minimal_step_currency_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible .minimal-step .value | ||
| 257 | -${tender_lot_minimal_step_amount_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible .minimal-step-source.hidden | ||
| 258 | -${tender_lot_minimal_step_amount_value_type} = float | ||
| 259 | -${tender_lot_minimal_step_amount_currency_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden | ||
| 260 | -${tender_lot_minimal_step_amount_value_added_tax_included_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden | ||
| 261 | -${tender_lot_minimal_step_value_added_tax_included_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible .minimal-step .value | ||
| 262 | - | ||
| 263 | -##### BOF - TMP ##### | ||
| 264 | -${tender_lot_0_title_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible > span div.textvalue.hidden | ||
| 265 | -${tender_lot_0_value_amount_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden | ||
| 266 | -${tender_lot_0_value_amount_value_type} = float | ||
| 267 | -${tender_lot_0_lots_0_description_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible > span div.textvalue.hidden | ||
| 268 | -${tender_lot_0_value_currency_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden | ||
| 269 | -${tender_lot_0_value_value_added_tax_included_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden | ||
| 270 | -${tender_lot_0_minimal_step_amount_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden | ||
| 271 | -${tender_lot_0_minimal_step_amount_value_type} = float | ||
| 272 | -${tender_lot_0_lot_0_minimal_step_amount_currency_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden | ||
| 273 | -${tender_lot_0_lot_0_minimal_step_amount_value_added_tax_included_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden | ||
| 274 | -${tender_form_lots_edit_lot1_btn_locator} = jquery=#Lots #collapseLots #Lots0 .actions-wrapper a.btn.btn-default.btn-update.js-form-popup-update:first | ||
| 275 | -${tender_form_lots_add_item_btn_locator} = jquery=#Lots #collapseLots #Lots0 .actions-wrapper a.js-form-popup-add | ||
| 276 | -${tender_form_lots_remove_item_btn_locator_tpl} = jquery=#collapseLots0 .js-form-popup-panel[data-title*="%item_id%"] .actions-wrapper .js-form-popup-remove | ||
| 277 | -${tender_lots_remove_item_form_submit_success_msg} = Ви дійсно бажаєте видалити цей елемент? | ||
| 278 | -#${not_alert_opened_close_btn_locator} = jquery=.animated-content .js-btn-confirm | ||
| 279 | -${not_alert_opened_close_btn_locator} = $('.animated-content .js-btn-confirm').trigger("click") | ||
| 280 | -${tender_form_lots_add_item_reporting_btn_locator} = jquery=.form-group-popup-panel[data-attribute="items"]:last #Items0 .js-form-popup-update | ||
| 281 | -##### EOF - TMP ##### | ||
| 282 | - | ||
| 283 | -#item | ||
| 284 | -${tender_item_1_tabs_item_btn_locator} jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) | ||
| 285 | -${tender_item_2_tabs_item_btn_locator} jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(1) | ||
| 286 | -${tender_item_3_tabs_item_btn_locator} jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(2) | ||
| 287 | - | ||
| 288 | -${tender_form_general_panel_update_award_reporting_btn_locator} = jquery=#Award .js-form-popup-update | ||
| 289 | -${tender_form_general_panel_update_award_negotiation_btn_locator} = jquery=.js-form-popup-panel [data-attribute="awards"] .actions-wrapper .js-form-popup-update | ||
| 290 | -${tender_form_general_panel_add_award_negotiation_btn_locator} = jquery=.modal.modal-form [href="#add-awards"] | ||
| 291 | - | ||
| 292 | -#add\remove feature | ||
| 293 | -#${tender_form_features_panel_edit_btn_locator} = jquery=.fancybox-content [href$="#add-features"] | ||
| 294 | -${tender_form_general_panel_update_feature_btn_locator} = jquery=#collapseGeneral .js-form-popup-update:nth(0) | ||
| 295 | -${tender_update_feature_tender_btn_locator} = jquery=#collapseGeneral .js-form-popup-update:nth(0) | ||
| 296 | -${tender_update_feature_lot_btn_locator} = jquery=#collapseLots #Lots0 #collapseLots0 .js-form-hidden-popup-panel .js-form-popup-panel[data-attribute*="features"] .actions-wrapper .js-form-popup-update:last | ||
| 297 | -${tender_update_feature_item_btn_locator} = jquery=#collapseLots #Lots0 #collapseLots0 .js-form-hidden-popup-panel:nth(0) .actions-wrapper .js-form-popup-update:nth(0) | ||
| 298 | -${tender_feature_dell_btn_locator} = jquery=.fancybox-is-open .nav.nav-pills.js-nav.allow-empty .fa.fa-times:last | ||
| 299 | -${tender_feature_form_submit_success_msg} = Ви впевнені що бажаєте видалити поточний неціновий критерій? | ||
| 300 | -${tender_feature_dell_submit_btn_locator} = jquery=.animated-content .js-btn-confirm | ||
| 301 | - | ||
| 302 | -${tender_form_general_tender_plan_id_locator} = jquery=[id$="form-plan_id"] | ||
| 303 | -${tender_feature_switch_dell_btn_locator_tpl} = jquery=.fancybox-is-open .nav.nav-pills.js-nav.allow-empty li[data-title*="%feature_id%"] .js-dynamic-form-remove .fa.fa-times | ||
| 304 | -#${tender_feature_switch_dell_btn_locator_tpl} = $('.fancybox-is-open .nav.nav-pills.js-nav.allow-empty li[data-title*="%feature_id%"] a[href*="#features"]').click() | ||
| 305 | - | ||
| 306 | -#award reporting | ||
| 307 | -${tender_form_award_organization_name_locator} = jquery=[id$="-award_organization_name"] | ||
| 308 | -${tender_form_award_organization_identifier_code_locator} = jquery=[id$="-award_organization_identifier_code"] | ||
| 309 | -${tender_form_award_organization_scale_locator} = jquery=[id$="-award_organization_scale"] | ||
| 310 | -${tender_form_award_organization_region_id_locator} = jquery=[id$="-award_organization_region_id"] | ||
| 311 | -${tender_form_award_organization_postal_code_locator} = jquery=[id$="-award_organization_postal_code"] | ||
| 312 | -${tender_form_award_organization_locality_locator} = jquery=[id$="-award_organization_locality"] | ||
| 313 | -${tender_form_award_organization_street_address_locator} = jquery=[id$="-award_organization_street_address"] | ||
| 314 | -${tender_form_award_organization_contact_point_name_locator} = jquery=[id$="-award_organization_contact_point_name"] | ||
| 315 | -${tender_form_award_organization_contact_point_email_locator} = jquery=[id$="-award_organization_contact_point_email"] | ||
| 316 | -${tender_form_award_organization_contact_point_phone_locator} = jquery=[id$="-award_organization_contact_point_phone"] | ||
| 317 | -${tender_form_award_budget_locator} = jquery=[id$="-award_value_amount"] | ||
| 318 | - | ||
| 319 | -#stage2button | ||
| 320 | -${tender_stage2_open_btn_locator} = jquery=#aside-part-pjax a[href*="/tender/confirm-stage2"] | ||
| 321 | -${tender_stage2_submit_success_msg} = Ви впевнені що бажаєте підтвердити готовність переходу до другого етапу? | ||
| 322 | -${tender_stage2_submit_success_btn_locator} = jquery=.jconfirm-box.animated-content .js-btn-confirm | ||
| 323 | -${tender_stage2_submit_js_success_btn_locator} = $('.jconfirm-box.animated-content .js-btn-confirm').click() | ||
| 324 | -${tender_stage2_submit_alert_success_msg} = Підтвердження успішно надане. | ||
| 325 | -#search | ||
| 326 | -${tender_form_search_btn_locator} = jquery=#DymamicSearch .dynamic-search-submit .js-submit-btn | ||
| 327 | - | ||
| 328 | -${popup_opened_content_success_locator} = Відмінити | ||
| 329 | -${tender_form_general_panel_edit_btn_locator} = jquery=#General #headingGeneral .actions-wrapper .js-form-popup-update | ||
| 330 | -${tender_form_general_panel_draft_mode_input_locator} = jquery=[id*="-draft_mode"] | ||
| 331 | -${tender_form_general_panel_document_stage2_input_locator} = jquery=#collapseGeneral .actions-wrapper .js-btn-add-form-popup-panel[data-attribute="documents"] | ||
| 332 | -${stage2_form_add_document_type_input_locator} = jquery=.js-dynamic-form-content-item:last .document-type select[id*="-document_type"] | ||
| 333 | -${stage2_form_add_document_description_btn_locator} = jquery=.js-dynamic-form-content-item:last [href$="#edit"]:last | ||
| 334 | -${stage2_form_add_document_description_input_locator} = jquery=.js-dynamic-form-content-item:last .popover.fade.top.in textarea[id*="-description"].form-control | ||
| 335 | -${stage2_form_add_document_close_description_btn_locator} = jquery=.js-dynamic-form-content-item:last .popover.fade.top.in [href$="#close"] | ||
| 336 | - | ||
| 337 | - | ||
| 338 | - |
playtender_viewer.robot
deleted
100644 → 0
| 1 | -*** Settings *** | ||
| 2 | - | ||
| 3 | -Resource playtender_common.robot | ||
| 4 | -Resource playtender_variables.robot | ||
| 5 | -Resource playtender_question.robot | ||
| 6 | -Resource playtender_claim.robot | ||
| 7 | -Resource playtender_bid.robot | ||
| 8 | -Resource playtender_viewer.robot | ||
| 9 | -Resource playtender_viewer_variables.robot | ||
| 10 | - | ||
| 11 | -*** Keywords *** | ||
| 12 | - | ||
| 13 | -get value from features | ||
| 14 | - [Arguments] ${feature_id} ${field_name} | ||
| 15 | - [Documentation] Отримати значення поля field_name з нецінового показника з feature_id в описі для тендера tender_uaid. | ||
| 16 | - | ||
| 17 | - wait until page does not contain element with reloading ${tender_sync_element_locator} | ||
| 18 | - ${tender_features_new_value_locator} = replace string ${tender_features_new_value_locator_tpl} %feature_id% ${feature_id} | ||
| 19 | - wait until page contains element with reloading ${tender_features_new_value_locator} | ||
| 20 | - ${return_value} = Run Keyword If 'title' == '${field_name}' Отримати інформацію із нецінового показника title ${feature_id} | ||
| 21 | - ... ELSE IF 'description' == '${field_name}' Отримати інформацію із нецінового показника description ${feature_id} | ||
| 22 | - ... ELSE IF 'featureOf' == '${field_name}' Отримати інформацію із нецінового показника featureOf ${feature_id} | ||
| 23 | - [return] ${return_value} | ||
| 24 | - | ||
| 25 | -Отримати інформацію із нецінового показника title | ||
| 26 | - [Arguments] ${feature_id} | ||
| 27 | - [Documentation] Отримати значення поля title з нецінового показника з feature_id в описі для тендера tender_uaid. | ||
| 28 | - | ||
| 29 | - ${tender_features_title_value_locator} = replace string ${tender_features_title_value_locator_tpl} %feature_id% ${feature_id} | ||
| 30 | - ${return_value} = get value by locator on opened page ${tender_features_title_value_locator} | ||
| 31 | - [return] ${return_value} | ||
| 32 | - | ||
| 33 | -Отримати інформацію із нецінового показника description | ||
| 34 | - [Arguments] ${feature_id} | ||
| 35 | - [Documentation] Отримати значення поля description з нецінового показника з feature_id в описі для тендера tender_uaid. | ||
| 36 | - | ||
| 37 | - ${tender_features_description_value_locator} = replace string ${tender_features_description_value_locator_tpl} %feature_id% ${feature_id} | ||
| 38 | - ${return_value} = get value by locator on opened page ${tender_features_description_value_locator} | ||
| 39 | - [return] ${return_value} | ||
| 40 | - | ||
| 41 | -Отримати інформацію із нецінового показника featureOf | ||
| 42 | - [Arguments] ${feature_id} | ||
| 43 | - [Documentation] Отримати значення поля featureOf з нецінового показника з feature_id в описі для тендера tender_uaid. | ||
| 44 | - | ||
| 45 | - ${tender_features_featureof_value_locator} = replace string ${tender_features_featureof_value_locator_tpl} %feature_id% ${feature_id} | ||
| 46 | - ${return_value} = get value by locator on opened page ${tender_features_featureof_value_locator} | ||
| 47 | - [return] ${return_value} | ||
| 48 | - | ||
| 49 | - | ||
| 50 | -get value from item | ||
| 51 | - [Arguments] ${item_id} ${field_name} | ||
| 52 | - [Documentation] Отримати значення поля field_name з предмету з item_id в описі для тендера tender_uaid. | ||
| 53 | - | ||
| 54 | -# ${return_value} = Run Keyword If 'title' == '${field_name}' Отримати інформацію із предмету title ${item_id} | ||
| 55 | -# ... ELSE IF 'description' == '${field_name}' Отримати інформацію із предмету description ${item_id} | ||
| 56 | -# ... ELSE IF 'featureOf' == '${field_name}' Отримати інформацію із предмету featureOf ${item_id]} | ||
| 57 | - ${tender_items_new_value_locator} = replace string ${tender_items_new_value_locator_tpl} %item_id% ${item_id} | ||
| 58 | - wait until page contains element with reloading ${tender_items_new_value_locator} | ||
| 59 | - log many ${item_id} | ||
| 60 | - Run Keyword And Return If 'description' == '${field_name}' Отримати інформацію із предмету description ${item_id} | ||
| 61 | - Run Keyword And Return If 'deliveryDate.startDate' == '${field_name}' Отримати інформацію із предмету deliveryDate.startDate ${item_id} | ||
| 62 | - Run Keyword And Return If 'deliveryDate.endDate' == '${field_name}' Отримати інформацію із предмету deliveryDate.endDate ${item_id} | ||
| 63 | - Run Keyword And Return If 'deliveryAddress.countryName' == '${field_name}' Отримати інформацію із предмету deliveryAddress.countryName ${item_id} | ||
| 64 | - Run Keyword And Return If 'deliveryAddress.postalCode' == '${field_name}' Отримати інформацію із предмету deliveryAddress.postalCode ${item_id} | ||
| 65 | - Run Keyword And Return If 'deliveryAddress.region' == '${field_name}' Отримати інформацію із предмету deliveryAddress.region ${item_id} | ||
| 66 | - Run Keyword And Return If 'deliveryAddress.locality' == '${field_name}' Отримати інформацію із предмету deliveryAddress.locality ${item_id} | ||
| 67 | - Run Keyword And Return If 'deliveryAddress.streetAddress' == '${field_name}' Отримати інформацію із предмету deliveryAddress.streetAddress ${item_id} | ||
| 68 | - Run Keyword And Return If 'classification.scheme' == '${field_name}' Отримати інформацію із предмету classification.scheme ${item_id} | ||
| 69 | - Run Keyword And Return If 'classification.id' == '${field_name}' Отримати інформацію із предмету classification.id ${item_id} | ||
| 70 | - Run Keyword And Return If 'classification.description' == '${field_name}' Отримати інформацію із предмету classification.description ${item_id} | ||
| 71 | - Run Keyword And Return If 'additionalClassifications[0].scheme' == '${field_name}' Отримати інформацію із предмету additionalClassifications[0].scheme ${item_id} | ||
| 72 | - Run Keyword And Return If 'additionalClassifications[0].id' == '${field_name}' Отримати інформацію із предмету additionalClassifications[0].id ${item_id} | ||
| 73 | - Run Keyword And Return If 'additionalClassifications[0].description' == '${field_name}' Отримати інформацію із предмету additionalClassifications[0].description ${item_id} | ||
| 74 | - Run Keyword And Return If 'unit.name' == '${field_name}' Отримати інформацію із предмету unit.name ${item_id} | ||
| 75 | - Run Keyword And Return If 'unit.code' == '${field_name}' Отримати інформацію із предмету unit.code ${item_id} | ||
| 76 | - Run Keyword And Return If 'quantity' == '${field_name}' Отримати інформацію із предмету quantity ${item_id} | ||
| 77 | -# [return] ${return_value} | ||
| 78 | - | ||
| 79 | - | ||
| 80 | -Отримати інформацію із предмету description | ||
| 81 | - [Arguments] ${item_id} | ||
| 82 | - [Documentation] Отримати значення поля description з предмету з item_id в описі для тендера tender_uaid. | ||
| 83 | - | ||
| 84 | - log many ${item_id} | ||
| 85 | - ${tender_items_description_value_locator} = run keyword if ${number_of_lots} > 0 replace string ${tender_items_description_value_locator_tpl} %item_id% ${item_id} | ||
| 86 | - ... ELSE replace string ${tender_items_no_lot_description_value_locator_tpl} %item_id% ${item_id} | ||
| 87 | - ${return_value} = get value by locator on opened page ${tender_items_description_value_locator} | ||
| 88 | - [return] ${return_value} | ||
| 89 | - | ||
| 90 | -Отримати інформацію із предмету deliveryDate.startDate | ||
| 91 | - [Arguments] ${item_id} | ||
| 92 | - [Documentation] Отримати значення поля deliveryDate.startDate з предмету з item_id в описі для тендера tender_uaid. | ||
| 93 | - | ||
| 94 | - ${tender_items_delivery_start_date_value_locator} = replace string ${tender_items_delivery_start_date_value_locator_tpl} %item_id% ${item_id} | ||
| 95 | - ${return_value} = get value by locator on opened page ${tender_items_delivery_start_date_value_locator} | ||
| 96 | - [return] ${return_value} | ||
| 97 | - | ||
| 98 | -Отримати інформацію із предмету deliveryDate.endDate | ||
| 99 | - [Arguments] ${item_id} | ||
| 100 | - [Documentation] Отримати значення поля deliveryDate.endDate з предмету з item_id в описі для тендера tender_uaid. | ||
| 101 | - | ||
| 102 | - ${tender_items_delivery_end_date_value_locator} = replace string ${tender_items_delivery_end_date_value_locator_tpl} %item_id% ${item_id} | ||
| 103 | - ${return_value} = get value by locator on opened page ${tender_items_delivery_end_date_value_locator} | ||
| 104 | - [return] ${return_value} | ||
| 105 | - | ||
| 106 | -Отримати інформацію із предмету deliveryAddress.countryName | ||
| 107 | - [Arguments] ${item_id} | ||
| 108 | - [Documentation] Отримати значення поля deliveryAddress.countryName з предмету з item_id в описі для тендера tender_uaid. | ||
| 109 | - | ||
| 110 | - ${tender_items_delivery_country_value_locator} = replace string ${tender_items_delivery_country_value_locator_tpl} %item_id% ${item_id} | ||
| 111 | - ${return_value} = get value by locator on opened page ${tender_items_delivery_country_value_locator} | ||
| 112 | - [return] ${return_value} | ||
| 113 | - | ||
| 114 | -Отримати інформацію із предмету deliveryAddress.postalCode | ||
| 115 | - [Arguments] ${item_id} | ||
| 116 | - [Documentation] Отримати значення поля deliveryAddress.postalCode з предмету з item_id в описі для тендера tender_uaid. | ||
| 117 | - | ||
| 118 | - ${tender_items_delivery_postal_code_value_locator} = replace string ${tender_items_delivery_postal_code_value_locator_tpl} %item_id% ${item_id} | ||
| 119 | - ${return_value} = get value by locator on opened page ${tender_items_delivery_postal_code_value_locator} | ||
| 120 | - [return] ${return_value} | ||
| 121 | - | ||
| 122 | -Отримати інформацію із предмету deliveryAddress.region | ||
| 123 | - [Arguments] ${item_id} | ||
| 124 | - [Documentation] Отримати значення поля deliveryAddress.region з предмету з item_id в описі для тендера tender_uaid. | ||
| 125 | - | ||
| 126 | - ${tender_items_delivery_region_id_value_locator} = replace string ${tender_items_delivery_region_id_value_locator_tpl} %item_id% ${item_id} | ||
| 127 | - ${return_value} = get value by locator on opened page ${tender_items_delivery_region_id_value_locator} | ||
| 128 | - [return] ${return_value} | ||
| 129 | - | ||
| 130 | -Отримати інформацію із предмету deliveryAddress.locality | ||
| 131 | - [Arguments] ${item_id} | ||
| 132 | - [Documentation] Отримати значення поля deliveryAddress.locality з предмету з item_id в описі для тендера tender_uaid. | ||
| 133 | - | ||
| 134 | - ${tender_items_delivery_locality_value_locator} = replace string ${tender_items_delivery_locality_value_locator_tpl} %item_id% ${item_id} | ||
| 135 | - ${return_value} = get value by locator on opened page ${tender_items_delivery_locality_value_locator} | ||
| 136 | - [return] ${return_value} | ||
| 137 | - | ||
| 138 | -Отримати інформацію із предмету deliveryAddress.streetAddress | ||
| 139 | - [Arguments] ${item_id} | ||
| 140 | - [Documentation] Отримати значення поля deliveryAddress.streetAddress з предмету з item_id в описі для тендера tender_uaid. | ||
| 141 | - | ||
| 142 | - ${tender_items_delivery_street_address_value_locator} = replace string ${tender_items_delivery_street_address_value_locator_tpl} %item_id% ${item_id} | ||
| 143 | - ${return_value} = get value by locator on opened page ${tender_items_delivery_street_address_value_locator} | ||
| 144 | - [return] ${return_value} | ||
| 145 | - | ||
| 146 | -Отримати інформацію із предмету classification.scheme | ||
| 147 | - [Arguments] ${item_id} | ||
| 148 | - [Documentation] Отримати значення поля classification.scheme з предмету з item_id в описі для тендера tender_uaid. | ||
| 149 | - | ||
| 150 | - ${tender_items_classification_scheme_value_locator} = replace string ${tender_items_classification_scheme_value_locator_tpl} %item_id% ${item_id} | ||
| 151 | - ${return_value} = get value by locator on opened page ${tender_items_classification_scheme_value_locator} | ||
| 152 | - [return] ${return_value} | ||
| 153 | - | ||
| 154 | -Отримати інформацію із предмету classification.id | ||
| 155 | - [Arguments] ${item_id} | ||
| 156 | - [Documentation] Отримати значення поля classification.id з предмету з item_id в описі для тендера tender_uaid. | ||
| 157 | - | ||
| 158 | - ${tender_items_classification_code_value_locator} = replace string ${tender_items_classification_code_value_locator_tpl} %item_id% ${item_id} | ||
| 159 | - ${return_value} = get value by locator on opened page ${tender_items_classification_code_value_locator} | ||
| 160 | - [return] ${return_value} | ||
| 161 | - | ||
| 162 | -Отримати інформацію із предмету classification.description | ||
| 163 | - [Arguments] ${item_id} | ||
| 164 | - [Documentation] Отримати значення поля classification.description з предмету з item_id в описі для тендера tender_uaid. | ||
| 165 | - | ||
| 166 | - ${tender_items_classification_description_value_locator} = replace string ${tender_items_classification_description_value_locator_tpl} %item_id% ${item_id} | ||
| 167 | - ${return_value} = get value by locator on opened page ${tender_items_classification_description_value_locator} | ||
| 168 | - [return] ${return_value} | ||
| 169 | - | ||
| 170 | -Отримати інформацію із предмету additionalClassifications[0].scheme | ||
| 171 | - [Arguments] ${item_id} | ||
| 172 | - [Documentation] Отримати значення поля additionalClassifications[0].scheme з предмету з item_id в описі для тендера tender_uaid. | ||
| 173 | - | ||
| 174 | - ${tender_items_additional_classification_scheme_value_locator} = replace string ${tender_items_additional_classification_scheme_value_locator_tpl} %item_id% ${item_id} | ||
| 175 | - ${return_value} = get value by locator on opened page ${tender_items_additional_classification_scheme_value_locator} | ||
| 176 | - [return] ${return_value} | ||
| 177 | - | ||
| 178 | -Отримати інформацію із предмету additionalClassifications[0].id | ||
| 179 | - [Arguments] ${item_id} | ||
| 180 | - [Documentation] Отримати значення поля additionalClassifications[0].id з предмету з item_id в описі для тендера tender_uaid. | ||
| 181 | - | ||
| 182 | - ${tender_items_additional_classification_code_value_locator} = replace string ${tender_items_additional_classification_code_value_locator_tpl} %item_id% ${item_id} | ||
| 183 | - ${return_value} = get value by locator on opened page ${tender_items_additional_classification_code_value_locator} | ||
| 184 | - [return] ${return_value} | ||
| 185 | - | ||
| 186 | -Отримати інформацію із предмету additionalClassifications[0].description | ||
| 187 | - [Arguments] ${item_id} | ||
| 188 | - [Documentation] Отримати значення поля additionalClassifications[0].description з предмету з item_id в описі для тендера tender_uaid. | ||
| 189 | - | ||
| 190 | - ${tender_items_additional_classification_description_value_locator} = replace string ${tender_items_additional_classification_description_value_locator_tpl} %item_id% ${item_id} | ||
| 191 | - ${return_value} = get value by locator on opened page ${tender_items_additional_classification_description_value_locator} | ||
| 192 | - [return] ${return_value} | ||
| 193 | - | ||
| 194 | -Отримати інформацію із предмету unit.name | ||
| 195 | - [Arguments] ${item_id} | ||
| 196 | - [Documentation] Отримати значення поля unit.name з предмету з item_id в описі для тендера tender_uaid. | ||
| 197 | - | ||
| 198 | - ${tender_items_unit_title_value_locator} = replace string ${tender_items_unit_title_value_locator_tpl} %item_id% ${item_id} | ||
| 199 | - ${return_value} = get value by locator on opened page ${tender_items_unit_title_value_locator} | ||
| 200 | - [return] ${return_value} | ||
| 201 | - | ||
| 202 | -Отримати інформацію із предмету unit.code | ||
| 203 | - [Arguments] ${item_id} | ||
| 204 | - [Documentation] Отримати значення поля unit.code з предмету з item_id в описі для тендера tender_uaid. | ||
| 205 | - | ||
| 206 | - ${tender_items_unit_code_value_locator} = replace string ${tender_items_unit_code_value_locator_tpl} %item_id% ${item_id} | ||
| 207 | - ${return_value} = get value by locator on opened page ${tender_items_unit_code_value_locator} | ||
| 208 | - [return] ${return_value} | ||
| 209 | - | ||
| 210 | -Отримати інформацію із предмету quantity | ||
| 211 | - [Arguments] ${item_id} | ||
| 212 | - [Documentation] Отримати значення поля quantity з предмету з item_id в описі для тендера tender_uaid. | ||
| 213 | - | ||
| 214 | - ${tender_items_quantity_value_locator} = replace string ${tender_items_quantity_value_locator_tpl} %item_id% ${item_id} | ||
| 215 | - ${return_value} = get value by locator on opened page ${tender_items_quantity_value_locator} float | ||
| 216 | - [return] ${return_value} | ||
| 217 | - | ||
| 218 | -get value from lot | ||
| 219 | - [Arguments] ${lot_id} ${field_name} | ||
| 220 | - [Documentation] Отримати значення поля field_name з лоту з lot_id в описі для тендера tender_uaid. | ||
| 221 | - | ||
| 222 | - Run Keyword And Return If 'title' == '${field_name}' Отримати інформацію із лоту title ${lot_id} | ||
| 223 | - Run Keyword And Return If 'description' == '${field_name}' Отримати інформацію із лоту description ${lot_id} | ||
| 224 | - Run Keyword And Return If 'value.amount' == '${field_name}' Отримати інформацію із лоту value.amount ${lot_id} | ||
| 225 | - Run Keyword And Return If 'minimalStep.amount' == '${field_name}' Отримати інформацію із лоту minimalStep.amount ${lot_id} | ||
| 226 | - Run Keyword And Return If 'value.currency' == '${field_name}' Отримати інформацію із лоту value.currency ${lot_id} | ||
| 227 | - Run Keyword And Return If 'value.valueAddedTaxIncluded' == '${field_name}' Отримати інформацію із лоту value.valueAddedTaxIncluded ${lot_id} | ||
| 228 | - Run Keyword And Return If 'minimalStep.currency' == '${field_name}' Отримати інформацію із лоту minimalStep.currency ${lot_id} | ||
| 229 | - Run Keyword And Return If 'minimalStep.valueAddedTaxIncluded' == '${field_name}' Отримати інформацію із лоту minimalStep.valueAddedTaxIncluded ${lot_id} | ||
| 230 | -# Run Keyword And Return If 'auctionPeriod.startDate' == '${field_name}' get text jquery=#lots .tabs__content .tabs__pane--visible .auction-period .value .start-date | ||
| 231 | - Run Keyword And Return If 'auctionPeriod.startDate' == '${field_name}' Отримати інформацію із лоту auctionPeriod.startDate ${lot_id} | ||
| 232 | - Run Keyword And Return If 'auctionPeriod.endDate' == '${field_name}' Отримати інформацію із лоту auctionPeriod.endDate ${lot_id} | ||
| 233 | -# Run Keyword And Return If 'auctionPeriod.endDate' == '${field_name}' get text jquery=#lots .tabs__content .tabs__pane--visible .auction-period .value .end-date | ||
| 234 | - Run Keyword And Return If 'minimalStepPercentage' == '${field_name}' Отримати інформацію із лоту minimalStepPercentage ${lot_id} | ||
| 235 | - Run Keyword And Return If 'fundingKind' == '${field_name}' Отримати інформацію із лоту fundingKind ${lot_id} | ||
| 236 | - Run Keyword And Return If 'yearlyPaymentsPercentageRange' == '${field_name}' Отримати інформацію із лоту yearlyPaymentsPercentageRange ${lot_id} | ||
| 237 | - | ||
| 238 | - | ||
| 239 | -Отримати інформацію із лоту title | ||
| 240 | - [Arguments] ${lot_id} | ||
| 241 | - [Documentation] Отримати значення поля title з лоту з lot_id в описі для тендера tender_uaid. | ||
| 242 | - | ||
| 243 | -# ${tender_lot_title_value_locator} = replace string ${tender_lot_title_value_locator_tpl} %lot_id% ${lot_id} | ||
| 244 | - ${return_value} = get value by locator on opened page ${tender_lot_title_value_locator} | ||
| 245 | - [return] ${return_value} | ||
| 246 | - | ||
| 247 | -Отримати інформацію із лоту description | ||
| 248 | - [Arguments] ${lot_id} | ||
| 249 | - [Documentation] Отримати значення поля description з лоту з lot_id в описі для тендера tender_uaid. | ||
| 250 | - | ||
| 251 | -# ${tender_lot_description_value_locator} = replace string ${tender_lot_description_value_locator_tpl} %lot_id% ${lot_id} | ||
| 252 | - ${return_value} = get value by locator on opened page ${tender_lot_description_value_locator} | ||
| 253 | - [return] ${return_value} | ||
| 254 | - | ||
| 255 | -Отримати інформацію із лоту value.amount | ||
| 256 | - [Arguments] ${lot_id} | ||
| 257 | - [Documentation] Отримати значення поля description з лоту з lot_id в описі для тендера tender_uaid. | ||
| 258 | - | ||
| 259 | -# ${tender_lot_value_amount_value_locator} = replace string ${tender_lot_value_amount_value_locator_tpl} %lot_id% ${lot_id} | ||
| 260 | - ${return_value} = get value by locator on opened page ${tender_lot_value_amount_value_locator} ${tender_lot_value_amount_value_type} | ||
| 261 | - [return] ${return_value} | ||
| 262 | - | ||
| 263 | -Отримати інформацію із лоту minimalStep.amount | ||
| 264 | - [Arguments] ${lot_id} | ||
| 265 | - [Documentation] Отримати значення поля featureOf з лоту з lot_id в описі для тендера tender_uaid. | ||
| 266 | - | ||
| 267 | -# ${tender_lot_minimal_step_amount_value_locator} = replace string ${tender_lot_minimal_step_amount_value_locator_tpl} %lot_id% ${lot_id} | ||
| 268 | - ${return_value} = get value by locator on opened page ${tender_lot_minimal_step_amount_value_locator} ${tender_lot_minimal_step_amount_value_type} | ||
| 269 | - [return] ${return_value} | ||
| 270 | - | ||
| 271 | -Отримати інформацію із лоту value.currency | ||
| 272 | - [Arguments] ${lot_id} | ||
| 273 | - [Documentation] Отримати значення поля title з лоту з lot_id в описі для тендера tender_uaid. | ||
| 274 | - | ||
| 275 | -# ${tender_lot_value_currency_value_locator} = replace string ${tender_lot_value_currency_value_locator_tpl} %lot_id% ${lot_id} | ||
| 276 | - ${return_value} = get value by locator on opened page ${tender_lot_value_currency_value_locator} | ||
| 277 | - [return] ${return_value} | ||
| 278 | - | ||
| 279 | -Отримати інформацію із лоту value.valueAddedTaxIncluded | ||
| 280 | - [Arguments] ${lot_id} | ||
| 281 | - [Documentation] Отримати значення поля description з лоту з lot_id в описі для тендера tender_uaid. | ||
| 282 | - | ||
| 283 | -# ${tender_lot_value_value_added_tax_included_value_locator} = replace string ${tender_lot_value_value_added_tax_included_value_locator_tpl} %lot_id% ${lot_id} | ||
| 284 | - ${return_value} = get value by locator on opened page ${tender_lot_value_value_added_tax_included_value_locator} | ||
| 285 | - ${return_value} = set variable if 'з ПДВ' in '${return_value}' ${True} ${False} | ||
| 286 | -# ${return_value} = set variable if ${return_value} == 1 True | ||
| 287 | - [return] ${return_value} | ||
| 288 | - | ||
| 289 | -Отримати інформацію із лоту minimalStep.currency | ||
| 290 | - [Arguments] ${lot_id} | ||
| 291 | - [Documentation] Отримати значення поля title з лоту з lot_id в описі для тендера tender_uaid. | ||
| 292 | - | ||
| 293 | -# ${tender_lot_minimal_step_currency_value_locator} = replace string ${tender_lot_minimal_step_currency_value_locator_tpl} %lot_id% ${lot_id} | ||
| 294 | - ${return_value} = get value by locator on opened page ${tender_lot_minimal_step_currency_value_locator} | ||
| 295 | - ${return_value} = set variable if 'UAH' in '${return_value}' UAH | ||
| 296 | - [return] ${return_value} | ||
| 297 | - | ||
| 298 | -Отримати інформацію із лоту minimalStep.valueAddedTaxIncluded | ||
| 299 | - [Arguments] ${lot_id} | ||
| 300 | - [Documentation] Отримати значення поля description з лоту з lot_id в описі для тендера tender_uaid. | ||
| 301 | - | ||
| 302 | -# ${tender_lot_value_minimal_step_added_tax_included_value_locator} = replace string ${tender_lot_minimal_step_value_added_tax_included_value_locator_tpl} %lot_id% ${lot_id} | ||
| 303 | -# ${return_value} = get value by locator on opened page ${tender_lot_minimal_step_value_added_tax_included_value_locator} | ||
| 304 | - ${return_value} = get value by locator on opened page ${tender_lot_value_value_added_tax_included_value_locator} | ||
| 305 | - ${return_value} = set variable if 'з ПДВ' in '${return_value}' ${True} ${False} | ||
| 306 | - [return] ${return_value} | ||
| 307 | - | ||
| 308 | -Отримати інформацію із лоту auctionPeriod.startDate | ||
| 309 | - [Arguments] ${lot_id} | ||
| 310 | - [Documentation] Отримати значення поля featureOf з лоту з lot_id в описі для тендера tender_uaid. | ||
| 311 | - | ||
| 312 | -# ${tender_lot_delivery_region_id_value_locator} = replace string ${tender_lot_delivery_region_id_value_locator_tpl} %lot_id% ${lot_id} | ||
| 313 | - ${return_value} = get value by locator on opened page ${tender_auctionPeriod_startDate_value_locator} | ||
| 314 | -# ${return_value} = parse_complaintPeriod_date ${return_value} | ||
| 315 | - [return] ${return_value} | ||
| 316 | - | ||
| 317 | -Отримати інформацію із лоту auctionPeriod.endDate | ||
| 318 | - [Arguments] ${lot_id} | ||
| 319 | - [Documentation] Отримати значення поля title з лоту з lot_id в описі для тендера tender_uaid. | ||
| 320 | - | ||
| 321 | -# ${tender_lot_delivery_locality_value_locator} = replace string ${tender_lot_delivery_locality_value_locator_tpl} %lot_id% ${lot_id} | ||
| 322 | - ${return_value} = get value by locator on opened page ${tender_auctionPeriod_endDate_value_locator} | ||
| 323 | - [return] ${return_value} | ||
| 324 | - | ||
| 325 | -Отримати інформацію із лоту minimalStepPercentage | ||
| 326 | - [Arguments] ${lot_id} | ||
| 327 | - [Documentation] Отримати значення поля minimalStepPercentage з лоту з lot_id в описі для тендера tender_uaid. | ||
| 328 | - | ||
| 329 | -# ${tender_lot_delivery_street_address_value_locator} = replace string ${tender_lot_delivery_street_address_value_locator_tpl} %lot_id% ${lot_id} | ||
| 330 | -# ${return_value} = get field_value by field_name on opened page ${tender_minimalStepPercentage_value_locator} | ||
| 331 | - ${return_value} = get value by locator on opened page ${tender_minimalStepPercentage_value_locator} | ||
| 332 | - ${return_value} = convert_string_to_float ${return_value} | ||
| 333 | - [return] ${return_value} | ||
| 334 | - | ||
| 335 | -Отримати інформацію із лоту fundingKind | ||
| 336 | - [Arguments] ${lot_id} | ||
| 337 | - [Documentation] Отримати значення поля featureOf з лоту з lot_id в описі для тендера tender_uaid. | ||
| 338 | - | ||
| 339 | -# ${tender_lot_classification_scheme_value_locator} = replace string ${tender_lot_classification_scheme_value_locator_tpl} %lot_id% ${lot_id} | ||
| 340 | - ${return_value} = get value by locator on opened page ${tender_fundingKind_value_locator} | ||
| 341 | - [return] ${return_value} | ||
| 342 | - | ||
| 343 | -Отримати інформацію із лоту yearlyPaymentsPercentageRange | ||
| 344 | - [Arguments] ${lot_id} | ||
| 345 | - [Documentation] Отримати значення поля title з лоту з lot_id в описі для тендера tender_uaid. | ||
| 346 | - | ||
| 347 | -# ${tender_lot_classification_code_value_locator} = replace string ${tender_lot_classification_code_value_locator_tpl} %lot_id% ${lot_id} | ||
| 348 | -# ${field_name} = set variable tender.${field_name}.value | ||
| 349 | -# ${return_value} = get field_value by field_name on opened page ${tender_yearlyPaymentsPercentageRange_value_locator} | ||
| 350 | - ${return_value} = get value by locator on opened page ${tender_yearlyPaymentsPercentageRange_value_locator} | ||
| 351 | - ${return_value} = convert_string_to_float ${return_value} | ||
| 352 | - [return] ${return_value} | ||
| 353 | - | ||
| 354 | -Отримати інформацію із документа title | ||
| 355 | - [Arguments] ${doc_id} | ||
| 356 | - [Documentation] Отримати значення поля title з документу з doc_id в описі для тендера tender_uaid. | ||
| 357 | - | ||
| 358 | -#заготовка | ||
| 359 | - ${tender_new_doc_locator} = replace string ${tender_new_doc_locator_tpl} %doc_id% ${doc_id} | ||
| 360 | - wait until page contains element with reloading ${tender_new_doc_locator} | ||
| 361 | - | ||
| 362 | - ${tender_new_doc__title_locator} = replace string ${tender_new_doc_title_locator_tpl} %doc_id% ${doc_id} | ||
| 363 | - | ||
| 364 | - ${return_value} = Execute Javascript return ${tender_new_doc__title_locator} | ||
| 365 | - ##${return_value} = get text ${tender_new_doc_locator} | ||
| 366 | - #${return_value} = get value by locator on opened page ${tender_new_doc_locator} | ||
| 367 | - [return] ${return_value} | ||
| 368 | - | ||
| 369 | -wait for tender status | ||
| 370 | - [Documentation] Очикування відповідного статусу закупівлі, в залежності від кейворда | ||
| 371 | - | ||
| 372 | - Run Keyword If '${TEST_NAME}' == 'Неможливість завантажити документ першим учасником після закінчення прийому пропозицій' Wait Until Keyword Succeeds 480 s 20 s Wait For EndEnquire | ||
| 373 | - Run Keyword If '${TEST_NAME}' == 'Неможливість завантажити документ другим учасником після закінчення прийому пропозицій' Wait Until Keyword Succeeds 480 s 20 s Wait For EndEnquire | ||
| 374 | - Run Keyword If '${TEST_NAME}' == 'Неможливість задати запитання на тендер після закінчення періоду прийому пропозицій' Wait Until Keyword Succeeds 480 s 20 s Wait For EndEnquire | ||
| 375 | - #Run Keyword If '${TEST_NAME}' == 'Неможливість задати запитання на тендер після закінчення періоду уточнень' Wait Until Keyword Succeeds 480 s 20 s Wait For EndEnquire | ||
| 376 | - Run Keyword If '${TEST_NAME}' == 'Можливість подати пропозицію першим учасником' Wait Until Keyword Succeeds 480 s 20 s Wait For TenderPeriod | ||
| 377 | - Run Keyword If '${TEST_NAME}' == 'Можливість подати пропозицію другим учасником' Wait Until Keyword Succeeds 480 s 20 s Wait For TenderPeriod | ||
| 378 | - Run Keyword If '${TEST_NAME}' == 'Відображення дати закінчення періоду блокування перед початком аукціону' Wait Until Keyword Succeeds 80 s 20 s Wait For AuctionPeriod | ||
| 379 | - Run Keyword If '${TEST_NAME}' == 'Можливість підтвердити першу пропозицію кваліфікації' Wait Until Keyword Succeeds 80 s 20 s Wait For PreQualificationPeriod | ||
| 380 | - Run Keyword If '${TEST_NAME}' == 'Можливість підтвердити другу пропозицію кваліфікації' Wait Until Keyword Succeeds 80 s 20 s Wait For PreQualificationPeriod | ||
| 381 | - Run Keyword If '${TEST_NAME}' == 'Можливість дочекатися завершення роботи мосту' Wait Until Keyword Succeeds 6000 s 20 s Wait For CompletePeriod | ||
| 382 | - #cat Run Keyword If '${TEST_NAME}' == 'Можливість дочекатися початку періоду очікування' Wait Until Keyword Succeeds 600 s 20 s Wait For PreQualificationsStandPeriod | ||
| 383 | - Run Keyword If '${TEST_NAME}' == 'Можливість дочекатися початку періоду очікування' Wait Until Keyword Succeeds 600 s 20 s Wait For ActiveStage2Pending | ||
| 384 | - Run Keyword If '${TEST_NAME}' == 'Можливість перевести тендер в статус очікування обробки мостом' Wait Until Keyword Succeeds 600 s 20 s Wait For ActiveStage2Waiting | ||
| 385 | - Run Keyword If '${TEST_NAME}' == 'Можливість дочекатись дати закінчення прийому пропозицій' and '${SUITE NAME}' == 'Tests Files.Complaints' Wait Until Keyword Succeeds 800 s 20 s Wait For NotTenderPeriod | ||
| 386 | - Run Keyword If '${TEST_NAME}' == 'Можливість дочекатись дати початку періоду кваліфікації' and '${SUITE NAME}' == 'Tests Files.Complaints' Wait Until Keyword Succeeds 800 s 20 s Wait For QualificationsStandPeriod | ||
| 387 | - Run Keyword If '${TEST_NAME}' == 'Відображення статусу успішного завершення тендера' Wait Until Keyword Succeeds 6000 s 20 s Wait For CompletePeriod | ||
| 388 | - | ||
| 389 | -Wait For EndEnquire | ||
| 390 | - [Documentation] Очикування статусу закупівлі закінчення обговорення | ||
| 391 | - | ||
| 392 | - Reload Page | ||
| 393 | - ${return_value} = Get text ${tender_status_value_locator} | ||
| 394 | - Log Many CAT ${return_value} | ||
| 395 | - Page Should Not Contain Element ${tender_status_active_tendering_value_locator} | ||
| 396 | - | ||
| 397 | -Wait For TenderPeriod | ||
| 398 | - [Documentation] Очикування статусу закупівлі початку подачи пропозицій | ||
| 399 | - | ||
| 400 | - Reload Page | ||
| 401 | - ${return_value} = Get text ${tender_status_value_locator} | ||
| 402 | - Log Many CAT ${return_value} | ||
| 403 | - Page Should Contain Element ${tender_status_active_tendering_value_locator} | ||
| 404 | - | ||
| 405 | -Wait For AuctionPeriod | ||
| 406 | - [Documentation] Очикування статусу закупівлі аукціон | ||
| 407 | - | ||
| 408 | - Reload Page | ||
| 409 | - ${return_value} = Get text ${tender_status_value_locator} | ||
| 410 | - Log Many CAT ${return_value} | ||
| 411 | - Page Should Contain Element ${tender_status_active_auction_value_locator} | ||
| 412 | - | ||
| 413 | -Wait For PreQualificationPeriod | ||
| 414 | - [Documentation] Очикування статусу закупівлі аукціон | ||
| 415 | - | ||
| 416 | - Reload Page | ||
| 417 | - ${return_value} = Get text ${tender_status_value_locator} | ||
| 418 | - Log Many CAT ${return_value} | ||
| 419 | - Page Should Contain Element ${tender_status_active_pre_qualification_value_locator} | ||
| 420 | - | ||
| 421 | -Wait For CompletePeriod | ||
| 422 | - [Documentation] Очикування статусу закупівлі завершення | ||
| 423 | - | ||
| 424 | - Reload Page | ||
| 425 | - ${return_value} = Get text ${tender_status_value_locator} | ||
| 426 | - Log Many CAT ${return_value} | ||
| 427 | - Page Should Contain Element ${tender_status_complete_value_locator} | ||
| 428 | - | ||
| 429 | -Wait For ActiveStage2Pending | ||
| 430 | - [Documentation] Очикування статусу закупівлі завершення | ||
| 431 | - | ||
| 432 | - Reload Page | ||
| 433 | - ${return_value} = Get text ${tender_status_value_locator} | ||
| 434 | - Log Many CAT ${return_value} | ||
| 435 | - Page Should Contain Element ${tender_status_active_stage2_pending_value_locator} | ||
| 436 | - | ||
| 437 | -Wait For ActiveStage2Waiting | ||
| 438 | - [Documentation] Очикування статусу закупівлі завершення | ||
| 439 | - | ||
| 440 | - Reload Page | ||
| 441 | - ${return_value} = Get text ${tender_status_value_locator} | ||
| 442 | - Log Many CAT ${return_value} | ||
| 443 | - Page Should Contain Element ${tender_status_active_stage2_waiting_value_locator} | ||
| 444 | - | ||
| 445 | -Wait For NotTenderPeriod | ||
| 446 | - [Documentation] Очикування статусу закупівлі завершення | ||
| 447 | - | ||
| 448 | - Reload Page | ||
| 449 | - ${return_value} = Get text ${tender_status_value_locator} | ||
| 450 | - Log Many CAT ${return_value} | ||
| 451 | - Page Should Contain Element ${tender_status_active_tendering_value_locator} | ||
| 452 | - | ||
| 453 | -Wait For QualificationsStandPeriod | ||
| 454 | - [Documentation] Очикування статусу закупівлі завершення кваліфікації | ||
| 455 | - | ||
| 456 | - Reload Page | ||
| 457 | - ${return_value} = Get text ${tender_status_value_locator} | ||
| 458 | - Log Many CAT ${return_value} | ||
| 459 | - Page Should Contain Element ${tender_status_active_qualification_value_locator} | ||
| 460 | - | ||
| 461 | -Wait For QualificationsPeriodEnd | ||
| 462 | - [Documentation] Очикування дати завершення кваліфікації закупівлі | ||
| 463 | - | ||
| 464 | - Reload Page | ||
| 465 | - ${complaintPeriod} = get value by locator on opened page ${tender_qualificationPeriod_endDate_value_locator} | ||
| 466 | - Log Many CAT ${complaintPeriod} | ||
| 467 | - Run Keyword If '${complaintPeriod}' == '' input text to exist visible input ${contract_contractform_date_start_input_locator} ${date_start} | ||
| 468 | - :FOR ${INDEX} IN RANGE 1 60 | ||
| 469 | - \ Run Keyword If '${complaintPeriod}' != '' Exit For Loop | ||
| 470 | - \ Reload Page | ||
| 471 | - \ ${complaintPeriod} = get value by locator on opened page ${tender_qualificationPeriod_endDate_value_locator} | ||
| 472 | - | ||
| 473 | -Отримати інформацію із contracts[0].status | ||
| 474 | - [Documentation] Отримати значення поля contracts[0].status | ||
| 475 | - | ||
| 476 | -# ${tmp} = get value by locator on opened page ${tender_contracts_0_status_value_locator} | ||
| 477 | -# ${return_value} = Set Variable If '${tmp}' in 'Підписаний Новий' active other | ||
| 478 | - Run Keyword If '${TEST_NAME}' == 'Відображення статусу підписаної угоди з постачальником переговорної процедури' Wait Until Keyword Succeeds 800 s 20 s Wait For contractactive | ||
| 479 | - Run Keyword If '${TEST_NAME}' == 'Відображення статусу підписаної угоди з постачальником звіту про укладений договір' Wait Until Keyword Succeeds 800 s 20 s Wait For contractactive | ||
| 480 | - Run Keyword If '${TEST_NAME}' == 'Відображення статусу підписаної угоди з постачальником закупівлі' Wait Until Keyword Succeeds 800 s 20 s Wait For contractactive | ||
| 481 | - ${return_value} = get value by locator on opened page ${tender_contracts_0_status_value_locator} | ||
| 482 | - [return] ${return_value} | ||
| 483 | - | ||
| 484 | -Wait For contractactive | ||
| 485 | - [Documentation] Очикування статусу закупівлі початку подачи пропозицій | ||
| 486 | - | ||
| 487 | - Reload Page | ||
| 488 | - ${return_value} = get value by locator on opened page ${tender_contracts_0_status_value_locator} | ||
| 489 | - Page Should Contain Element ${tender_contracts_status_active_value_locator} | ||
| 490 | - | ||
| 491 | -Отримати інформацію із awards.complaintPeriod.endDate | ||
| 492 | - [Documentation] Отримати значення поля awards.complaintPeriod.endDate | ||
| 493 | - | ||
| 494 | - run keyword and ignore error Wait Until Keyword Succeeds 600 s 30 s Wait For complaintPeriodendDate | ||
| 495 | - ${return_value} = get value by locator on opened page ${tender_awards_complaintPeriod_endDate_value_locator} | ||
| 496 | -# ${return_value} = run keyword if '${mode}' in 'negotiation' get value by locator on opened page ${tender_awards_negotiation_complaintPeriod_endDate_value_locator} | ||
| 497 | -# ... ELSE get value by locator on opened page ${tender_awards_complaintPeriod_endDate_value_locator} | ||
| 498 | -# ${return_value} = run keyword if '${mode}' in 'negotiation' parse_complaintPeriod_date ${return_value} | ||
| 499 | -# ... ELSE set variable ${return_value} | ||
| 500 | - [return] ${return_value} | ||
| 501 | - | ||
| 502 | -Отримати інформацію із complaintPeriod.endDate | ||
| 503 | - [Documentation] Отримати значення поля complaintPeriod.endDate | ||
| 504 | - | ||
| 505 | - ${return_value} = get value by locator on opened page ${tender_complaintPeriod_endDate_value_locator} | ||
| 506 | - [return] ${return_value} | ||
| 507 | - | ||
| 508 | -Wait For complaintPeriodendDate | ||
| 509 | - [Documentation] Очикування появи дати завершення подачи скарг на кваліфікацію закупівлі в belowThreshold та below_funders | ||
| 510 | - | ||
| 511 | - reload page | ||
| 512 | - ${complaintPeriod} = get value by locator on opened page ${tender_awards_complaintPeriod_endDate_value_locator} | ||
| 513 | - :FOR ${INDEX} IN RANGE 1 60 | ||
| 514 | - \ Run Keyword If '${complaintPeriod}' != '' Exit For Loop | ||
| 515 | - \ Reload Page | ||
| 516 | - \ ${complaintPeriod} = get value by locator on opened page ${tender_awards_complaintPeriod_endDate_value_locator} | ||
| 517 | - | ||
| 518 | -Отримати інформацію із minimalStep.amount | ||
| 519 | - [Documentation] Отримати значення поля minimalStep.amount для тендера tender_uaid. | ||
| 520 | - | ||
| 521 | -# ${tender_lot_minimal_step_amount_value_locator} = replace string ${tender_lot_minimal_step_amount_value_locator_tpl} %lot_id% ${lot_id} | ||
| 522 | - ${return_value} = run keyword if ${number_of_lots} > 0 get value by locator on opened page ${tender_lot_minimal_step_amount_value_locator} ${tender_lot_minimal_step_amount_value_type} | ||
| 523 | - ... ELSE get value by locator on opened page ${tender_minimalStep_amount_value_locator} ${tender_lot_minimal_step_amount_value_type} | ||
| 524 | - [return] ${return_value} | ||
| 525 | - | ||
| 526 | -Отримати інформацію із awards[0].documents[0].title | ||
| 527 | - [Documentation] Отримати значення поля minimalStep.amount для тендера tender_uaid. | ||
| 528 | - | ||
| 529 | -# ${tender_lot_minimal_step_amount_value_locator} = replace string ${tender_lot_minimal_step_amount_value_locator_tpl} %lot_id% ${lot_id} | ||
| 530 | -# click visible element ${tender_awards_negotiation_documents_btn_locator} | ||
| 531 | - open popup by btn locator ${tender_awards_negotiation_documents_btn_locator} | ||
| 532 | - ${return_value} = get value by locator on opened page ${tender_awards_0_documents_0_title_value_locator} | ||
| 533 | - click visible element ${tender_awards_negotiation_documents_close_btn_locator} | ||
| 534 | - [return] ${return_value} | ||
| 535 | - | ||
| 536 | -Wait For stage2button | ||
| 537 | - [Documentation] Очикування кнопки переводу до другого етапу | ||
| 538 | - | ||
| 539 | - Reload Page | ||
| 540 | - Page Should Contain Element ${tender_stage2_open_btn_locator} | ||
| 541 | - | ||
| 542 | -Отримати інформацію із qualificationPeriod.endDate | ||
| 543 | - [Documentation] Отримати значення поля qualificationPeriod.endDate | ||
| 544 | - | ||
| 545 | -# run keyword and ignore error run keyword if '${mode}' in 'belowThreshold below_funders' Wait Until Keyword Succeeds 600 s 30 s Wait For complaintPeriodendDate | ||
| 546 | -# run keyword and ignore error Wait Until Keyword Succeeds 600 s 30 s Wait For complaintPeriodendDate | ||
| 547 | - ${return_value} = get value by locator on opened page ${tender_qualificationPeriod_endDate_value_locator} | ||
| 548 | - ${return_value} = parse_complaintPeriod_date ${return_value} | ||
| 549 | - [return] ${return_value} | ||
| 550 | - | ||
| 551 | -wait for agreements status active | ||
| 552 | - [Documentation] Очикування статусу agreements active | ||
| 553 | - | ||
| 554 | - Reload Page | ||
| 555 | - ${return_value} = get value by locator on opened page ${tender_agreements_0_status_value_locator} | ||
| 556 | - Page Should Contain Element ${tender_agreements_status_active_value_locator} | ||
| 557 | - | ||
| 558 | -Wait date | ||
| 559 | - [Arguments] ${date} | ||
| 560 | - ${sleep}= wait_to_date ${date} | ||
| 561 | - Run Keyword If ${sleep} > 0 Sleep ${sleep} | ||
| 562 | - | ||
| 563 | - | ||
| 564 | - |
playtender_viewer_variables.robot
deleted
100644 → 0
| 1 | -*** Variables *** | ||
| 2 | - | ||
| 3 | -#features | ||
| 4 | -${tender_features_title_value_locator_tpl} = jquery=#lots .tabs__pane--visible .feature-list-wrapper [data-title*="%feature_id%"] .hidden.info-wrapper .title | ||
| 5 | -${tender_features_description_value_locator_tpl} = jquery=#lots .tabs__pane--visible .feature-list-wrapper [data-title*="%feature_id%"] .hidden.info-wrapper .description | ||
| 6 | -${tender_features_featureof_value_locator_tpl} = jquery=#lots .tabs__pane--visible .feature-list-wrapper [data-title*="%feature_id%"] .hidden.info-wrapper .featureOf | ||
| 7 | -${tender_features_new_value_locator_tpl} = jquery=.info-row.features div[data-title*="%feature_id%"] | ||
| 8 | - | ||
| 9 | - | ||
| 10 | -#item view | ||
| 11 | -${tender_items_new_value_locator_tpl} = jquery=.item-item-wrapper[data-title*="%item_id%"] | ||
| 12 | -${tender_items_description_value_locator_tpl} = jquery=#lots .tabs__pane--visible .item-item-wrapper[data-title*="%item_id%"] div.textvalue | ||
| 13 | -${tender_items_no_lot_description_value_locator_tpl} = jquery=.pseudo-table .item-item-wrapper[data-title*="%item_id%"] div.textvalue | ||
| 14 | -${tender_items_quantity_value_locator_tpl} = jquery=.tabs__content .tabs__pane--visible .item-item-wrapper[data-title*="%item_id%"] .item-info-wrapper.hidden.info-wrapper .quantity-source | ||
| 15 | -${tender_items_quantity_value_type} = float | ||
| 16 | -${tender_items_unit_title_value_locator_tpl} = jquery=.tabs__content .tabs__pane--visible .item-item-wrapper[data-title*="%item_id%"] .item-info-wrapper.hidden.info-wrapper .unit-title-source | ||
| 17 | -${tender_items_unit_code_value_locator_tpl} = jquery=.tabs__content .tabs__pane--visible .item-item-wrapper[data-title*="%item_id%"] .item-info-wrapper.hidden.info-wrapper .unit-code-source | ||
| 18 | -${tender_items_classification_scheme_value_locator_tpl} = jquery=.tabs__content .tabs__pane--visible .item-item-wrapper[data-title*="%item_id%"] .item-info-wrapper.hidden.info-wrapper .main-classification-scheme | ||
| 19 | -${tender_items_classification_code_value_locator_tpl} = jquery=.tabs__content .tabs__pane--visible .item-item-wrapper[data-title*="%item_id%"] .item-info-wrapper.hidden.info-wrapper .main-classification-code | ||
| 20 | -${tender_items_classification_description_value_locator_tpl} = jquery=.tabs__content .tabs__pane--visible .item-item-wrapper[data-title*="%item_id%"] .item-info-wrapper.hidden.info-wrapper .main-classification-description | ||
| 21 | -${tender_items_additional_classification_scheme_value_locator_tpl} = jquery=.tabs__content .tabs__pane--visible .item-item-wrapper[data-title*="%item_id%"] .item-info-wrapper.hidden.info-wrapper .additional-classification-scheme | ||
| 22 | -${tender_items_additional_classification_code_value_locator_tpl} = jquery=.tabs__content .tabs__pane--visible .item-item-wrapper[data-title*="%item_id%"] .item-info-wrapper.hidden.info-wrapper .additional-classification-code | ||
| 23 | -${tender_items_additional_classification_description_value_locator_tpl} = jquery=.tabs__content .tabs__pane--visible .item-item-wrapper[data-title*="%item_id%"] .item-info-wrapper.hidden.info-wrapper .additional-classification-description | ||
| 24 | -${tender_items_delivery_country_value_locator_tpl} = jquery=.tabs__content .tabs__pane--visible .item-item-wrapper[data-title*="%item_id%"] .item-info-wrapper.hidden.info-wrapper .delivery-country | ||
| 25 | -${tender_items_delivery_region_id_value_locator_tpl} = jquery=.tabs__content .tabs__pane--visible .item-item-wrapper[data-title*="%item_id%"] .item-info-wrapper.hidden.info-wrapper .delivery-region | ||
| 26 | -${tender_items_delivery_postal_code_value_locator_tpl} = jquery=.tabs__content .tabs__pane--visible .item-item-wrapper[data-title*="%item_id%"] .item-info-wrapper.hidden.info-wrapper .delivery-postalcode | ||
| 27 | -${tender_items_delivery_locality_value_locator_tpl} = jquery=.tabs__content .tabs__pane--visible .item-item-wrapper[data-title*="%item_id%"] .item-info-wrapper.hidden.info-wrapper .delivery-locality | ||
| 28 | -${tender_items_delivery_street_address_value_locator_tpl} = jquery=.tabs__content .tabs__pane--visible .item-item-wrapper[data-title*="%item_id%"] .item-info-wrapper.hidden.info-wrapper .delivery-street-address | ||
| 29 | -${tender_items_delivery_start_date_value_locator_tpl} = jquery=.tabs__content .tabs__pane--visible .item-item-wrapper[data-title*="%item_id%"] .item-info-wrapper.hidden.info-wrapper .delivery-start-date-source | ||
| 30 | -${tender_items_delivery_end_date_value_locator_tpl} = jquery=.tabs__content .tabs__pane--visible .item-item-wrapper[data-title*="%item_id%"] .item-info-wrapper.hidden.info-wrapper .delivery-end-date-source | ||
| 31 | -${tender_items_delivery_latitude_value_locator_tpl} = jquery=.tabs__content .tabs__pane--visible .item-item-wrapper[data-title*="%item_id%"] .item-info-wrapper.hidden.info-wrapper .delivery-latitude | ||
| 32 | -${tender_items_delivery_longitude_value_locator_tpl} = jquery=.tabs__content .tabs__pane--visible .item-item-wrapper[data-title*="%item_id%"] .item-info-wrapper.hidden.info-wrapper .delivery-longitude | ||
| 33 | - | ||
| 34 | -#${tender_item_description_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .textvalue.hidden | ||
| 35 | -${tender_item_description_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .description | ||
| 36 | -${tender_item_description_ru_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper [id$='-description_ru'] | ||
| 37 | -${tender_item_description_en_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper [id$='-description_en'] | ||
| 38 | -${tender_item_quantity_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .quantity-source | ||
| 39 | -${tender_item_quantity_value_type} = float | ||
| 40 | -${tender_item_unit_title_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .unit-title-source | ||
| 41 | -${tender_item_unit_code_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .unit-code-source | ||
| 42 | -${tender_item_classification_scheme_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .main-classification-scheme | ||
| 43 | -${tender_item_classification_code_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .main-classification-code | ||
| 44 | -${tender_item_classification_description_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .main-classification-description | ||
| 45 | -${tender_item_additional_classification_scheme_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .additional-classification-scheme | ||
| 46 | -${tender_item_additional_classification_code_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .additional-classification-code | ||
| 47 | -${tender_item_additional_classification_description_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .additional-classification-description | ||
| 48 | -${tender_item_delivery_region_id_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .delivery-country | ||
| 49 | -${tender_item_delivery_postal_code_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .delivery-postalcode | ||
| 50 | -${tender_item_delivery_locality_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .delivery-locality | ||
| 51 | -${tender_item_delivery_street_address_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .delivery-street-address | ||
| 52 | -${tender_item_delivery_start_date_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .delivery-start-date-source | ||
| 53 | -${tender_item_delivery_end_date_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .delivery-end-date-source | ||
| 54 | -${tender_item_delivery_latitude_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .delivery-latitude | ||
| 55 | -${tender_item_delivery_longitude_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .delivery-longitude | ||
| 56 | - | ||
| 57 | -${tender_lot_item_description_value_locator} = jquery=.tabs__content .tabs__pane--visible .item-item-wrapper div.textvalue | ||
| 58 | -${tender_lot_item_quantity_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .quantity-source | ||
| 59 | -${tender_lot_item_quantity_value_type} = float | ||
| 60 | -${tender_lot_item_unit_title_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .unit-title-source | ||
| 61 | -${tender_lot_item_unit_code_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .unit-code-source | ||
| 62 | -${tender_lot_item_classification_scheme_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .main-classification-scheme | ||
| 63 | -${tender_lot_item_classification_code_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .main-classification-code | ||
| 64 | -${tender_lot_item_classification_description_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .main-classification-description | ||
| 65 | -${tender_lot_item_additional_classification_scheme_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .additional-classification-scheme | ||
| 66 | -${tender_lot_item_additional_classification_code_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .additional-classification-code | ||
| 67 | -${tender_lot_item_additional_classification_description_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .additional-classification-description | ||
| 68 | -${tender_lot_item_delivery_region_id_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .delivery-country | ||
| 69 | -${tender_lot_item_delivery_postal_code_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .delivery-postalcode | ||
| 70 | -${tender_lot_item_delivery_locality_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .delivery-locality | ||
| 71 | -${tender_lot_item_delivery_street_address_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .delivery-street-address | ||
| 72 | -${tender_lot_item_delivery_start_date_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .delivery-start-date-source | ||
| 73 | -${tender_lot_item_delivery_end_date_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .delivery-end-date-source | ||
| 74 | -${tender_lot_item_delivery_latitude_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .delivery-latitude | ||
| 75 | -${tender_lot_item_delivery_longitude_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(0) .item-info-wrapper.hidden.info-wrapper .delivery-longitude | ||
| 76 | - | ||
| 77 | -${tender_procurementMethodType_value_locator} = jquery=#aside-part-pjax .aside__inner .opprocurementmethodtype | ||
| 78 | -${tender_complaintPeriod_endDate_value_locator} = jquery=#tender-general-info .info-row.complaint-period .end-date | ||
| 79 | -${tender_qualifications_0_status_value_locator} = jquery=.pjax-container .pseudo-table__row[qualification-index="0"] .qualification-info-wrapper .status-source | ||
| 80 | -${tender_qualifications_1_status_value_locator} = jquery=.pjax-container .pseudo-table__row[qualification-index="1"] .qualification-info-wrapper .status-source | ||
| 81 | - | ||
| 82 | -#lots | ||
| 83 | -${tender_lots_0_title_value_locator} = jquery=#lots .tabs__list .tabs__item--active .tabs__tab-big-text | ||
| 84 | -${tender_lots_0_description_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible > span div:nth(1) | ||
| 85 | -${tender_lots_title_value_locator_tpl} = jquery=#lots .tabs__content .tabs__pane--visible > span div.textvalue:first | ||
| 86 | -${tender_lots_description_value_locator_tpl} = jquery=#lots .tabs__content .tabs__pane--visible > span div.textvalue.hidden | ||
| 87 | -${tender_lots_value_amount_value_locator_tpl} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden | ||
| 88 | -${tender_lots_value_amount_value_type} = float | ||
| 89 | -${tender_lots_value_currency_value_locator_tpl} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden | ||
| 90 | -${tender_lots_value_value_added_tax_included_value_locator_tpl} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden | ||
| 91 | -${tender_lots_minimal_step_amount_value_locator_tpl} = jquery=#lots .tabs__content .tabs__pane--visible .minimal-step-source.hidden | ||
| 92 | -${tender_lots_minimal_step_amount_value_type} = float | ||
| 93 | -${tender_lots_minimal_step_amount_currency_value_locator_tpl} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden | ||
| 94 | -${tender_lots_minimal_step_amount_value_added_tax_included_value_locator_tpl} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden | ||
| 95 | - | ||
| 96 | -#docs and auction | ||
| 97 | -${tender_new_doc_locator_tpl} = jquery=.docs__list .docs__item.js-item .doc__title:contains("%doc_id%") | ||
| 98 | -${tender_new_doc_title_locator_tpl} = $('.docs__list .docs__item.js-item:contains("%doc_id%")').attr("data-title") | ||
| 99 | -#${tender_new_doc_locator_tpl} = jquery=.docs__list .docs__item.js-item:first .doc__title:contains("%doc_id%") | ||
| 100 | -${tender_auction_locator} = jquery=#auction-info | ||
| 101 | -${tender_auction_input_locator} = $('#auction-info a[href*="https://auction-staging"]').attr("href") | ||
| 102 | -${tender_auction_belowThreshold_locator} = jquery=#aside-part-pjax a[href*="https://auction-staging"] | ||
| 103 | -${tender_auction_belowThreshold_input_locator} = jquery=#aside-part-pjax a[href*="https://auction-staging"] | ||
| 104 | -${tender_auction_belowThreshold_value_locator} = $('#aside-part-pjax a[href*="https://auction-staging"]').attr("href") | ||
| 105 | -${tender_auctionPeriod_startDate_value_locator} = jquery=#tender-general-info .auction-start-date.hidden | ||
| 106 | -${tender_auctionPeriod_endDate_value_locator} = jquery=#tender-general-info .auction-end-date.hidden | ||
| 107 | -${tender_lots_0_auctionPeriod_endDate_value_locator} = jquery=#tender-general-info .auction-end-date.hidden | ||
| 108 | - | ||
| 109 | - | ||
| 110 | -#wait for status | ||
| 111 | -${tender_status_active_tendering_value_locator} = xpath=//*[contains(text(), "active.tendering")] | ||
| 112 | -${tender_status_active_auction_value_locator} = xpath=//*[contains(text(), "active.auction")] | ||
| 113 | -${tender_status_active_pre_qualification_value_locator} = xpath=//*[contains(text(), "active.pre-qualification")] | ||
| 114 | -${tender_status_complete_value_locator} = jquery=#aside-part-pjax .hidden.opstatus:contains(complete) | ||
| 115 | -${tender_status_active_stage2_pending_value_locator} = xpath=//*[contains(text(), "active.stage2.pending")] | ||
| 116 | -${tender_status_active_stage2_waiting_value_locator} = xpath=//*[contains(text(), "active.stage2.waiting")] | ||
| 117 | -${tender_status_active_complete_value_locator} = jquery=#aside-part-pjax .hidden.opstatus:contains(complete) | ||
| 118 | -${tender_status_active_qualification_value_locator} = xpath=//*[contains(text(), "active.qualification")] | ||
| 119 | - | ||
| 120 | -#funders | ||
| 121 | -${tender_funders_0_name_value_locator} = jquery=#tender-general-info .funder-organization .value .popup__inner .definitions__list .organization_name.hidden .definitions__value | ||
| 122 | -${tender_funders_0_address_countryName_value_locator} = jquery=#tender-general-info .funder-organization .value .popup__inner .definitions__list .country.hidden .definitions__value | ||
| 123 | -${tender_funders_0_address_locality_value_locator} = jquery=#tender-general-info .funder-organization .value .popup__inner .definitions__list .locality.hidden .definitions__value | ||
| 124 | -${tender_funders_0_address_postalCode_value_locator} = jquery=#tender-general-info .funder-organization .value .popup__inner .definitions__list .postcode.hidden .definitions__value | ||
| 125 | -${tender_funders_0_address_region_value_locator} = jquery=#tender-general-info .funder-organization .value .popup__inner .definitions__list .region.hidden .definitions__value | ||
| 126 | -${tender_funders_0_address_streetAddress_value_locator} = jquery=#tender-general-info .funder-organization .value .popup__inner .definitions__list .street-address.hidden .definitions__value | ||
| 127 | -${tender_funders_0_identifier_id_value_locator} = jquery=#tender-general-info .funder-organization .value .popup__inner .definitions__list .identifier_id .definitions__value | ||
| 128 | -${tender_funders_0_identifier_legalName_value_locator} = jquery=#tender-general-info .funder-organization .value .popup__inner .definitions__list .identifier_legal_name.hidden .definitions__value | ||
| 129 | -${tender_funders_0_identifier_scheme_value_locator} = jquery=#tender-general-info .funder-organization .value .popup__inner .definitions__list .identifier_scheme.hidden .definitions__value | ||
| 130 | - | ||
| 131 | -#negotiation | ||
| 132 | -#${tender_procuringEntity_contactPoint_name_value_locator} = jquery=#tender-general-info .organization .value .popup__inner .definitions__list .contact-point-name.hidden .definitions__value | ||
| 133 | -#${tender_procuringEntity_contactPoint_telephone_value_locator} = jquery=#tender-general-info .organization .value .popup__inner .definitions__list .contact-point-phone.hidden .definitions__value | ||
| 134 | -#${tender_procuringEntity_identifier_legalName_value_locator} = jquery=#tender-general-info .organization .value .popup__inner .definitions__list .identifier_legal_name.hidden .definitions__value | ||
| 135 | -#${tender_procuringEntity_identifier_scheme_value_locator} = jquery=#tender-general-info .organization .value .popup__inner .definitions__list .identifier_scheme.hidden .definitions__value | ||
| 136 | -${tender_procuringEntity_contactPoint_name_value_locator} = jquery=#w0tooltip-content > ul > li.definitions__item.contact-point-name.hidden .definitions__value | ||
| 137 | -${tender_procuringEntity_contactPoint_telephone_value_locator} = jquery=#w0tooltip-content > ul > li.definitions__item.contact-point-phone.hidden .definitions__value | ||
| 138 | -${tender_procuringEntity_identifier_legalName_value_locator} = jquery=#w0tooltip-content > ul > li.definitions__item.identifier_legal_name.hidden .definitions__value | ||
| 139 | -${tender_procuringEntity_identifier_scheme_value_locator} = jquery=#w0tooltip-content > ul > li.definitions__item.identifier_scheme.hidden .definitions__value | ||
| 140 | - | ||
| 141 | -${tender_procuringEntity_organization_name_value_locator} = jquery=#w0tooltip-content > ul > li.definitions__item.organization-name.hidden .definitions__value | ||
| 142 | -${tender_procuringEntity_address_countryName_value_locator} = jquery=#w0tooltip-content > ul > li.definitions__item.country.hidden .definitions__value | ||
| 143 | -${tender_procuringEntity_address_locality_value_locator} = jquery=#w0tooltip-content > ul > li.definitions__item.locality.hidden .definitions__value | ||
| 144 | -${tender_procuringEntity_address_postalCode_value_locator} = jquery=#w0tooltip-content > ul > li.definitions__item.postcode.hidden .definitions__value | ||
| 145 | -${tender_procuringEntity_address_region_value_locator} = jquery=#w0tooltip-content > ul > li.definitions__item.region.hidden .definitions__value | ||
| 146 | -${tender_procuringEntity_address_streetAddress_value_locator} = jquery=#w0tooltip-content > ul > li.definitions__item.street-address.hidden .definitions__value | ||
| 147 | -${tender_procuringEntity_contactPoint_url_value_locator} = jquery=#w0tooltip-content > ul > li.definitions__item.url .definitions__value | ||
| 148 | -${tender_procuringEntity_identifier_id_value_locator} = jquery=#w0tooltip-content > ul > li.definitions__item.identifier_id.hidden .definitions__value | ||
| 149 | - | ||
| 150 | -${tender_items_1_description_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(1) .item-info-wrapper.hidden.info-wrapper .description | ||
| 151 | -${tender_items_1_quantity_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(1) .item-info-wrapper.hidden.info-wrapper .quantity-source | ||
| 152 | -${tender_items_1_quantity_value_type} = float | ||
| 153 | -${tender_items_1_unit_title_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(1) .item-info-wrapper.hidden.info-wrapper .unit-title-source | ||
| 154 | -${tender_items_1_unit_code_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(1) .item-info-wrapper.hidden.info-wrapper .unit-code-source | ||
| 155 | -${tender_items_1_classification_scheme_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(1) .item-info-wrapper.hidden.info-wrapper .main-classification-scheme | ||
| 156 | -${tender_items_1_classification_code_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(1) .item-info-wrapper.hidden.info-wrapper .main-classification-code | ||
| 157 | -${tender_items_1_classification_description_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(1) .item-info-wrapper.hidden.info-wrapper .main-classification-description | ||
| 158 | -${tender_items_1_additional_classification_scheme_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(1) .item-info-wrapper.hidden.info-wrapper .additional-classification-scheme | ||
| 159 | -${tender_items_1_additional_classification_code_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(1) .item-info-wrapper.hidden.info-wrapper .additional-classification-code | ||
| 160 | -${tender_items_1_additional_classification_description_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(1) .item-info-wrapper.hidden.info-wrapper .additional-classification-description | ||
| 161 | -${tender_items_1_delivery_country_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(1) .item-info-wrapper.hidden.info-wrapper .delivery-country | ||
| 162 | -${tender_items_1_delivery_region_id_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(1) .item-info-wrapper.hidden.info-wrapper .delivery-region | ||
| 163 | -${tender_items_1_delivery_postal_code_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(1) .item-info-wrapper.hidden.info-wrapper .delivery-postalcode | ||
| 164 | -${tender_items_1_delivery_locality_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(1) .item-info-wrapper.hidden.info-wrapper .delivery-locality | ||
| 165 | -${tender_items_1_delivery_street_address_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(1) .item-info-wrapper.hidden.info-wrapper .delivery-street-address | ||
| 166 | -${tender_items_1_delivery_start_date_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(1) .item-info-wrapper.hidden.info-wrapper .delivery-start-date-source | ||
| 167 | -${tender_items_1_delivery_end_date_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(1) .item-info-wrapper.hidden.info-wrapper .delivery-end-date-source | ||
| 168 | -${tender_items_1_delivery_latitude_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(1) .item-info-wrapper.hidden.info-wrapper .delivery-latitude | ||
| 169 | -${tender_items_1_delivery_longitude_value_locator} = jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(1) .item-info-wrapper.hidden.info-wrapper .delivery-longitude | ||
| 170 | - | ||
| 171 | - | ||
| 172 | -${tender_awards_0_suppliers_0_contactPoint_telephone_value_locator} = jquery=#bids-pjax .hint__popup_organization_info .definitions__list .contact-point-phone.hidden .definitions__value | ||
| 173 | -${tender_awards_0_suppliers_0_contactPoint_name_value_locator} = jquery=#bids-pjax .hint__popup_organization_info .definitions__list .contact-point-name.hidden .definitions__value | ||
| 174 | -${tender_awards_0_suppliers_0_contactPoint_email_value_locator} = jquery=#bids-pjax .hint__popup_organization_info .definitions__list .contact-point-email.hidden .definitions__value | ||
| 175 | -${tender_awards_0_suppliers_0_identifier_scheme_value_locator} = jquery=#bids-pjax .hint__popup_organization_info .definitions__list .identifier_scheme.hidden .definitions__value | ||
| 176 | -${tender_awards_0_suppliers_0_identifier_legalName_value_locator} = jquery=#bids-pjax .hint__popup_organization_info .definitions__list .identifier_legal_name.hidden .definitions__value | ||
| 177 | -${tender_awards_0_suppliers_0_address_countryName_value_locator} = jquery=#bids-pjax .hint__popup_organization_info .definitions__list .country.hidden .definitions__value | ||
| 178 | -${tender_awards_0_suppliers_0_address_locality_value_locator} = jquery=#bids-pjax .hint__popup_organization_info .definitions__list .locacity.hidden .definitions__value | ||
| 179 | -${tender_awards_0_suppliers_0_address_postalCode_value_locator} = jquery=#tender-general-info .organization .value .popup__inner .definitions__list .postcode.hidden .definitions__value | ||
| 180 | -${tender_awards_0_suppliers_0_address_region_value_locator} = jquery=#tender-general-info .organization .value .popup__inner .definitions__list .region.hidden .definitions__value | ||
| 181 | -${tender_awards_0_suppliers_0_address_streetAddress_value_locator} = jquery=#tender-general-info .organization .value .popup__inner .definitions__list .street-address.hidden .definitions__value | ||
| 182 | - | ||
| 183 | -#esco | ||
| 184 | -${tender_NBUdiscountRate_value_locator} = jquery=#tender-general-info .nbu-discount-rate-source.hidden | ||
| 185 | -${tender_NBUdiscountRate_value_type} = float | ||
| 186 | -${tender_minimalStepPercentage_value_locator} = jquery=#tender-general-info .minimal-step-percentage-source.hidden | ||
| 187 | -${tender_minimalStepPercentage_value_type} = float | ||
| 188 | -${tender_fundingKind_value_locator} = jquery=#tender-general-info .funding-kind-source.hidden | ||
| 189 | -${tender_yearlyPaymentsPercentageRange_value_locator} = jquery=#tender-general-info .yearly-payments-percentage-range-source.hidden | ||
| 190 | -${tender_yearlyPaymentsPercentageRange_value_type} = float | ||
| 191 | -${tender_lots_0_minimalStepPercentage_value_locator} = jquery=#tender-general-info .minimal-step-percentage-source.hidden | ||
| 192 | -${tender_lots_0_minimalStepPercentage_value_type} = float | ||
| 193 | -${tender_lots_0_yearlyPaymentsPercentageRange_value_locator} = jquery=#tender-general-info .yearly-payments-percentage-range-source.hidden | ||
| 194 | -${tender_lots_0_yearlyPaymentsPercentageRange_value_type} = float | ||
| 195 | - | ||
| 196 | -#awards | ||
| 197 | -${tender_awards_0_complaintPeriod_endDate_value_locator} = jquery=#tender-general-info .complaint-period .value .end-date | ||
| 198 | -${tender_awards_1_complaintPeriod_endDate_value_locator} = jquery=#tender-general-info .complaint-period .value .end-date | ||
| 199 | -${tender_awards_complaintPeriod_endDate_value_locator} = jquery=.award-info-wrapper.hidden .complaint-period-end-date | ||
| 200 | -${tender_awards_negotiation_complaintPeriod_endDate_value_locator} = jquery=#bids-pjax .pseudo-table__cell .end-date | ||
| 201 | -#${tender_awards_complaintPeriod_endDate_value_locator} = jquery=#tender-contract-form .js-award-complaint-period-wrapper .end-date | ||
| 202 | -${tender_awards_negotiation_documents_btn_locator} = jquery=[href*="/tender/view-qualification-result-documents?award"] | ||
| 203 | -${tender_awards_negotiation_documents_close_btn_locator} = jquery=.modal.fade.fancybox-content .modal-footer .btn.btn-default | ||
| 204 | -${tender_awards_0_documents_0_title_value_locator} = jquery=.doc__table_title a[href*="https://public-docs-staging.prozorro.gov.ua"] | ||
| 205 | -${tender_awards_0_status_value_locator} = jquery=.award-info-wrapper.hidden .status-source | ||
| 206 | - | ||
| 207 | -#status contract | ||
| 208 | -#${tender_contracts_0_status_value_locator} = jquery=#contracts-pjax .tabs__pane--visible .definitions__item--offset-big .badge__text | ||
| 209 | -${tender_contracts_0_status_value_locator} = jquery=#contracts-pjax .tabs__pane--visible .status-source.hidden | ||
| 210 | -${tender_contracts_status_active_value_locator} = jquery=#contracts-pjax .tabs__pane--visible .status-source.hidden:contains(active) | ||
| 211 | - | ||
| 212 | -${wait_msg_contract} = Завантаження контракту буде | ||
| 213 | - | ||
| 214 | -#framework_agreement | ||
| 215 | -${tender_maxAwardsCount_value_locator} = jquery=#tender-general-info .max-award-count.hidden | ||
| 216 | -${tender_maxAwardsCount_value_type} = integer | ||
| 217 | -${tender_agreementDuration_value_locator} = jquery=#tender-general-info .agreement-duration | ||
| 218 | -${tender_agreements_0_status_value_locator} = jquery=.tabs__pane--visible[id*="tab-agreement-contract"] .status-source.hidden | ||
| 219 | -${tender_agreements_status_active_value_locator} = jquery=.tabs__pane--visible[id*="tab-agreement-contract"] .status-source.hidden:contains(active) | ||
| 220 | - | ||
| 221 | -${tender_agreements_0_agreementID_value_locator} = jquery=#agreement-contracts-list .agreement-info-wrapper.info-wrapper .agreement-id .value |
Please
register
or
login
to post a comment