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