Commit db621957234dbc547c366ca3fa0505566671da81
1 parent
4d58a5c2
add question\answer create claim add bid
Showing
5 changed files
with
424 additions
and
13 deletions
| @@ -140,3 +140,111 @@ Resource playtender_tende | @@ -140,3 +140,111 @@ Resource playtender_tende | ||
| 140 | open tender page by uaid ${tender_uaid} | 140 | open tender page by uaid ${tender_uaid} |
| 141 | ${value} = get tender field value by name ${field_name} | 141 | ${value} = get tender field value by name ${field_name} |
| 142 | [Return] ${value} | 142 | [Return] ${value} |
| 143 | + | ||
| 144 | +Внести зміни в тендер | ||
| 145 | + [Arguments] ${username} ${tender_uaid} ${fieldname} ${fieldvalue} | ||
| 146 | + [Documentation] Змінити значення поля fieldname на fieldvalue для плана із зазначеним plan_uaid. | ||
| 147 | + | ||
| 148 | + ${tender_data} = generate dictionary from field path and value ${fieldname} ${fieldvalue} | ||
| 149 | + open tender form by uaid ${tender_uaid} | ||
| 150 | + fill tender form ${tender_data} | ||
| 151 | + save tender form and wait synchronization | ||
| 152 | + | ||
| 153 | +Додати предмет закупівлі | ||
| 154 | + [Arguments] ${username} ${tender_uaid} ${item_data} | ||
| 155 | + | ||
| 156 | + open tender form by uaid ${tender_uaid} | ||
| 157 | + ${items} = create list ${item_data} | ||
| 158 | + fill tender form items ${items} | ||
| 159 | + save tender form and wait synchronization | ||
| 160 | + | ||
| 161 | +Завантажити документ | ||
| 162 | + [Arguments] ${username} ${filepath} ${tender_uaid} | ||
| 163 | + [Documentation] Завантажити документ, який знаходиться по шляху filepath, до тендера tender_uaid. | ||
| 164 | + | ||
| 165 | + open tender form by uaid ${tender_uaid} | ||
| 166 | + add document in tender ${filepath} | ||
| 167 | + save tender form and wait synchronization | ||
| 168 | + | ||
| 169 | +Завантажити документ в лот | ||
| 170 | + [Arguments] ${username} ${filepath} ${tender_uaid} ${lot_id} | ||
| 171 | + [Documentation] Завантажити документ, який знаходиться по шляху filepath, до лоту з lot_id в описі для тендера tender_uaid. | ||
| 172 | + | ||
| 173 | + open tender form by uaid ${tender_uaid} | ||
| 174 | + add document in lot ${filepath} ${lot_id} | ||
| 175 | + save tender form and wait synchronization | ||
| 176 | + | ||
| 177 | +Відповісти на запитання | ||
| 178 | + [Arguments] ${username} ${tender_uaid} ${answer_data} ${question_id} | ||
| 179 | + [Documentation] Дати відповідь answer_data на запитання з question_id в описі для тендера tender_uaid. | ||
| 180 | + | ||
| 181 | + open tender form by uaid ${tender_uaid} | ||
| 182 | + answer question ${answer_data} ${question_id} | ||
| 183 | +# save tender form and wait synchronization | ||
| 184 | + | ||
| 185 | +Задати запитання на предмет | ||
| 186 | + [Arguments] ${username} ${tender_uaid} ${item_id} ${question} | ||
| 187 | + [Documentation] Створити запитання з даними question до предмету з item_id в описі для тендера tender_uaid. | ||
| 188 | + | ||
| 189 | + Задати запитання ${username} ${tender_uaid} item ${item_id} ${question} | ||
| 190 | + | ||
| 191 | +Задати запитання на лот | ||
| 192 | + [Arguments] ${username} ${tender_uaid} ${lot_id } ${question} | ||
| 193 | + [Documentation] Створити запитання з даними question до лоту з lot_id в описі для тендера tender_uaid. | ||
| 194 | + | ||
| 195 | + Задати запитання ${username} ${tender_uaid} lot ${lot_id} ${question} | ||
| 196 | + | ||
| 197 | +Задати запитання на тендер | ||
| 198 | + [Arguments] ${username} ${tender_uaid} ${question} | ||
| 199 | + [Documentation] Створити запитання з даними question для тендера tender_uaid. | ||
| 200 | + | ||
| 201 | + Задати запитання ${username} ${tender_uaid} tender null ${question} | ||
| 202 | + | ||
| 203 | +Створити вимогу про виправлення умов закупівлі | ||
| 204 | + [Arguments] ${username} ${tender_uaid} ${claim} ${doc_name} | ||
| 205 | + [Documentation] Створити запитання з даними question для тендера tender_uaid. | ||
| 206 | + Run Keyword And Return Створити вимогу ${username} ${tender_uaid} tender null ${claim} ${doc_name} | ||
| 207 | + | ||
| 208 | +Створити чернетку вимоги про виправлення умов закупівлі | ||
| 209 | + [Arguments] ${username} ${tender_uaid} ${claim} | ||
| 210 | + [Documentation] Створює вимогу claim про виправлення умов закупівлі у статусі claim для тендера tender_uaid. Можна створити вимогу як з документом, який знаходиться за шляхом document, так і без нього. | ||
| 211 | + Run Keyword And Return Створити вимогу ${username} ${tender_uaid} tender null ${claim} null | ||
| 212 | + | ||
| 213 | +Створити вимогу про виправлення умов лоту | ||
| 214 | + [Arguments] ${username} ${tender_uaid} ${claim} ${lot_id} ${doc_name} | ||
| 215 | + [Documentation] Створює вимогу claim про виправлення умов лоту у статусі draft для тендера tender_uaid. | ||
| 216 | + Run Keyword And Return Створити вимогу ${username} ${tender_uaid} lot ${lot_id} ${claim} ${doc_name} | ||
| 217 | + | ||
| 218 | +Створити чернетку вимоги про виправлення умов лоту | ||
| 219 | + [Arguments] ${username} ${tender_uaid} ${claim} ${lot_id} | ||
| 220 | + [Documentation] Створює вимогу claim про виправлення умов закупівлі у статусі draft для тендера tender_uaid. | ||
| 221 | + Run Keyword And Return Створити вимогу ${username} ${tender_uaid} lot ${lot_id} ${claim} null | ||
| 222 | + | ||
| 223 | +Створити вимогу про виправлення визначення переможця | ||
| 224 | + [Arguments] ${username} ${tender_uaid} ${claim} ${proposal_id} ${doc_name} | ||
| 225 | + [Documentation] Створює вимогу claim про виправлення визначення переможця під номером award_index в статусі claim для тендера tender_uaid. Можна створити вимогу як з документом, який знаходиться за шляхом document, так і без нього. | ||
| 226 | + Run Keyword And Return Створити вимогу ${username} ${tender_uaid} winner ${proposal_id} ${claim} ${doc_name} | ||
| 227 | + | ||
| 228 | +Створити чернетку вимоги про виправлення визначення переможця | ||
| 229 | + [Arguments] ${username} ${tender_uaid} ${claim} ${proposal_id} | ||
| 230 | + [Documentation] Створює вимогу claim про виправлення визначення переможця під номером award_index в статусі draft для тендера tender_uaid. | ||
| 231 | + Run Keyword And Return Створити вимогу ${username} ${tender_uaid} winner ${proposal_id} ${claim} null | ||
| 232 | + | ||
| 233 | +Подати цінову пропозицію | ||
| 234 | + [Arguments] ${username} ${tender_uaid} ${bid} ${lots_ids} ${features_ids} | ||
| 235 | + [Documentation] Подати цінову пропозицію bid для тендера tender_uaid на лоти lots_ids (якщо lots_ids != None) з неціновими показниками features_ids (якщо features_ids != None). | ||
| 236 | + | ||
| 237 | + open tender form by uaid ${tender_uaid} | ||
| 238 | + fill bid form ${tender_uaid} ${bid} ${lots_ids} ${features_ids} | ||
| 239 | + submit form and check result ${bid_form_submit_btn_locator} ${bid_form_submit_success_msg} ${tender_created_checker_element_locator} | ||
| 240 | + wait until page does not contain element with reloading ${tender_sync_element_locator} | ||
| 241 | + | ||
| 242 | +Змінити цінову пропозицію | ||
| 243 | + [Arguments] ${username} ${tender_uaid} ${fieldname} ${fieldvalue} | ||
| 244 | + [Documentation] Змінити поле fieldname на fieldvalue цінової пропозиції користувача username для тендера tender_uaid. | ||
| 245 | + | ||
| 246 | + open tender form by uaid ${tender_uaid} | ||
| 247 | + fill bid form edit ${fieldname} ${fieldvalue} | ||
| 248 | + submit form and check result ${bid_form_submit_btn_locator} ${bid_form_submit_success_msg} ${tender_created_checker_element_locator} | ||
| 249 | + wait until page does not contain element with reloading ${tender_sync_element_locator} | ||
| 250 | + |
| @@ -61,7 +61,7 @@ fill item form in opened popup | @@ -61,7 +61,7 @@ fill item form in opened popup | ||
| 61 | ${description_ru} = get from dictionary by keys ${data} description_ru | 61 | ${description_ru} = get from dictionary by keys ${data} description_ru |
| 62 | run keyword if condition is not none ${description_ru} input text to exist visible input ${item_form_popup_description_ru_input_locator} ${description_ru} | 62 | run keyword if condition is not none ${description_ru} input text to exist visible input ${item_form_popup_description_ru_input_locator} ${description_ru} |
| 63 | ${description_en} = get from dictionary by keys ${data} description_en | 63 | ${description_en} = get from dictionary by keys ${data} description_en |
| 64 | - run keyword if condition is not none ${description_en} input text to exist visible input ${item_form_popup_description_ru_input_locator} ${description_en} | 64 | + run keyword if condition is not none ${description_en} input text to exist visible input ${item_form_popup_description_en_input_locator} ${description_en} |
| 65 | ${quantity} = get from dictionary by keys ${data} quantity | 65 | ${quantity} = get from dictionary by keys ${data} quantity |
| 66 | run keyword if condition is not none ${quantity} input number to visible input ${item_form_popup_quantity_input_locator} ${quantity} | 66 | run keyword if condition is not none ${quantity} input number to visible input ${item_form_popup_quantity_input_locator} ${quantity} |
| 67 | ${unit} = get from dictionary by keys ${data} unit name | 67 | ${unit} = get from dictionary by keys ${data} unit name |
| @@ -210,10 +210,15 @@ select classification by array of code attributes | @@ -210,10 +210,15 @@ select classification by array of code attributes | ||
| 210 | ${exclude_schemes_is_none}= get variable is none ${exclude_schemes} | 210 | ${exclude_schemes_is_none}= get variable is none ${exclude_schemes} |
| 211 | 211 | ||
| 212 | open popup by btn locator ${btn_locator} ${classification_popup_opened_content_locator} | 212 | open popup by btn locator ${btn_locator} ${classification_popup_opened_content_locator} |
| 213 | + Capture Page Screenshot | ||
| 213 | :FOR ${code_attributes} IN @{code_attributes_array} | 214 | :FOR ${code_attributes} IN @{code_attributes_array} |
| 214 | \ ${disabled} = set variable if ${include_schemes_is_none} == ${False} and '${code_attributes['scheme']}' not in ${include_schemes} ${True} ${False} | 215 | \ ${disabled} = set variable if ${include_schemes_is_none} == ${False} and '${code_attributes['scheme']}' not in ${include_schemes} ${True} ${False} |
| 216 | + \ Capture Page Screenshot | ||
| 215 | \ ${disabled} = set variable if ${exclude_schemes_is_none} == ${False} and '${code_attributes['scheme']}' in ${exclude_schemes} ${True} ${disabled} | 217 | \ ${disabled} = set variable if ${exclude_schemes_is_none} == ${False} and '${code_attributes['scheme']}' in ${exclude_schemes} ${True} ${disabled} |
| 218 | + \ Capture Page Screenshot | ||
| 216 | \ run keyword if ${disabled} == ${False} __private__select_classification_code_in_opened_popup ${code_attributes['id']} ${code_attributes['scheme']} | 219 | \ run keyword if ${disabled} == ${False} __private__select_classification_code_in_opened_popup ${code_attributes['id']} ${code_attributes['scheme']} |
| 220 | + \ Capture Page Screenshot | ||
| 221 | + Capture Page Screenshot | ||
| 217 | submit current visible popup | 222 | submit current visible popup |
| 218 | 223 | ||
| 219 | open site page and wait content element | 224 | open site page and wait content element |
| @@ -338,7 +343,6 @@ Click and wait for the search | @@ -338,7 +343,6 @@ Click and wait for the search | ||
| 338 | ... wanted_locator: What are we waiting for | 343 | ... wanted_locator: What are we waiting for |
| 339 | ... timeout: Timeout | 344 | ... timeout: Timeout |
| 340 | Press key ${click_locator} \\13 | 345 | Press key ${click_locator} \\13 |
| 341 | -# Sleep 3 | ||
| 342 | Wait Until Page Contains Element ${wanted_locator} ${timeout} | 346 | Wait Until Page Contains Element ${wanted_locator} ${timeout} |
| 343 | ######################################################################################################################## | 347 | ######################################################################################################################## |
| 344 | ################################################### PRIVATE KEYWORDS ################################################### | 348 | ################################################### PRIVATE KEYWORDS ################################################### |
| @@ -402,6 +406,7 @@ __private__select_classification_code_in_opened_popup | @@ -402,6 +406,7 @@ __private__select_classification_code_in_opened_popup | ||
| 402 | run keyword if ${scheme_tab_exists} == ${True} click visible element ${scheme_tab_locator} | 406 | run keyword if ${scheme_tab_exists} == ${True} click visible element ${scheme_tab_locator} |
| 403 | run keyword if ${scheme_tab_exists} == ${True} wait until tab content is visible ${scheme_tab_locator} | 407 | run keyword if ${scheme_tab_exists} == ${True} wait until tab content is visible ${scheme_tab_locator} |
| 404 | ... ELSE __private__log Classification scheme tab ${scheme} does not exist | 408 | ... ELSE __private__log Classification scheme tab ${scheme} does not exist |
| 409 | + wait until popup is visible | ||
| 405 | # seraching code | 410 | # seraching code |
| 406 | input text to visible input and press enter ${classification_popup_search_input_locator} ${code} | 411 | input text to visible input and press enter ${classification_popup_search_input_locator} ${code} |
| 407 | ${code} = convert to string ${code} | 412 | ${code} = convert to string ${code} |
| @@ -266,3 +266,15 @@ def prepare_tender_data(data): | @@ -266,3 +266,15 @@ def prepare_tender_data(data): | ||
| 266 | del data['milestones'] | 266 | del data['milestones'] |
| 267 | 267 | ||
| 268 | return data | 268 | return data |
| 269 | + | ||
| 270 | +def split_agreementDuration(str, type): | ||
| 271 | + if type in 'year': | ||
| 272 | + year_temp = str.split('Y',1) | ||
| 273 | + value = year_temp[0].split('P',1) | ||
| 274 | + elif type in 'month': | ||
| 275 | + month_temp = str.split('M',1) | ||
| 276 | + value = month_temp[0].split('Y',1) | ||
| 277 | + else: | ||
| 278 | + day_temp = str.split('D',1) | ||
| 279 | + value = day_temp[0].split('M',1) | ||
| 280 | + return value[1] |
| @@ -9,11 +9,36 @@ open new tender form | @@ -9,11 +9,36 @@ open new tender form | ||
| 9 | 9 | ||
| 10 | open page and wait element by locator ${broker_baseurl}/tender/create ${tender_form_locator} | 10 | open page and wait element by locator ${broker_baseurl}/tender/create ${tender_form_locator} |
| 11 | 11 | ||
| 12 | +update tender queue | ||
| 13 | + [Documentation] запускає оновлення планів з ЦБД і додає їх в чергу, тобто синхронізація може відбутися не відразу | ||
| 14 | + ... поточна сторіка повертається | ||
| 15 | + | ||
| 16 | + ${current_url} = get location | ||
| 17 | + go to ${broker_baseurl}/utils/queue-tender-update | ||
| 18 | + go to ${current_url} | ||
| 19 | + | ||
| 20 | +open tender form by uaid | ||
| 21 | + [Arguments] ${tender_uaid} | ||
| 22 | + [Documentation] відкриття сторінки редагування плану | ||
| 23 | + | ||
| 24 | + open tender page by uaid ${tender_uaid} | ||
| 25 | + click visible element and wait until page contains element ${tender_edit_btn_locator} ${tender_form_locator} | ||
| 26 | + | ||
| 12 | open tender page by uaid | 27 | open tender page by uaid |
| 13 | [Arguments] ${uaid} | 28 | [Arguments] ${uaid} |
| 14 | [Documentation] відкриває сторінку з тендером | 29 | [Documentation] відкриває сторінку з тендером |
| 15 | 30 | ||
| 16 | - open page and wait element by locator ${broker_baseurl}/tender/${uaid} ${tender_view_checker_element_locator} | 31 | +# open page and wait element by locator ${broker_baseurl}/tender/${uaid} ${tender_view_checker_element_locator} |
| 32 | + open site page and wait content element ${broker_baseurl}/tender/${uaid} | ||
| 33 | + ${is_tender_found} = get is element exist ${tender_view_checker_element_locator} | ||
| 34 | + return from keyword if ${is_tender_found} == ${True} | ||
| 35 | + ${is_tender_not_found} = get is 404 page | ||
| 36 | + ${is_needed_to_update_and_wait_sync} = set variable if ${is_test_role_owner} == ${False} and ${is_tender_not_found} ${True} ${False} | ||
| 37 | + run keyword if ${is_needed_to_update_and_wait_sync} update tender queue | ||
| 38 | + run keyword if ${is_needed_to_update_and_wait_sync} wait until 404 page disappears | ||
| 39 | + ${is_tender_found} = get is element exist ${tender_view_checker_element_locator} | ||
| 40 | + run keyword if ${is_tender_found} == ${False} fail Opening tender page by uaid fails. | ||
| 41 | + | ||
| 17 | 42 | ||
| 18 | fill tender form | 43 | fill tender form |
| 19 | [Arguments] ${data} | 44 | [Arguments] ${data} |
| @@ -37,7 +62,7 @@ fill tender general info | @@ -37,7 +62,7 @@ fill tender general info | ||
| 37 | 62 | ||
| 38 | ${procurement_method_type} = get from dictionary by keys ${data} procurementMethodType | 63 | ${procurement_method_type} = get from dictionary by keys ${data} procurementMethodType |
| 39 | run keyword if condition is not none ${procurement_method_type} select from visible list by value ${tender_form_procurement_method_type_input_locator} ${procurement_method_type} | 64 | run keyword if condition is not none ${procurement_method_type} select from visible list by value ${tender_form_procurement_method_type_input_locator} ${procurement_method_type} |
| 40 | - wait until page does not contain element ${button_refresh_element} | 65 | + wait until page does not contain element ${popup_dynamic_form_loading_element_locator} |
| 41 | 66 | ||
| 42 | ${lots} = get from dictionary by keys ${data} lots | 67 | ${lots} = get from dictionary by keys ${data} lots |
| 43 | run keyword if condition is not none ${lots} Run Keyword And Ignore Error Click Element ${tender_multilot_locator} | 68 | run keyword if condition is not none ${lots} Run Keyword And Ignore Error Click Element ${tender_multilot_locator} |
| @@ -84,6 +109,18 @@ fill tender general info | @@ -84,6 +109,18 @@ fill tender general info | ||
| 84 | run keyword if condition is not none ${funding_kind} select from visible list by value ${tender_form_general_funding_kind_input_locator} ${funding_kind} | 109 | run keyword if condition is not none ${funding_kind} select from visible list by value ${tender_form_general_funding_kind_input_locator} ${funding_kind} |
| 85 | ${nbu_discount_rate} = get from dictionary by keys ${data} NBUdiscountRate | 110 | ${nbu_discount_rate} = get from dictionary by keys ${data} NBUdiscountRate |
| 86 | 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} | 111 | 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} |
| 112 | +#closeframework | ||
| 113 | + ${max_awards_count} = get from dictionary by keys ${data} maxAwardsCount | ||
| 114 | + 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} | ||
| 115 | + ${agreement_duration_years} = get from dictionary by keys ${data} agreementDuration | ||
| 116 | + ${agreement_duration_years1}= Run keyword If '${agreement_duration_years}' != '${None}' split_agreementDuration ${agreement_duration_years} year | ||
| 117 | + 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} | ||
| 118 | + ${agreement_duration_months} = get from dictionary by keys ${data} agreementDuration | ||
| 119 | + ${agreement_duration_months1}= Run keyword If '${agreement_duration_months}' != '${None}' split_agreementDuration ${agreement_duration_months} month | ||
| 120 | + 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} | ||
| 121 | + ${agreement_duration_days} = get from dictionary by keys ${data} agreementDuration | ||
| 122 | + ${agreement_duration_days1}= Run keyword If '${agreement_duration_days}' != '${None}' split_agreementDuration ${agreement_duration_years} day | ||
| 123 | + 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} | ||
| 87 | submit current visible popup | 124 | submit current visible popup |
| 88 | 125 | ||
| 89 | fill tender form items | 126 | fill tender form items |
| @@ -125,7 +162,7 @@ fill tender form milestones | @@ -125,7 +162,7 @@ fill tender form milestones | ||
| 125 | wait until popup is visible | 162 | wait until popup is visible |
| 126 | :FOR ${milestone_attributes} IN @{milestone_attributes_array} | 163 | :FOR ${milestone_attributes} IN @{milestone_attributes_array} |
| 127 | \ click visible element ${milestone_form_popup_add_btn_locator} | 164 | \ click visible element ${milestone_form_popup_add_btn_locator} |
| 128 | - \ wait until page does not contain element ${button_refresh_element} | 165 | + \ wait until page does not contain element ${popup_dynamic_form_loading_element_locator} |
| 129 | \ fill milestone form in opened popup ${milestone_attributes} | 166 | \ fill milestone form in opened popup ${milestone_attributes} |
| 130 | submit current visible popup | 167 | submit current visible popup |
| 131 | 168 | ||
| @@ -154,7 +191,7 @@ fill tender form features | @@ -154,7 +191,7 @@ fill tender form features | ||
| 154 | wait until popup is visible | 191 | wait until popup is visible |
| 155 | :FOR ${feature_attributes} IN @{feature_attributes_array} | 192 | :FOR ${feature_attributes} IN @{feature_attributes_array} |
| 156 | \ click visible element ${tender_form_features_panel_edit_btn_locator} | 193 | \ click visible element ${tender_form_features_panel_edit_btn_locator} |
| 157 | - \ wait until page does not contain element ${button_refresh_element} | 194 | + \ wait until page does not contain element ${popup_dynamic_form_loading_element_locator} |
| 158 | \ fill feature form in opened popup ${feature_attributes} | 195 | \ fill feature form in opened popup ${feature_attributes} |
| 159 | submit current visible popup | 196 | submit current visible popup |
| 160 | 197 | ||
| @@ -166,11 +203,16 @@ fill feature form in opened popup | @@ -166,11 +203,16 @@ fill feature form in opened popup | ||
| 166 | run keyword if condition is not none ${title} input text to exist visible input ${feature_form_popup_title_input_locator} ${title} | 203 | run keyword if condition is not none ${title} input text to exist visible input ${feature_form_popup_title_input_locator} ${title} |
| 167 | ${description} = get from dictionary by keys ${data} description | 204 | ${description} = get from dictionary by keys ${data} description |
| 168 | run keyword if condition is not none ${description} input text to exist visible input ${feature_form_popup_description_input_locator} ${description} | 205 | run keyword if condition is not none ${description} input text to exist visible input ${feature_form_popup_description_input_locator} ${description} |
| 206 | + ${title_en} = get from dictionary by keys ${data} title_en | ||
| 207 | + run keyword if condition is not none ${title_en} input text to exist visible input ${feature_form_popup_title_en_input_locator} ${title_en} | ||
| 208 | + ${description_en} = get from dictionary by keys ${data} description | ||
| 209 | + run keyword if condition is not none ${description_en} input text to exist visible input ${feature_form_popup_description_en_input_locator} ${description_en} | ||
| 169 | ${options} = Get From Dictionary ${data} enum | 210 | ${options} = Get From Dictionary ${data} enum |
| 170 | ${count} = Get Length ${options} | 211 | ${count} = Get Length ${options} |
| 171 | ${ex}= Evaluate ${count} - 1 | 212 | ${ex}= Evaluate ${count} - 1 |
| 172 | : FOR ${INDEX} IN RANGE 0 ${count} | 213 | : FOR ${INDEX} IN RANGE 0 ${count} |
| 173 | \ 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} | 214 | \ 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} |
| 215 | +# \ 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} | ||
| 174 | \ ${value} = convert_float_to_string ${options[${INDEX}].value} | 216 | \ ${value} = convert_float_to_string ${options[${INDEX}].value} |
| 175 | \ ${value} = Convert To Number ${value} | 217 | \ ${value} = Convert To Number ${value} |
| 176 | \ ${value} = multiply_hundred ${value} | 218 | \ ${value} = multiply_hundred ${value} |
| @@ -178,7 +220,7 @@ fill feature form in opened popup | @@ -178,7 +220,7 @@ fill feature form in opened popup | ||
| 178 | \ run keyword if condition is not none ${options[${INDEX}].value} input text to exist visible input ${feature_form_popup_enum_value_input_locator} ${value} | 220 | \ run keyword if condition is not none ${options[${INDEX}].value} input text to exist visible input ${feature_form_popup_enum_value_input_locator} ${value} |
| 179 | \ Continue For Loop If '${INDEX}' == '${ex}' | 221 | \ Continue For Loop If '${INDEX}' == '${ex}' |
| 180 | \ Run Keyword If ${count} != 1 click visible element ${feature_form_popup_add-enums_btn_locator} | 222 | \ Run Keyword If ${count} != 1 click visible element ${feature_form_popup_add-enums_btn_locator} |
| 181 | - \ wait until page does not contain element ${button_refresh_element} | 223 | + \ wait until page does not contain element ${popup_dynamic_form_loading_element_locator} |
| 182 | 224 | ||
| 183 | fill tender form lots | 225 | fill tender form lots |
| 184 | [Arguments] ${lot_attributes_array} | 226 | [Arguments] ${lot_attributes_array} |
| @@ -228,8 +270,8 @@ fill tender required documents | @@ -228,8 +270,8 @@ fill tender required documents | ||
| 228 | 270 | ||
| 229 | ${file_path} ${file_name} ${file_content} = create_fake_doc | 271 | ${file_path} ${file_name} ${file_content} = create_fake_doc |
| 230 | click visible element ${tender_form_general_panel_add_document_btn_locator} | 272 | click visible element ${tender_form_general_panel_add_document_btn_locator} |
| 231 | - choose file ${add_file_to_form} ${file_path} | ||
| 232 | - wait until page does not contain element ${button_refresh_element} | 273 | + choose file ${add_file_to_form_locator} ${file_path} |
| 274 | + wait until page does not contain element ${popup_dynamic_form_loading_element_locator} | ||
| 233 | submit current visible popup | 275 | submit current visible popup |
| 234 | 276 | ||
| 235 | open tender search form | 277 | open tender search form |
| @@ -239,5 +281,182 @@ open tender search form | @@ -239,5 +281,182 @@ open tender search form | ||
| 239 | 281 | ||
| 240 | get tender field value by name | 282 | get tender field value by name |
| 241 | [Arguments] ${key} | 283 | [Arguments] ${key} |
| 242 | - [Documentation] Отримати інформацію із тендера, користуючись ідентіфікатором плану та назвою поля ${key}. | 284 | + [Documentation] Отримати інформацію із тендера, користуючись ідентіфікатором тендеру та назвою поля ${key}. |
| 285 | + | ||
| 286 | + | ||
| 287 | +save tender form and wait synchronization | ||
| 288 | + [Documentation] натискає кнопку "Зберегти" і чекає синхронізації тендеру | ||
| 289 | + | ||
| 290 | + submit form and check result ${tender_form_submit_btn_locator} ${tender_form_submit_success_msg} ${tender_created_checker_element_locator} | ||
| 291 | + wait until page does not contain element with reloading ${tender_sync_element_locator} | ||
| 292 | + | ||
| 293 | +add document in tender | ||
| 294 | + [Arguments] ${filepath} | ||
| 295 | + [Documentation] Завантажити документ, який знаходиться по шляху filepath. | ||
| 296 | + | ||
| 297 | + click visible element ${tender_form_general_panel_edit_add_document_btn_locator} | ||
| 298 | + choose file ${add_file_to_form_locator} ${filepath} | ||
| 299 | + wait until page does not contain element ${popup_dynamic_form_loading_element_locator} | ||
| 300 | + submit current visible popup | ||
| 301 | + | ||
| 302 | +add document in lot | ||
| 303 | + [Arguments] ${filepath} ${lot_id} | ||
| 304 | + [Documentation] Завантажити в лот (з ідентіфікатором ${lot_id}) документ, який знаходиться по шляху filepath. | ||
| 305 | + | ||
| 306 | + ${open_form_add_doc_lot_btn_locator} = replace string ${tender_form_lot_panel_add_document_btn_locator_tpl} %lot_id% ${lot_id} | ||
| 307 | + click visible element ${open_form_add_doc_lot_btn_locator} | ||
| 308 | + choose file ${add_file_to_form_locator} ${filepath} | ||
| 309 | + wait until page does not contain element ${popup_dynamic_form_loading_element_locator} | ||
| 310 | + submit current visible popup | ||
| 311 | + | ||
| 312 | +Задати запитання | ||
| 313 | + [Arguments] ${username} ${tender_uaid} ${type} ${type_id} ${question} | ||
| 314 | + [Documentation] Створити запитання з question в описі для тендера tender_uaid. | ||
| 315 | +# run keyword and ignore error save tender form and wait synchronization | ||
| 316 | + click visible element ${question_form_create_question_btn_locator} | ||
| 317 | + wait until popup is visible | ||
| 318 | + input text to exist visible input ${question_form_open_form_answer_input_locator} ${answer_data.data.answer} | ||
| 319 | + Run Keyword If '${type}' == 'tender' Select From List By Value ${question_form_create_questionform_related_of_input_locator} Закупівля | ||
| 320 | + Run Keyword If '${type}' == 'lot' Select From List By Value ${question_form_create_questionform_related_of_input_locator} Лот | ||
| 321 | + Run Keyword If '${type}' == 'lot' Click Element ${question_form_create_questionform_related_lot_input_locator} | ||
| 322 | + ${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} | ||
| 323 | + Run Keyword If '${type}' == 'lot' Click Element ${question_form_create_questionform_related_lot_input_locator} | ||
| 324 | + Run Keyword If '${type}' == 'item' Select From List By Value ${question_form_create_questionform_related_of_input_locator} Предмет закупівлі | ||
| 325 | + Run Keyword If '${type}' == 'item' Click Element ${question_form_create_questionform_related_item_input_locator} | ||
| 326 | + ${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} | ||
| 327 | + Run Keyword If '${type}' == 'item' Click Element ${question_questionform_related_item_input_locator} | ||
| 328 | + input text to exist visible input ${question_form_create_questionform_title_input_locator} ${question.data.title} | ||
| 329 | + input text to exist visible input ${question_form_create_questionform_description_input_locator} ${question.data.description} | ||
| 330 | + click visible element ${question_form_answer_submit_btn_locator} | ||
| 331 | + wait until page does not contain element with reloading ${tender_sync_element_locator} | ||
| 332 | + | ||
| 333 | +answer question | ||
| 334 | + [Arguments] ${answer_data} ${question_id} | ||
| 335 | + [Documentation] Дати відповідь answer_data на запитання з question_id в описі для тендера tender_uaid. | ||
| 336 | + | ||
| 337 | + run keyword and ignore error save tender form and wait synchronization | ||
| 338 | + click visible element ${question_form_open_btn_locator} | ||
| 339 | + ${question_open_form_answer_locator} = replace string ${question_open_form_answer_btn_locator_tpl} %title% ${question_id} | ||
| 340 | + wait until page contains element with reloading ${question_open_form_answer_locator} | ||
| 341 | + ${question_form_open_form_answer_btn_locator} = replace string ${question_form_open_form_answer_btn_locator_tpl} %title% ${question_id} | ||
| 342 | + click visible element ${question_form_open_form_answer_btn_locator} | ||
| 343 | + wait until popup is visible | ||
| 344 | + input text to exist visible input ${question_form_open_form_answer_input_locator} ${answer_data.data.answer} | ||
| 345 | +# click visible element ${question_form_answer_submit_btn_locator} | ||
| 346 | + submit form and check result ${question_form_answer_submit_btn_locator} ${question_form_submit_success_msg} ${tender_created_checker_element_locator} | ||
| 347 | + | ||
| 348 | +Створити вимогу | ||
| 349 | + [Arguments] ${username} ${tender_uaid} ${type} ${type_id} ${claim} ${doc_name} | ||
| 350 | + [Documentation] Створити вимогу з claim в описі для тендера tender_uaid. | ||
| 351 | + | ||
| 352 | + click visible element ${claim_form_open_btn_locator} | ||
| 353 | + wait until popup is visible | ||
| 354 | + input text to exist visible input ${claim_form_complaintform_title_input_locator} ${claim.data.title} | ||
| 355 | + input text to exist visible input ${claim_form_complaintform_description_input_locator} ${claim.data.description} | ||
| 356 | + Run Keyword And Ignore Error Run Keyword If '${type}' == 'tender' Select From List By Label ${claim_form_complaintform_related_of_input_locator} Закупівля | ||
| 357 | + Run Keyword And Ignore Error Run Keyword If '${type}' == 'lot' Select From List By Label ${claim_form_complaintform_related_of_input_locator} Лот | ||
| 358 | + Run Keyword And Ignore Error Run Keyword If '${type}' == 'lot' Click Element ${claim_form_complaintform_related_lot_input_locator} | ||
| 359 | + ${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} | ||
| 360 | + Run Keyword And Ignore Error Run Keyword If '${type}' == 'lot' Click Element ${claim_form_complaintform_related_lot_select_locator} | ||
| 361 | + Run Keyword And Ignore Error Select From List By Label ${claim_form_complaintform_complaintform_type_input_locator} Вимога | ||
| 362 | + Run Keyword If '${doc_name}' != 'null' click visible element ${claim_form_complaintform_document_btn_locator} | ||
| 363 | + Run Keyword If '${doc_name}' != 'null' choose file ${add_file_to_form_locator} ${doc_name} | ||
| 364 | + Run Keyword If '${doc_name}' != 'null' wait until page does not contain element ${popup_dynamic_form_loading_element_locator} | ||
| 365 | +# Run Keyword If '${doc_name}' != 'null' submit current visible popup | ||
| 366 | + submit form and check result ${claim_form_complaintform_submit_btn_locator} ${tender_form_submit_success_msg} ${tender_created_checker_element_locator} | ||
| 367 | +# Функция ожидания claim_uaid_text_locator соответствующей вимоги | ||
| 368 | + click visible element ${claim_form_open_btn_locator} | ||
| 369 | + ${return_value}= Get Element Attribute ${claim_uaid_text_locator} | ||
| 370 | + ${return_value}= Convert To String ${return_value} | ||
| 371 | + [return] ${return_value} | ||
| 372 | + | ||
| 373 | + | ||
| 374 | +fill bid form | ||
| 375 | + [Arguments] ${tender_uaid} ${bid} ${lots_ids} ${features_ids} | ||
| 376 | + [Documentation] Подати цінову пропозицію bid для тендера tender_uaid на лоти lots_ids (якщо lots_ids != None) з неціновими показниками features_ids (якщо features_ids != None). | ||
| 377 | + | ||
| 378 | + click visible element ${bid_form_open_btn_locator} | ||
| 379 | + wait until popup is visible | ||
| 380 | + ${value} = get from dictionary by keys ${bid} value amount | ||
| 381 | + ${amount} = run keyword if condition is not none ${value} convert_float_to_string ${bid.data.value.amount} | ||
| 382 | + run keyword if condition is not none ${value} input number to exist visible input ${bid_form_value_amount_input_locator} ${amount} | ||
| 383 | + ${value_yearly_payments_percentage} = get from dictionary by keys ${bid} value yearlyPaymentsPercentage | ||
| 384 | + ${yearly_payments_percentage} = run keyword if condition is not none ${value_yearly_payments_percentage} convert_float_to_string ${bid.data.value.yearlyPaymentsPercentage} | ||
| 385 | + run keyword if condition is not none ${value} input number5 to exist visible input ${bid_form_value_yearly_payments_percentage_input_locator} ${yearly_payments_percentage} | ||
| 386 | + ${contract_duration_years} = get from dictionary by keys ${bid} value contractDuration years | ||
| 387 | + run keyword if condition is not none ${contract_duration_years} input text to exist visible input ${bid_form_value_contract_duration_years_input_locator} ${bid.data.value.contractDuration.years} | ||
| 388 | + ${contract_duration_days} = get from dictionary by keys ${bid} value contractDuration days | ||
| 389 | + run keyword if condition is not none ${contract_duration_days} input text to exist visible input ${bid_form_value_contract_duration_days_input_locator} ${bid.data.value.contractDuration.days} | ||
| 390 | + ${annual_costs_reduction} = get from dictionary by keys ${bid} value annualCostsReduction | ||
| 391 | + run keyword if condition is not none ${annual_costs_reduction} Подати цінову пропозицію Esco AnnualCostsReduction ${value.annualCostsReduction} | ||
| 392 | +# ${lots} = get from dictionary by keys ${data} lots | ||
| 393 | + run keyword if condition is not none ${lots_ids} fill bid form lots ${bid} | ||
| 394 | +# run keyword if condition is none ${lots_ids} fill bid form whithout lots ${bid} | ||
| 395 | +# ${features} = get from dictionary by keys ${data} features | ||
| 396 | +# run keyword if condition is not none ${features_ids} fill bid form features ${bid} ${tender_form_general_panel_add_feature_btn_locator} | ||
| 397 | + fill bid required documents_all | ||
| 398 | + submit form and check result ${bid_form_submit_btn_locator} ${bid_form_submit_success_msg} ${tender_created_checker_element_locator} | ||
| 399 | + | ||
| 400 | +fill bid form lots | ||
| 401 | + [Arguments] ${bid} ${lots_ids} ${features_ids} | ||
| 402 | + [Documentation] Заповнити лотову цінову пропозицію bid для тендера tender_uaid на лоти lots_ids з неціновими показниками features_ids (якщо features_ids != None). | ||
| 403 | + | ||
| 404 | + ${lots} = get from dictionary by keys ${bid} lotValues | ||
| 405 | + ${lots_length} = Get Length ${lots} | ||
| 406 | + : FOR ${INDEX} IN RANGE 0 ${lots_length} | ||
| 407 | + \ ${amount} = convert_float_to_string ${bid.data.value.amount} | ||
| 408 | + \ run keyword and ignore error input number to exist visible input ${bid_form_value_amount_input_locator} ${amount} | ||
| 409 | + \ ${self_qualified} = get from dictionary by keys ${bid} selfQualified | ||
| 410 | + \ run keyword and ignore error ${self_qualified} click visible element ${bid_form_value_self_qualified_input_locator} | ||
| 411 | + \ ${self_eligible} = get from dictionary by keys ${bid} selfEligible | ||
| 412 | + \ run keyword if condition is not none ${self_eligible} click visible element ${bid_form_value_self_eligible_input_locator} | ||
| 413 | + \ run keyword if condition is not none ${features_ids} fill bid form features ${bid.data.parameters} | ||
| 414 | + | ||
| 415 | +fill bid form features | ||
| 416 | + [Arguments] ${bid_parameters} | ||
| 417 | + [Documentation] Заповнити нецінові показники цінової пропозиції. | ||
| 418 | + | ||
| 419 | + ${features_length} = Get Length ${bid_parameters} | ||
| 420 | + : FOR ${INDEX} IN RANGE 0 ${features_length} | ||
| 421 | + \ ${bid_form_feature_input_locator} replace string ${bid_form_feature_input_locator_tpl} %title% ${features[${INDEX}]['code']} | ||
| 422 | + \ Run Keyword And Ignore Error click visible element ${bid_form_feature_input_locator} | ||
| 423 | + \ Run Keyword And Ignore Error Select From List By Label ${bid_form_feature_input_locator} ${features[${INDEX}]['value']} | ||
| 424 | + | ||
| 425 | +Подати цінову пропозицію Esco AnnualCostsReduction | ||
| 426 | + [Arguments] ${values} | ||
| 427 | + [Documentation] Заповнити цінову пропозицію Esco (параметр AnnualCostsReduction). | ||
| 428 | + | ||
| 429 | + ${input_index }= set variable 1 | ||
| 430 | + : FOR ${value} IN @{values} | ||
| 431 | + \ ${bid_form_value_annual_costs_reduction_input_locator} replace string ${bid_form_value_annual_costs_reduction_input_locator_tpl} %index% ${input_index} | ||
| 432 | + \ input float ${bid_form_value_annual_costs_reduction_input_locator} ${value} | ||
| 433 | + \ ${input_index} = evaluate ${input_index} + 1 | ||
| 434 | + | ||
| 435 | +fill bid required documents_all | ||
| 436 | + [Arguments] ${values} | ||
| 437 | + [Documentation] Додати фейковий документ до цінової пропозиції при створенні. | ||
| 438 | + | ||
| 439 | + ${file_path} ${file_name} ${file_content} = create_fake_doc | ||
| 440 | + click visible element ${bid_form_add_document_all_btn_locator} | ||
| 441 | + choose file ${add_file_to_form_locator} ${file_path} | ||
| 442 | + wait until element is visible ${bid_form_add_document_type_input_locator} ${waiting_timeout} ${waiting_error} | ||
| 443 | +# submit current visible popup | ||
| 444 | + Run Keyword And Ignore Error Select From List By Value ${bid_form_add_document_type_input_locator} qualificationDocuments | ||
| 445 | + click visible element ${bid_form_add_document_description_btn_locator} | ||
| 446 | + wait until element is visible ${bid_form_add_document_description_input_locator} ${waiting_timeout} ${waiting_error} | ||
| 447 | + input text to exist visible input ${bid_form_add_document_description_input_locator} test2 | ||
| 448 | + click visible element ${bid_form_add_document_close_description_btn_locator} | ||
| 449 | + | ||
| 450 | +fill bid form edit | ||
| 451 | + [Arguments] ${tender_uaid} ${fieldname} ${fieldvalue} | ||
| 452 | + [Documentation] Змінити поле fieldname на fieldvalue цінової пропозиції користувача username для тендера tender_uaid. | ||
| 453 | + | ||
| 454 | + click visible element ${bid_form_open_btn_locator} | ||
| 455 | + wait until popup is visible | ||
| 456 | + Run Keyword If '${fieldname}' == 'lotValues[0].value.amount' and '${mode}' != 'esco' Run Keywords | ||
| 457 | + ... ${amount} = convert_float_to_string ${fieldvalue} | ||
| 458 | + ... input number to exist visible input ${bid_form_value_amount_input_locator} ${amount} | ||
| 459 | + submit form and check result ${bid_form_submit_btn_locator} ${bid_form_submit_edit_success_msg} ${tender_created_checker_element_locator} | ||
| 460 | + | ||
| 461 | + | ||
| 243 | 462 |
| @@ -92,7 +92,7 @@ ${plan_search_form_query_input_locator} = jquery=#plan | @@ -92,7 +92,7 @@ ${plan_search_form_query_input_locator} = jquery=#plan | ||
| 92 | ${plan_search_form_result_locator_tpl} = jquery=#plan-list .lots__item .lot__characteristic li:contains(%query%) | 92 | ${plan_search_form_result_locator_tpl} = jquery=#plan-list .lots__item .lot__characteristic li:contains(%query%) |
| 93 | 93 | ||
| 94 | # tender form | 94 | # tender form |
| 95 | -${tender_form_submit_success_msg} = Закупівля створена, дочекайтесь опублікування на сайті уповноваженого органу. | 95 | +${tender_form_submit_success_msg} = дочекайтесь опублікування на сайті уповноваженого органу. |
| 96 | ${tender_form_locator} = id=tender-form | 96 | ${tender_form_locator} = id=tender-form |
| 97 | ${tender_form_procurement_method_type_input_locator} = jquery=[id$="form-procurement_method_type"] | 97 | ${tender_form_procurement_method_type_input_locator} = jquery=[id$="form-procurement_method_type"] |
| 98 | ${tender_multilot_locator} = jquery=[id$="form-is_multilot"] | 98 | ${tender_multilot_locator} = jquery=[id$="form-is_multilot"] |
| @@ -115,17 +115,26 @@ ${tender_tender_quick_mode_locator} = jquery=[id$= | @@ -115,17 +115,26 @@ ${tender_tender_quick_mode_locator} = jquery=[id$= | ||
| 115 | #esco | 115 | #esco |
| 116 | ${tender_form_general_funding_kind_input_locator} id=tenderescoform-funding_kind | 116 | ${tender_form_general_funding_kind_input_locator} id=tenderescoform-funding_kind |
| 117 | ${tender_form_general_nbu_discount_rate_input_locator} id=tenderescoform-nbu_discount_rate | 117 | ${tender_form_general_nbu_discount_rate_input_locator} id=tenderescoform-nbu_discount_rate |
| 118 | +#closeframework | ||
| 119 | +${tender_form_general_max_awards_count_input_locator} = jquery=[id$="form-max_awards_count"] | ||
| 120 | +${tender_form_general_agreement_duration_years_input_locator} = jquery=[id$="form-agreement_duration_years"] | ||
| 121 | +${tender_form_general_agreement_duration_months_input_locator} = jquery=[id$="form-agreement_duration_months"] | ||
| 122 | +${tender_form_general_agreement_duration_days_input_locator} = jquery=[id$="form-agreement_duration_days"] | ||
| 118 | 123 | ||
| 119 | ${tender_form_general_panel_add_feature_btn_locator} = jquery=#collapseGeneral .btn[data-attribute="features"] | 124 | ${tender_form_general_panel_add_feature_btn_locator} = jquery=#collapseGeneral .btn[data-attribute="features"] |
| 120 | ${tender_form_features_panel_edit_btn_locator} = jquery=.fancybox-content [href$="#add-features"] | 125 | ${tender_form_features_panel_edit_btn_locator} = jquery=.fancybox-content [href$="#add-features"] |
| 121 | ${feature_form_popup_title_input_locator} = jquery=.fancybox-is-open .tab-content:first > .tab-pane.active:first [id$="-title"]:first | 126 | ${feature_form_popup_title_input_locator} = jquery=.fancybox-is-open .tab-content:first > .tab-pane.active:first [id$="-title"]:first |
| 122 | ${feature_form_popup_description_input_locator} = jquery=.fancybox-is-open .tab-content:first > .tab-pane.active:first [id$="-description"]:first | 127 | ${feature_form_popup_description_input_locator} = jquery=.fancybox-is-open .tab-content:first > .tab-pane.active:first [id$="-description"]:first |
| 128 | +${feature_form_popup_title_en_input_locator} = jquery=.fancybox-is-open .tab-content:first > .tab-pane.active:first [id$="-title_en"]:first | ||
| 129 | +${feature_form_popup_description_en_input_locator} = jquery=.fancybox-is-open .tab-content:first > .tab-pane.active:first [id$="-description_en"]:first | ||
| 123 | ${feature_form_popup_value_input_locator} = jquery=[id$="-value"] | 130 | ${feature_form_popup_value_input_locator} = jquery=[id$="-value"] |
| 124 | ${feature_form_popup_add-enums_btn_locator} = jquery=.fancybox-is-open .enums-dynamic-forms-wrapper .btn-add a[href$="#add-enums"] | 131 | ${feature_form_popup_add-enums_btn_locator} = jquery=.fancybox-is-open .enums-dynamic-forms-wrapper .btn-add a[href$="#add-enums"] |
| 125 | ${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_input_locator} = jquery=.fancybox-is-open .enums-dynamic-forms-wrapper .tab-content:first > .tab-pane.active input[id$="-title"] |
| 133 | +${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"] | ||
| 126 | ${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 | ${feature_form_popup_enum_value_input_locator} = jquery=.fancybox-is-open .enums-dynamic-forms-wrapper .tab-content:first > .tab-pane.active input[id$="-value"] |
| 127 | 135 | ||
| 128 | ${tender_form_general_panel_add_document_btn_locator} = jquery=#collapseGeneral .btn[data-attribute="documents"] | 136 | ${tender_form_general_panel_add_document_btn_locator} = jquery=#collapseGeneral .btn[data-attribute="documents"] |
| 137 | +${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 | ||
| 129 | 138 | ||
| 130 | #${tender_form_item_add_edit_btn_locator} = jquery=.js-form-group-popup-panel .panel-heading .actions-wrapper .js-form-popup-add | 139 | #${tender_form_item_add_edit_btn_locator} = jquery=.js-form-group-popup-panel .panel-heading .actions-wrapper .js-form-popup-add |
| 131 | #последняя кнопка “Додати” для номенклатуры (для лотовой и безлотовой) | 140 | #последняя кнопка “Додати” для номенклатуры (для лотовой и безлотовой) |
| @@ -155,6 +164,8 @@ ${lot_form_popup_minimalstep_amount_input_locator} = jquery=.fanc | @@ -155,6 +164,8 @@ ${lot_form_popup_minimalstep_amount_input_locator} = jquery=.fanc | ||
| 155 | ${lot_form_popup_min_step_percentage_amount_input_locator} = jquery=.fancybox-is-open [id$="-min_step_percentage"] | 164 | ${lot_form_popup_min_step_percentage_amount_input_locator} = jquery=.fancybox-is-open [id$="-min_step_percentage"] |
| 156 | 165 | ||
| 157 | ${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"] | 166 | ${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"] |
| 167 | +${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' | ||
| 168 | +${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 | ||
| 158 | 169 | ||
| 159 | #${tender_form_milestones_percentage_locator} = jquery=.js-item.tab-pane.active [id$="-percentage"] | 170 | #${tender_form_milestones_percentage_locator} = jquery=.js-item.tab-pane.active [id$="-percentage"] |
| 160 | #${tender_form_milestones_code_locator} = jquery=.tab-pane.active [id$="-code"] | 171 | #${tender_form_milestones_code_locator} = jquery=.tab-pane.active [id$="-code"] |
| @@ -170,12 +181,68 @@ ${tender_created_checker_element_locator} = id=tender-pa | @@ -170,12 +181,68 @@ ${tender_created_checker_element_locator} = id=tender-pa | ||
| 170 | ${tender_view_checker_element_locator} = id=tender-general-info | 181 | ${tender_view_checker_element_locator} = id=tender-general-info |
| 171 | ${tender_sync_element_locator} = jquery=#aside-part-pjax .status-label .fa-refresh | 182 | ${tender_sync_element_locator} = jquery=#aside-part-pjax .status-label .fa-refresh |
| 172 | ${tender_uaid_text_locator} = jquery=#tender-general-info .tender-id .value | 183 | ${tender_uaid_text_locator} = jquery=#tender-general-info .tender-id .value |
| 184 | +${tender_edit_btn_locator} = jquery=#aside-part-pjax a[href*='tender/update'] | ||
| 173 | 185 | ||
| 174 | -${button_refresh_element} jquery=.fancybox-is-open .btn-add .fa-spin | 186 | +#елемент проверки загрузки формы в попапе |
| 187 | +${popup_dynamic_form_loading_element_locator} jquery=.fancybox-is-open .btn-add .fa-spin | ||
| 175 | #${add_file_to_form} xpath=//input[@type='file'] | 188 | #${add_file_to_form} xpath=//input[@type='file'] |
| 176 | -${add_file_to_form} jquery=.fancybox-is-open input[type$='file'] | 189 | +${add_file_to_form_locator} jquery=.fancybox-is-open input[type$='file'] |
| 177 | 190 | ||
| 178 | # tender index + search | 191 | # tender index + search |
| 179 | ${tender_search_form_locator} = id=tender-filter-form | 192 | ${tender_search_form_locator} = id=tender-filter-form |
| 180 | ${tender_search_form_query_input_locator} = jquery=#tender-filter-form .dynamic-search-query input | 193 | ${tender_search_form_query_input_locator} = jquery=#tender-filter-form .dynamic-search-query input |
| 181 | ${tender_search_form_result_locator_tpl} = jquery=#tender-list .lots__item .lot__characteristic li:contains(%query%) | 194 | ${tender_search_form_result_locator_tpl} = jquery=#tender-list .lots__item .lot__characteristic li:contains(%query%) |
| 195 | + | ||
| 196 | +#question | ||
| 197 | +${question_form_open_btn_locator} jquery=#aside-part-pjax a[href*="/tender/questions"] | ||
| 198 | +${question_open_form_answer_btn_locator_tpl} jquery=#tender-question-list .js-item div[data-title*="%title%"] | ||
| 199 | +${question_form_open_form_answer_btn_locator_tpl} jquery=#tender-question-list .js-item div[data-title*="%title%"] .btn.btn-default | ||
| 200 | +${question_form_open_form_answer_input_locator} jquery=.fancybox-is-open .fancybox-content #tender-question-answer-form #questionanswerform-answer | ||
| 201 | +${question_form_answer_submit_btn_locator} jquery=.fancybox-is-open .fancybox-content #tender-question-answer-form .js-submit-btn | ||
| 202 | +${plan_form_submit_success_msg} = відповідь на питання надана | ||
| 203 | +${question_form_create_question_btn_locator} jquery=.#aside-part-pjax [data-url*="/tender/question-create"] | ||
| 204 | +${question_form_create_questionform_related_of_input_locator} jquery=.fancybox-is-open .fancybox-content #questionform-related_of | ||
| 205 | +${question_form_create_questionform_related_item_input_locator} jquery=.fancybox-is-open .fancybox-content #questionform-related_item | ||
| 206 | +${question_form_create_questionform_related_item_input_locator_tpl} jquery=.fancybox-is-open .fancybox-content #questionform-related_item option:contains("%type_id%") | ||
| 207 | +${question_form_create_questionform_title_input_locator} jquery=.fancybox-is-open .fancybox-content #questionform-title | ||
| 208 | +${question_form_create_questionform_description_input_locator} jquery=.fancybox-is-open .fancybox-content #questionform-description | ||
| 209 | +${question_form_submit_success_msg} Запитання створене. | ||
| 210 | +${question_form_create_questionform_related_lot_input_locator} jquery=.fancybox-is-open .fancybox-content #questionform-related_lot | ||
| 211 | +${question_form_create_questionform_related_lot_input_locator} jquery=.fancybox-is-open .fancybox-content #questionform-related_lot | ||
| 212 | +${question_form_create_questionform_related_lot_input_locator_tpl} jquery=.fancybox-is-open .fancybox-content #questionform-related_lot option:contains("%type_id%") | ||
| 213 | + | ||
| 214 | +#claim | ||
| 215 | +${claim_form_open_btn_locator} jquery=#aside-part-pjax a[href*="/tender/complaints"] | ||
| 216 | +${claim_form_complaintform_title_input_locator} jquery=.fancybox-is-open .fancybox-content input#complaintform-title | ||
| 217 | +${claim_form_complaintform_description_input_locator} jquery=.fancybox-is-open .fancybox-content input#complaintform-description | ||
| 218 | +${claim_form_complaintform_related_of_input_locator} jquery=.fancybox-is-open .fancybox-content #complaintform-related_of | ||
| 219 | +${claim_form_complaintform_related_lot_input_locator} jquery=.fancybox-is-open .fancybox-content #complaintform-related_lot | ||
| 220 | +${{claim_form_complaintform_related_item_input_locator_tpl} jquery=.fancybox-is-open .fancybox-content #complaintform-related_lot option:contains("%type_id%") | ||
| 221 | +${claim_form_complaintform_complaintform_type_input_locator} jquery=.fancybox-is-open .fancybox-content #complaintform-type | ||
| 222 | +${claim_form_complaintform_document_btn_locator} jquery=.fancybox-is-open .fancybox-content a[data-url*="/tender/get-complaint-document"] | ||
| 223 | +${claim_form_complaintform_submit_btn_locator} jquery=.fancybox-is-open .fancybox-content a[href*="/tender/complaints"] | ||
| 224 | +${claim_uaid_text_locator} = jquery=#tender-complaint-list div.item.js-item:last .complaint-id span.value | ||
| 225 | + | ||
| 226 | +#bids | ||
| 227 | +${bid_form_open_btn_locator} jquery=#aside-part-pjax a[href*="/tender/bid"] | ||
| 228 | +${bid_form_submit_success_msg} Пропозиція створена | ||
| 229 | +${bid_form_submit_edit_success_msg} Пропозиція відредагована | ||
| 230 | +${bid_form_feature_input_locator_tpl} jquery=.fancybox-is-open .fancybox-content select[id*="%title%-enum"] | ||
| 231 | +${bid_form_value_amount_input_locator} jquery=.fancybox-is-open .fancybox-content input[id*="-value_amount"] | ||
| 232 | +${bid_form_value_subcontracting_details_input_locator} jquery=.fancybox-is-open .fancybox-content textarea[id*="-subcontracting_details"] | ||
| 233 | +${bid_form_value_self_eligible_input_locator} jquery=.fancybox-is-open .fancybox-content input[id*="-self_eligible"] | ||
| 234 | +${bid_form_value_self_qualified_input_locator} jquery=.fancybox-is-open .fancybox-content input[id*="-self_qualified"] | ||
| 235 | +${bid_form_value_yearly_payments_percentage_input_locator} jquery=.fancybox-is-open .fancybox-content input[id*="-yearly_payments_percentage"] | ||
| 236 | +${bid_form_value_contract_duration_years_input_locator} jquery=.fancybox-is-open .fancybox-content input[id*="-contract_duration_years"] | ||
| 237 | +${bid_form_value_contract_duration_days_input_locator} jquery=.fancybox-is-open .fancybox-content input[id*="-contract_duration_days"] | ||
| 238 | +${bid_form_value_annual_costs_reduction_input_locator_tpl} jquery=.fancybox-is-open .fancybox-content input[id*="-annual_costs_reduction_%index%"] | ||
| 239 | + | ||
| 240 | +${bid_form_add_document_all_btn_locator} jquery=.fancybox-is-open .fancybox-content .field-bidform-documents input[type$="file"] | ||
| 241 | +${bid_form_add_document_type_input_locator} jquery=.fancybox-is-open .fancybox-content .field-bidform-documents select[id*="-document_type"] | ||
| 242 | +${bid_form_add_document_description_btn_locator} jquery=.fancybox-is-open .fancybox-content .field-bidform-documents [href$="#edit"] | ||
| 243 | +${bid_form_add_document_description_input_locator} jquery=.fancybox-is-open .fancybox-content .field-bidform-documents .popover.fade.top.in textarea[id*="-description"].form-control | ||
| 244 | +${bid_form_add_document_close_description_btn_locator} jquery=.fancybox-is-open .fancybox-content .field-bidform-documents .popover.fade.top.in [href$="#close"] | ||
| 245 | +${bid_form_submit_btn_locator} jquery=.fancybox-is-open .fancybox-content button.btn.btn-success | ||
| 246 | + | ||
| 247 | + | ||
| 248 | + |
Please
register
or
login
to post a comment