Showing
18 changed files
with
2032 additions
and
148 deletions
kai.dat
0 → 100644
No preview for this file type
| ... | ... | @@ -3,6 +3,8 @@ |
| 3 | 3 | Resource playtender_common.robot |
| 4 | 4 | Resource playtender_plan.robot |
| 5 | 5 | Resource playtender_tender.robot |
| 6 | +Resource playtender_qualification.robot | |
| 7 | +Resource playtender_contract.robot | |
| 6 | 8 | |
| 7 | 9 | *** Variables *** |
| 8 | 10 | |
| ... | ... | @@ -116,6 +118,10 @@ Resource playtender_tende |
| 116 | 118 | Set Global Variable ${td_railway_crutch} ${tender_data} |
| 117 | 119 | ##### EOF - TMP ##### |
| 118 | 120 | |
| 121 | + ${tender_data_keys}= Get Dictionary Keys ${tender_data.data} | |
| 122 | + ${procurementMethodType} = Set Variable If 'procurementMethodType' in ${tender_data_keys} ${tender_data.data.procurementMethodType} belowThreshold | |
| 123 | + Run Keyword If '${SUITE_NAME}' == 'Tests Files.Complaints' and '${procurementMethodType}' == 'aboveThresholdUA' Go To ${BROKERS['playtender'].basepage}/utils/config?tacceleration=360 | |
| 124 | + Run Keyword If '${SUITE_NAME}' == 'Tests Files.Complaints' and '${procurementMethodType}' == 'belowThreshold' Go To ${BROKERS['playtender'].basepage}/utils/config?tacceleration=720 | |
| 119 | 125 | open new tender form |
| 120 | 126 | fill tender form ${tender_prepared_data} |
| 121 | 127 | submit form and check result ${tender_form_submit_btn_locator} ${tender_form_submit_success_msg} ${tender_created_checker_element_locator} |
| ... | ... | @@ -128,10 +134,11 @@ Resource playtender_tende |
| 128 | 134 | [Arguments] ${username} ${$tender_uaid} |
| 129 | 135 | [Documentation] Оновити сторінку з тендером для отримання потенційно оновлених даних. |
| 130 | 136 | |
| 137 | + Selenium2Library.Switch Browser ${username} | |
| 131 | 138 | open tender page by uaid ${$tender_uaid} |
| 132 | 139 | |
| 133 | 140 | Пошук тендера по ідентифікатору |
| 134 | - [Arguments] ${username} ${tender_uaid} | |
| 141 | + [Arguments] ${username} ${tender_uaid} ${save_key}=${Empty} | |
| 135 | 142 | [Documentation] Знайти тендер з uaid рівним tender_uaid. |
| 136 | 143 | |
| 137 | 144 | open tender search form |
| ... | ... | @@ -143,6 +150,13 @@ Resource playtender_tende |
| 143 | 150 | |
| 144 | 151 | open tender page by uaid ${tender_uaid} |
| 145 | 152 | wait until page does not contain element with reloading ${tender_sync_element_locator} |
| 153 | + run keyword if '${field_name}' == 'status' wait for tender status | |
| 154 | + run keyword if '${field_name}' == 'qualificationPeriod.endDate' Wait Until Keyword Succeeds 1600 s 20 s Wait For QualificationsPeriodEnd | |
| 155 | + Run Keyword And Return If '${field_name}' == 'contracts[0].status' or '${field_name}' == 'contracts[1].status' Отримати інформацію із contracts[0].status | |
| 156 | + Run Keyword And Return If '${field_name}' == 'qualificationPeriod.endDate' and '${mode}' in 'open_competitive_dialogue' Отримати інформацію із qualificationPeriod.endDate | |
| 157 | + Run Keyword And Return If '${field_name}' in 'awards[0].complaintPeriod.endDate awards[1].complaintPeriod.endDate awards[2].complaintPeriod.endDate awards[3].complaintPeriod.endDate' Отримати інформацію із awards.complaintPeriod.endDate | |
| 158 | + Run Keyword And Return If '${field_name}' in 'minimalStep.amount' Отримати інформацію із minimalStep.amount | |
| 159 | + Run Keyword And Return If '${field_name}' == 'awards[0].documents[0].title' Отримати інформацію із awards[0].documents[0].title | |
| 146 | 160 | ${field_name} = set variable tender.${field_name}.value |
| 147 | 161 | ${value} = get field_value by field_name on opened page ${field_name} |
| 148 | 162 | [Return] ${value} |
| ... | ... | @@ -200,8 +214,8 @@ Resource playtender_tende |
| 200 | 214 | wait until page contains element with reloading ${tender_form_lots_remove_item_btn_locator} |
| 201 | 215 | click visible element ${tender_form_lots_remove_item_btn_locator} |
| 202 | 216 | Wait Until Page Contains ${tender_lots_remove_item_form_submit_success_msg} 60 |
| 203 | - click visible element ${not_alert_opened_close_btn_locator} | |
| 204 | - run keyword and ignore error click visible element ${not_alert_opened_close_btn_locator} | |
| 217 | + execute javascript ${not_alert_opened_close_btn_locator} | |
| 218 | + #run keyword and ignore error click visible element ${not_alert_opened_close_btn_locator} | |
| 205 | 219 | capture page screenshot |
| 206 | 220 | Wait Until Page Does Not Contain ${tender_lots_remove_item_form_submit_success_msg} 10 |
| 207 | 221 | capture page screenshot |
| ... | ... | @@ -229,9 +243,9 @@ Resource playtender_tende |
| 229 | 243 | #перейти на соответствующий лот, например, первый |
| 230 | 244 | ${tender_lot_switch_tabs_lot_btn_locator} = replace string ${tender_lot_switch_tabs_lot_btn_locator_tpl} %lot_id% ${lot_id} |
| 231 | 245 | click visible element ${tender_lot_switch_tabs_lot_btn_locator} |
| 232 | - ${field_name} = set variable tender.lot.${field_name}.value | |
| 233 | -# ${value} = get value from lot ${lot_id} ${field_name} | |
| 234 | - ${value} = get field_value by field_name on opened page ${field_name} | |
| 246 | +# ${field_name} = set variable tender.lot.${field_name}.value | |
| 247 | + ${value} = get value from lot ${lot_id} ${field_name} | |
| 248 | +# ${value} = get field_value by field_name on opened page ${field_name} | |
| 235 | 249 | [Return] ${value} |
| 236 | 250 | |
| 237 | 251 | Завантажити документ в лот |
| ... | ... | @@ -262,9 +276,12 @@ Resource playtender_tende |
| 262 | 276 | [Documentation] Додати предмет item в лот з lot_id в описі для тендера tender_uaid. |
| 263 | 277 | |
| 264 | 278 | open tender form by uaid ${tender_uaid} |
| 265 | - click visible element ${tender_form_lots_add_item_btn_locator} | |
| 279 | +# click visible element ${tender_form_lots_add_item_btn_locator} | |
| 266 | 280 | ${items} = create list ${item} |
| 267 | 281 | fill tender form items ${items} |
| 282 | +# wait until popup is visible | |
| 283 | +# fill tender item form in opened popup ${item} | |
| 284 | +# submit current visible popup | |
| 268 | 285 | save tender form and wait synchronization |
| 269 | 286 | |
| 270 | 287 | |
| ... | ... | @@ -280,7 +297,9 @@ Resource playtender_tende |
| 280 | 297 | [Documentation] Додати дані feature про неціновий показник до тендера tender_uaid. |
| 281 | 298 | |
| 282 | 299 | open tender form by uaid ${tender_uaid} |
| 283 | - fill tender form features2 ${feature} ${tender_form_general_panel_update_feature_btn_locator} | |
| 300 | + ${features} = create list ${feature} | |
| 301 | + fill tender form features ${features} ${tender_update_feature_tender_btn_locator} | |
| 302 | + #fill tender form features2 ${feature} ${tender_update_feature_tender_btn_locator} | |
| 284 | 303 | save tender form and wait synchronization |
| 285 | 304 | |
| 286 | 305 | Додати неціновий показник на предмет |
| ... | ... | @@ -288,7 +307,9 @@ Resource playtender_tende |
| 288 | 307 | [Documentation] Додати дані feature про неціновий показник до предмету з item_id в описі для тендера tender_uaid. |
| 289 | 308 | |
| 290 | 309 | open tender form by uaid ${tender_uaid} |
| 291 | - fill tender form features2 ${feature} ${tender_form_item_add_feature_btn_locator} | |
| 310 | + ${features} = create list ${feature} | |
| 311 | + fill tender form features ${features} ${tender_form_item_add_feature_btn_locator} | |
| 312 | +# fill tender form features2 ${feature} ${tender_form_item_add_feature_btn_locator} | |
| 292 | 313 | save tender form and wait synchronization |
| 293 | 314 | |
| 294 | 315 | Додати неціновий показник на лот |
| ... | ... | @@ -296,7 +317,10 @@ Resource playtender_tende |
| 296 | 317 | [Documentation] Додати дані feature про неціновий показник до лоту з lot_id в описі для тендера tender_uaid. |
| 297 | 318 | |
| 298 | 319 | open tender form by uaid ${tender_uaid} |
| 299 | - fill tender form features2 ${feature} ${tender_update_feature_lot_btn_locator} | |
| 320 | +# click visible element ${tender_update_feature_lot_btn_locator} | |
| 321 | + ${features} = create list ${feature} | |
| 322 | + fill tender form features ${features} ${tender_update_feature_lot_btn_locator} | |
| 323 | +# fill tender form features2 ${feature} ${tender_update_feature_lot_btn_locator} | |
| 300 | 324 | save tender form and wait synchronization |
| 301 | 325 | |
| 302 | 326 | Отримати інформацію із нецінового показника |
| ... | ... | @@ -312,18 +336,19 @@ Resource playtender_tende |
| 312 | 336 | [Arguments] ${username} ${tender_uaid} ${feature_id} ${obj_id}=Empty |
| 313 | 337 | [Documentation] Видалити неціновий показник з feature_id в описі для тендера tender_uaid. |
| 314 | 338 | |
| 315 | - | |
| 316 | 339 | open tender form by uaid ${tender_uaid} |
| 317 | 340 | Run Keyword If '${TEST_NAME}' == 'Можливість видалити неціновий показник на предмет' click visible element ${tender_update_feature_item_btn_locator} |
| 318 | 341 | Run Keyword If '${TEST_NAME}' == 'Можливість видалити неціновий показник на лот' click visible element ${tender_update_feature_lot_btn_locator} |
| 319 | 342 | Run Keyword If '${TEST_NAME}' == 'Можливість видалити неціновий показник на тендер' click visible element ${tender_update_feature_tender_btn_locator} |
| 320 | 343 | wait until popup is visible |
| 321 | 344 | ${tender_feature_switch_dell_btn_locator} = replace string ${tender_feature_switch_dell_btn_locator_tpl} %feature_id% ${feature_id} |
| 322 | - click visible element ${tender_feature_switch_dell_btn_locator} | |
| 345 | + execute javascript ${tender_feature_switch_dell_btn_locator} | |
| 346 | +# click visible element ${tender_feature_switch_dell_btn_locator} | |
| 323 | 347 | Wait Until Element Is Visible ${tender_feature_dell_btn_locator} 20 |
| 324 | 348 | click visible element ${tender_feature_dell_btn_locator} |
| 325 | 349 | Wait Until Page Contains ${tender_feature_form_submit_success_msg} 60 |
| 326 | - click visible element ${not_alert_opened_close_btn_locator} | |
| 350 | + execute javascript ${not_alert_opened_close_btn_locator} | |
| 351 | + #click visible element ${not_alert_opened_close_btn_locator} | |
| 327 | 352 | Wait Until Page Does Not Contain ${tender_feature_form_submit_success_msg} 10 |
| 328 | 353 | submit current visible popup |
| 329 | 354 | save tender form and wait synchronization |
| ... | ... | @@ -342,7 +367,7 @@ Resource playtender_tende |
| 342 | 367 | [Documentation] Дати відповідь answer_data на запитання з question_id |
| 343 | 368 | ... в описі для тендера tender_uaid. |
| 344 | 369 | |
| 345 | - open tender form by uaid ${tender_uaid} | |
| 370 | + open tender page by uaid ${tender_uaid} | |
| 346 | 371 | answer question ${answer_data} ${question_id} |
| 347 | 372 | |
| 348 | 373 | Задати запитання на предмет |
| ... | ... | @@ -385,6 +410,7 @@ Resource playtender_tende |
| 385 | 410 | Створити вимогу про виправлення умов закупівлі |
| 386 | 411 | [Arguments] ${username} ${tender_uaid} ${claim} ${doc_name} |
| 387 | 412 | [Documentation] Створити запитання з даними question для тендера tender_uaid. |
| 413 | + | |
| 388 | 414 | Run Keyword And Return Створити вимогу ${username} ${tender_uaid} tender null ${claim} ${doc_name} |
| 389 | 415 | |
| 390 | 416 | Створити чернетку вимоги про виправлення умов закупівлі |
| ... | ... | @@ -407,20 +433,150 @@ Resource playtender_tende |
| 407 | 433 | [Arguments] ${username} ${tender_uaid} ${claim} ${lot_id} |
| 408 | 434 | [Documentation] Створює вимогу claim про виправлення умов закупівлі |
| 409 | 435 | ... у статусі draft для тендера tender_uaid. |
| 436 | + | |
| 410 | 437 | Run Keyword And Return Створити вимогу ${username} ${tender_uaid} lot ${lot_id} ${claim} null |
| 411 | 438 | |
| 412 | 439 | Створити вимогу про виправлення визначення переможця |
| 413 | 440 | [Arguments] ${username} ${tender_uaid} ${claim} ${proposal_id} ${doc_name} |
| 414 | 441 | [Documentation] Створює вимогу claim про виправлення визначення переможця |
| 415 | 442 | ... під номером award_index в статусі claim для тендера tender_uaid. Можна створити вимогу як з документом, який знаходиться за шляхом document, так і без нього. |
| 443 | + | |
| 416 | 444 | Run Keyword And Return Створити вимогу ${username} ${tender_uaid} winner ${proposal_id} ${claim} ${doc_name} |
| 417 | 445 | |
| 418 | 446 | Створити чернетку вимоги про виправлення визначення переможця |
| 419 | 447 | [Arguments] ${username} ${tender_uaid} ${claim} ${proposal_id} |
| 420 | 448 | [Documentation] Створює вимогу claim про виправлення визначення переможця |
| 421 | 449 | ... під номером award_index в статусі draft для тендера tender_uaid. |
| 450 | + | |
| 422 | 451 | Run Keyword And Return Створити вимогу ${username} ${tender_uaid} winner ${proposal_id} ${claim} null |
| 423 | 452 | |
| 453 | +Створити скаргу про виправлення визначення переможця | |
| 454 | + [Arguments] ${username} ${tender_uaid} ${claim} ${proposal_id} ${doc_name} | |
| 455 | + [Documentation] Створює скаргу claim про виправлення визначення переможця | |
| 456 | + ... під номером proposal_id в статусі claim для тендера tender_uaid. | |
| 457 | + | |
| 458 | + Run Keyword And Return Створити вимогу ${username} ${tender_uaid} winner_complaint ${proposal_id} ${claim} ${doc_name} | |
| 459 | + | |
| 460 | + | |
| 461 | +Скасувати вимогу про виправлення умов закупівлі | |
| 462 | + [Arguments] ${username} ${tender_uaid} ${complaintID} ${cancellation_data} | |
| 463 | + [Documentation] Перевести вимогу complaintID про виправлення умов закупівлі для | |
| 464 | + ... тендера tender_uaid у статус cancelled, використовуючи при цьому | |
| 465 | + ... дані cancellation_data. | |
| 466 | + | |
| 467 | + Скасувати вимогу ${username} ${tender_uaid} ${complaintID} ${cancellation_data} null | |
| 468 | + | |
| 469 | +Скасувати вимогу про виправлення умов лоту | |
| 470 | + [Arguments] ${username} ${tender_uaid} ${complaintID} ${cancellation_data} | |
| 471 | + [Documentation] Перевести вимогу complaintID про виправлення умов лоту для тендера | |
| 472 | + ... tender_uaid у статус cancelled, використовуючи при цьому | |
| 473 | + ... дані cancellation_data. | |
| 474 | + | |
| 475 | + Скасувати вимогу ${username} ${tender_uaid} ${complaintID} ${cancellation_data} null | |
| 476 | + | |
| 477 | +Скасувати вимогу про виправлення визначення переможця | |
| 478 | + [Arguments] ${username} ${tender_uaid} ${complaintID} ${cancellation_data} ${award_index} | |
| 479 | + [Documentation] Перевести вимогу complaintID про виправлення визначення переможця | |
| 480 | + ... під номером award_index для тендера tender_uaid у статус cancelled, використовуючи | |
| 481 | + ... при цьому дані confirmation_data. | |
| 482 | + | |
| 483 | + Скасувати вимогу ${username} ${tender_uaid} ${complaintID} ${cancellation_data} ${award_index} | |
| 484 | + | |
| 485 | +Підтвердити вирішення вимоги про виправлення умов закупівлі | |
| 486 | + [Arguments] ${username} ${tender_uaid} ${complaintID} ${confirmation_data} | |
| 487 | + [Documentation] Перевести вимогу complaintID про виправлення умов закупівлі для | |
| 488 | + ... тендера tender_uaid у статус resolved, використовуючи при цьому дані | |
| 489 | + ... confirmation_data. | |
| 490 | + | |
| 491 | + Підтвердити вирішення вимоги ${username} ${tender_uaid} tender null ${complaintID} ${confirmation_data} null | |
| 492 | + | |
| 493 | +Підтвердити вирішення вимоги про виправлення умов лоту | |
| 494 | + [Arguments] ${username} ${tender_uaid} ${complaintID} ${confirmation_data} | |
| 495 | + [Documentation] Перевести вимогу complaintID про виправлення умов лоту для тендера | |
| 496 | + ... tender_uaid у статус resolved, використовуючи при цьому дані confirmation_data. | |
| 497 | + | |
| 498 | + Підтвердити вирішення вимоги ${username} ${tender_uaid} lot null ${complaintID} ${confirmation_data} null | |
| 499 | + | |
| 500 | +Підтвердити вирішення вимоги про виправлення визначення переможця | |
| 501 | + [Arguments] ${username} ${tender_uaid} ${complaintID} ${confirmation_data} ${award_index} | |
| 502 | + [Documentation] Перевести вимогу complaintID про виправлення визначення переможця | |
| 503 | + ... під номером award_index для тендера tender_uaid у статус resolved, використовуючи | |
| 504 | + ... при цьому дані confirmation_data. | |
| 505 | + | |
| 506 | + Підтвердити вирішення вимоги ${username} ${tender_uaid} award null ${complaintID} ${confirmation_data} ${award_index} | |
| 507 | + | |
| 508 | +Перетворити вимогу про виправлення умов закупівлі в скаргу | |
| 509 | + [Arguments] ${username} ${tender_uaid} ${complaintID} ${escalating_data} | |
| 510 | + [Documentation] Перевести вимогу complaintID про виправлення умов закупівлі для | |
| 511 | + ... тендера tender_uaid у статус pending, використовуючи при цьому дані | |
| 512 | + ... escalating_data. | |
| 513 | + | |
| 514 | + Підтвердити вирішення вимоги ${username} ${tender_uaid} tender null ${complaintID} ${escalating_data} null | |
| 515 | + | |
| 516 | +Перетворити вимогу про виправлення умов лоту в скаргу | |
| 517 | + [Arguments] ${username} ${tender_uaid} ${complaintID} ${escalating_data} | |
| 518 | + [Documentation] Перевести вимогу complaintID про виправлення умов лоту для тендера | |
| 519 | + ... tender_uaid у статус pending, використовуючи при цьому дані escalating_data. | |
| 520 | + | |
| 521 | + Підтвердити вирішення вимоги ${username} ${tender_uaid} lot null ${complaintID} ${escalating_data} null | |
| 522 | + | |
| 523 | +Перетворити вимогу про виправлення визначення переможця в скаргу | |
| 524 | + [Arguments] ${username} ${tender_uaid} ${complaintID} ${escalating_data} ${award_index} | |
| 525 | + [Documentation] Перевести вимогу complaintID про виправлення визначення переможця | |
| 526 | + ... під номером award_index для тендера tender_uaid у статус pending, використовуючи при | |
| 527 | + ... цьому дані escalating_data. | |
| 528 | + | |
| 529 | + Підтвердити вирішення вимоги ${username} ${tender_uaid} award null ${complaintID} ${escalating_data} ${award_index} | |
| 530 | + | |
| 531 | +Отримати інформацію із скарги | |
| 532 | + [Arguments] ${username} ${tender_uaid} ${complaintID} ${field_name} ${award_index}=${None} | |
| 533 | + [Documentation] Отримати значення поля field_name скарги/вимоги complaintID про | |
| 534 | + ... виправлення умов закупівлі/лоту для тендера tender_uaid (скарги/вимоги про | |
| 535 | + ... виправлення визначення переможця під номером award_index, якщо award_index != None). | |
| 536 | + | |
| 537 | + ${value} = get claim information ${tender_uaid} ${complaintID} ${field_name} ${award_index}=${None} | |
| 538 | + [Return] ${value} | |
| 539 | + | |
| 540 | +Отримати інформацію із документа до скарги | |
| 541 | + [Arguments] ${username} ${tender_uaid} ${complaintID} ${doc_id} ${field_name} | |
| 542 | + [Documentation] Отримати значення поля field_name з документу doc_id до скарги/вимоги | |
| 543 | + ... complaintID для тендера tender_uaid. | |
| 544 | + | |
| 545 | + open tender page by uaid ${tender_uaid} | |
| 546 | + ${return_value} = Run Keyword If 'title' == '${field_name}' Отримати інформацію із документа скарги title ${complaintID} ${doc_id} | |
| 547 | + [return] ${return_value} | |
| 548 | + | |
| 549 | +Отримати документ до скарги | |
| 550 | + [Arguments] ${username} ${tender_uaid} ${complaintID} ${doc_id} | |
| 551 | + [Documentation] Завантажити файл doc_id до скарги complaintID для тендера tender_uaid | |
| 552 | + ... в директорію ${OUTPUT_DIR} для перевірки вмісту цього файлу. | |
| 553 | + | |
| 554 | + open tender page by uaid ${tender_uaid} | |
| 555 | + ${return_value} = get document complaint ${complaintID} ${doc_id} | |
| 556 | + [return] ${return_value} | |
| 557 | + | |
| 558 | +Відповісти на вимогу про виправлення умов закупівлі | |
| 559 | + [Arguments] ${username} ${tender_uaid} ${complaintID} ${answer_data} | |
| 560 | + [Documentation] Відповісти на вимогу complaintID про виправлення умов закупівлі для | |
| 561 | + ... тендера tender_uaid, використовуючи при цьому дані answer_data. | |
| 562 | + | |
| 563 | + Відповісти на вимогу ${username} ${tender_uaid} ${complaintID} ${answer_data} null | |
| 564 | + | |
| 565 | +Відповісти на вимогу про виправлення умов лоту | |
| 566 | + [Arguments] ${username} ${tender_uaid} ${complaintID} ${answer_data} | |
| 567 | + [Documentation] Відповісти на вимогу complaintID про виправлення умов лоту для тендера | |
| 568 | + ... tender_uaid, використовуючи при цьому дані answer_data. | |
| 569 | + | |
| 570 | + Відповісти на вимогу ${username} ${tender_uaid} ${complaintID} ${answer_data} null | |
| 571 | + | |
| 572 | +Відповісти на вимогу про виправлення визначення переможця | |
| 573 | + [Arguments] ${username} ${tender_uaid} ${complaintID} ${answer_data} ${award_index} | |
| 574 | + [Documentation] Відповісти на вимогу complaintID про виправлення визначення переможця | |
| 575 | + ... під номером award_index для тендера tender_uaid, використовуючи при цьому дані answer_data. | |
| 576 | + | |
| 577 | + Відповісти на вимогу ${username} ${tender_uaid} ${complaintID} ${answer_data} ${award_index} | |
| 578 | + | |
| 579 | + | |
| 424 | 580 | ######################################################################################################################## |
| 425 | 581 | ################################################### END CLAIM KEYWORDS ############################################# |
| 426 | 582 | ######################################################################################################################## |
| ... | ... | @@ -429,7 +585,7 @@ Resource playtender_tende |
| 429 | 585 | ################################################### BID KEYWORDS ############################################# |
| 430 | 586 | ######################################################################################################################## |
| 431 | 587 | Подати цінову пропозицію |
| 432 | - [Arguments] ${username} ${tender_uaid} ${bid} ${lots_ids} ${features_ids} | |
| 588 | + [Arguments] ${username} ${tender_uaid} ${bid} ${lots_ids}=${None} ${features_ids}=${None} | |
| 433 | 589 | [Documentation] Подати цінову пропозицію bid для тендера tender_uaid |
| 434 | 590 | ... на лоти lots_ids (якщо lots_ids != None) з неціновими |
| 435 | 591 | ... показниками features_ids (якщо features_ids != None). |
| ... | ... | @@ -444,16 +600,108 @@ Resource playtender_tende |
| 444 | 600 | [Documentation] Змінити поле fieldname на fieldvalue цінової пропозиції користувача |
| 445 | 601 | ... username для тендера tender_uaid. |
| 446 | 602 | |
| 447 | - open tender form by uaid ${tender_uaid} | |
| 603 | + open tender page by uaid ${tender_uaid} | |
| 448 | 604 | fill bid form edit ${fieldname} ${fieldvalue} |
| 449 | - submit form and check result ${bid_form_submit_btn_locator} ${bid_form_submit_success_msg} ${tender_created_checker_element_locator} | |
| 605 | + capture page screenshot | |
| 606 | + submit form and check result ${bid_form_submit_btn_locator} ${bid_form_submit_edit_success_msg} ${tender_created_checker_element_locator} | |
| 607 | + wait until page does not contain element with reloading ${tender_sync_element_locator} | |
| 608 | + | |
| 609 | +Скасувати цінову пропозицію | |
| 610 | + [Arguments] ${username} ${tender_uaid} | |
| 611 | + [Documentation] Змінити статус цінової пропозиції для тендера tender_uaid | |
| 612 | + ... користувача username на cancelled. | |
| 613 | + | |
| 614 | + open tender page by uaid ${tender_uaid} | |
| 615 | + fill bid form remove | |
| 616 | + submit form and check result ${bid_form_submit_btn_locator} ${bid_form_submit_edit_success_msg} ${tender_created_checker_element_locator} | |
| 617 | + wait until page does not contain element with reloading ${tender_sync_element_locator} | |
| 618 | + | |
| 619 | +Завантажити документ в ставку | |
| 620 | + [Arguments] ${username} ${path} ${tender_uaid} ${doc_type}=documents ${doc_name}=${None} | |
| 621 | + [Documentation] Завантажити документ типу doc_type, який знаходиться за шляхом path, | |
| 622 | + ... до цінової пропозиції користувача username для тендера tender_uaid. | |
| 623 | + | |
| 624 | + open tender page by uaid ${tender_uaid} | |
| 625 | + add document to bid ${path} ${doc_type} ${doc_name} | |
| 626 | + capture page screenshot | |
| 627 | + submit form and check result ${bid_form_submit_btn_locator} ${bid_form_submit_edit_success_msg} ${tender_created_checker_element_locator} | |
| 628 | + wait until page does not contain element with reloading ${tender_sync_element_locator} | |
| 629 | + | |
| 630 | +Змінити документ в ставці | |
| 631 | + [Arguments] ${username} ${tender_uaid} ${path} ${doc_id} | |
| 632 | + [Documentation] Змінити документ з doc_id в описі в пропозиції користувача username для | |
| 633 | + ... тендера tender_uaid на документ, який знаходиться по шляху path. | |
| 634 | + | |
| 635 | + open tender page by uaid ${tender_uaid} | |
| 636 | + document to bid edit ${path} ${doc_id} | |
| 637 | + capture page screenshot | |
| 638 | + submit form and check result ${bid_form_submit_btn_locator} ${bid_form_submit_edit_success_msg} ${tender_created_checker_element_locator} | |
| 450 | 639 | wait until page does not contain element with reloading ${tender_sync_element_locator} |
| 451 | 640 | |
| 641 | +Змінити документацію в ставці | |
| 642 | + [Arguments] ${username} ${tender_uaid} ${doc_data} ${doc_id} | |
| 643 | + [Documentation] Змінити тип документа з doc_id в заголовку в пропозиції користувача | |
| 644 | + ... username для тендера tender_uaid. Дані про новий тип документа знаходяться в doc_data. | |
| 645 | + | |
| 646 | + open tender page by uaid ${tender_uaid} | |
| 647 | + fill bid form edit document ${doc_data} ${doc_id} | |
| 648 | + capture page screenshot | |
| 649 | + submit form and check result ${bid_form_submit_btn_locator} ${bid_form_submit_edit_success_msg} ${tender_created_checker_element_locator} | |
| 650 | + wait until page does not contain element with reloading ${tender_sync_element_locator} | |
| 651 | + | |
| 652 | +Отримати інформацію із пропозиції | |
| 653 | + [Arguments] ${username} ${tender_uaid} ${field} | |
| 654 | + [Documentation] Отримати значення поля field пропозиції користувача | |
| 655 | + ... username для тендера tender_uaid. | |
| 656 | + | |
| 657 | + open tender page by uaid ${tender_uaid} | |
| 658 | + ${value} = get bid information ${field} | |
| 659 | + [Return] ${value} | |
| 660 | + | |
| 661 | + | |
| 452 | 662 | ######################################################################################################################## |
| 453 | 663 | ################################################### END BID KEYWORDS ############################################# |
| 454 | 664 | ######################################################################################################################## |
| 455 | 665 | ################################################### QUALIFICATION KEYWORDS ############################################# |
| 456 | 666 | ######################################################################################################################## |
| 667 | +Завантажити документ рішення кваліфікаційної комісії | |
| 668 | + [Arguments] ${username} ${document} ${tender_uaid} ${award_num} | |
| 669 | + [Documentation] Завантажити документ, який знаходиться по шляху document до | |
| 670 | + ... постачальника під номером award_num для тендера tender_uaid. | |
| 671 | + | |
| 672 | + open tender page by uaid ${tender_uaid} | |
| 673 | +# open tender form qualification ${award_num} | |
| 674 | +# wait until popup is visible | |
| 675 | + copy file qualification ${username} ${document} ${award_num} | |
| 676 | + | |
| 677 | +Підтвердити постачальника | |
| 678 | + [Arguments] ${username} ${tender_uaid} ${award_num} | |
| 679 | + [Documentation] Перевести постачальника під номером award_num для тендера tender_uaid | |
| 680 | + ... в статус active. | |
| 681 | + | |
| 682 | + open tender page by uaid ${tender_uaid} | |
| 683 | + open tender form qualification ${award_num} | |
| 684 | + confirm award qualification ${username} ${award_num} | |
| 685 | + | |
| 686 | +Дискваліфікувати постачальника | |
| 687 | + [Arguments] ${username} ${tender_uaid} ${award_num} | |
| 688 | + [Documentation] Перевести постачальника під номером award_num для тендера tender_uaid | |
| 689 | + ... в статус unsuccessful. | |
| 690 | + | |
| 691 | + open tender page by uaid ${tender_uaid} | |
| 692 | + open tender form qualification ${award_num} | |
| 693 | + reject award qualification ${username} ${award_num} | |
| 694 | + | |
| 695 | +Скасування рішення кваліфікаційної комісії | |
| 696 | + [Arguments] ${username} ${tender_uaid} ${award_num} | |
| 697 | + [Documentation] Перевести постачальника під номером award_num для тендера tender_uaid | |
| 698 | + ... в статус cancelled. | |
| 699 | + | |
| 700 | + open tender page by uaid ${tender_uaid} | |
| 701 | + open tender form qualification ${award_num} | |
| 702 | +# wait until popup is visible | |
| 703 | + cancel award qualification | |
| 704 | + | |
| 457 | 705 | ######################################################################################################################## |
| 458 | 706 | ################################################### END QUALIFICATION KEYWORDS ######################################## |
| 459 | 707 | ######################################################################################################################## |
| ... | ... | @@ -461,6 +709,15 @@ Resource playtender_tende |
| 461 | 709 | ######################################################################################################################## |
| 462 | 710 | ################################################### LIMITED PROCUREMENT KEYWORDS ###################################### |
| 463 | 711 | ######################################################################################################################## |
| 712 | +Створити постачальника, додати документацію і підтвердити його | |
| 713 | + [Arguments] ${username} ${tender_uaid} ${supplier_data} ${document} | |
| 714 | + [Documentation] Додати постачальника supplier_data для тендера tender_uaid, додати до | |
| 715 | + ... нього документ, який знаходиться по шляху document та перевести в статус active. | |
| 716 | + | |
| 717 | + open tender form by uaid ${tender_uaid} | |
| 718 | + fill tender from award reporting ${supplier_data.data.value.amount} ${supplier_data.data.suppliers[0]} | |
| 719 | + run keyword and ignore error save tender form and wait synchronization | |
| 720 | + confirm award | |
| 464 | 721 | ######################################################################################################################## |
| 465 | 722 | ################################################### END LIMITED PROCUREMENT KEYWORDS ################################## |
| 466 | 723 | ######################################################################################################################## |
| ... | ... | @@ -468,7 +725,289 @@ Resource playtender_tende |
| 468 | 725 | ######################################################################################################################## |
| 469 | 726 | ################################################### OPEN PROCUREMENT KEYWORDS #################################### |
| 470 | 727 | ######################################################################################################################## |
| 728 | +Підтвердити кваліфікацію | |
| 729 | + [Arguments] ${username} ${tender_uaid} ${qualification_num} | |
| 730 | + [Documentation] Перевести кваліфікацію під номером qualification_num до тендера | |
| 731 | + ... tender_uaid в статус active. | |
| 732 | + | |
| 733 | + open tender page by uaid ${tender_uaid} | |
| 734 | + open tender form prequalification ${qualification_num} | |
| 735 | +# wait until popup is visible | |
| 736 | + confirm qualifications | |
| 737 | +# submit current visible popup | |
| 738 | + | |
| 739 | +Відхилити кваліфікацію | |
| 740 | + [Arguments] ${username} ${tender_uaid} ${qualification_num} | |
| 741 | + [Documentation] Перевести кваліфікацію під номером qualification_num до тендера | |
| 742 | + ... tender_uaid в статус unsuccessful. | |
| 743 | + | |
| 744 | + open tender page by uaid ${tender_uaid} | |
| 745 | + open tender form prequalification ${qualification_num} | |
| 746 | +# wait until popup is visible | |
| 747 | + reject qualifications | |
| 748 | +# submit current visible popup | |
| 749 | + | |
| 750 | + | |
| 751 | +Завантажити документ у кваліфікацію | |
| 752 | + [Arguments] ${username} ${document} ${tender_uaid} ${qualification_num} | |
| 753 | + [Documentation] Завантажити документ, який знаходиться по шляху document, до | |
| 754 | + ... кваліфікації під номером qualification_num до тендера tender_uaid. | |
| 755 | + | |
| 756 | + open tender page by uaid ${tender_uaid} | |
| 757 | + | |
| 758 | +Скасувати кваліфікацію | |
| 759 | + [Arguments] ${username} ${tender_uaid} ${qualification_num} | |
| 760 | + [Documentation] Перевести кваліфікацію під номером qualification_num до тендера | |
| 761 | + ... tender_uaid в статус cancelled. | |
| 762 | + | |
| 763 | + open tender page by uaid ${tender_uaid} | |
| 764 | + open tender form prequalification ${qualification_num} | |
| 765 | +# wait until popup is visible | |
| 766 | + cancel qualifications | |
| 767 | + | |
| 768 | +Затвердити остаточне рішення кваліфікації | |
| 769 | + [Arguments] ${username} ${tender_uaid} | |
| 770 | + [Documentation] Перевести тендер tender_uaid в статус active.pre-qualification.stand-still. | |
| 771 | + | |
| 772 | + open tender page by uaid ${tender_uaid} | |
| 773 | + wait until element is visible ${prequalification_form_approve_open_btn_locator} 30 | |
| 774 | + click visible element ${prequalification_form_approve_open_btn_locator} | |
| 775 | + approve the final qualification decision | |
| 776 | + | |
| 777 | +Перевести тендер на статус очікування обробки мостом | |
| 778 | + [Arguments] ${username} ${tender_uaid} | |
| 779 | + [Documentation] Перевести тендер tender_uaid в статус active.stage2.waiting. | |
| 780 | + | |
| 781 | + open tender page by uaid ${tender_uaid} | |
| 782 | + confirm-stage2 | |
| 783 | + | |
| 784 | +Отримати доступ до тендера другого етапу | |
| 785 | + [Arguments] ${username} ${tender_uaid} | |
| 786 | + [Documentation] Отримати тендер другого етапу по tender id, зберегти його. | |
| 787 | + | |
| 788 | + open tender page by uaid ${tender_uaid} | |
| 789 | + Log to Console ${tender_uaid} | |
| 790 | + | |
| 791 | +Активувати другий етап | |
| 792 | + [Arguments] ${username} ${tender_uaid} | |
| 793 | + [Documentation] Перевести тендер tender_uaid в статус active.tendering. | |
| 794 | + | |
| 795 | + open tender form by uaid ${tender_uaid} | |
| 796 | + activate stage 2 | |
| 797 | +# fill tender form ${tender_data} | |
| 798 | + save tender form and wait synchronization | |
| 799 | + | |
| 800 | +Отримати тендер другого етапу та зберегти його | |
| 801 | + [Arguments] ${username} ${tender_uaid} | |
| 802 | + [Documentation] Отримати тендер другого етапу по tender id, зберегти його. | |
| 803 | + | |
| 804 | + open tender page by uaid ${tender_uaid} | |
| 805 | + Log to Console ${tender_uaid} | |
| 806 | + | |
| 471 | 807 | ######################################################################################################################## |
| 472 | 808 | ################################################### END OPEN PROCUREMENT KEYWORDS ############################### |
| 473 | 809 | ######################################################################################################################## |
| 474 | 810 | |
| 811 | +######################################################################################################################## | |
| 812 | +################################################### DOCUMENT KEYWORDS #################################### | |
| 813 | +######################################################################################################################## | |
| 814 | +Отримати інформацію із документа | |
| 815 | + [Arguments] ${username} ${tender_uaid} ${doc_id} ${field} | |
| 816 | + [Documentation] Отримати значення поля field документа doc_id з тендера | |
| 817 | + ... tender_uaid для перевірки правильності відображення цього поля. | |
| 818 | + | |
| 819 | + open tender page by uaid ${tender_uaid} | |
| 820 | + ${return_value} = Run Keyword If 'title' == '${field}' Отримати інформацію із документа title ${doc_id} | |
| 821 | + [return] ${return_value} | |
| 822 | + | |
| 823 | +Отримати документ | |
| 824 | + [Arguments] ${username} ${tender_uaid} ${doc_id} | |
| 825 | + [Documentation] Завантажити файл з doc_id в заголовку для тендера tender_uaid в | |
| 826 | + ... директорію ${OUTPUT_DIR} для перевірки вмісту цього файлу. | |
| 827 | + | |
| 828 | + open tender page by uaid ${tender_uaid} | |
| 829 | + ${tender_new_doc_locator} = replace string ${tender_new_doc_locator_tpl} %doc_id% ${doc_id} | |
| 830 | + wait until page contains element with reloading ${tender_new_doc_locator} | |
| 831 | + | |
| 832 | + ${file_link} = Execute Javascript return $('.docs__list .docs__item.js-item:first a.doc__link[href*="https://public-docs-sandbox.prozorro.gov.ua"]').val('.docs__list .docs__item.js-item:first a.doc__link[href*="https://public-docs-sandbox.prozorro.gov.ua"]').attr("href") | |
| 833 | + ${file_name} = get text ${tender_new_doc_locator} | |
| 834 | + download_file ${file_link} ${file_name} ${OUTPUT_DIR} | |
| 835 | + [return] ${file_name} | |
| 836 | + | |
| 837 | + | |
| 838 | +Отримати документ до лоту | |
| 839 | + [Arguments] ${username} ${tender_uaid} ${lot_id} ${doc_id} | |
| 840 | + [Documentation] Завантажити файл з doc_id в заголовку для тендера tender_uaid для лоту lot_id | |
| 841 | + ... в директорію ${OUTPUT_DIR} для перевірки вмісту цього файлу. | |
| 842 | + | |
| 843 | + open tender page by uaid ${tender_uaid} | |
| 844 | + ${tender_new_doc_locator} = replace string ${tender_new_doc_locator_tpl} %doc_id% ${doc_id} | |
| 845 | + wait until page contains element with reloading ${tender_new_doc_locator} | |
| 846 | + ${file_link} = Execute Javascript return $('.docs__list .docs__item.js-item:last a.doc__link[href*="https://public-docs-sandbox.prozorro.gov.ua"]').val('.docs__list .docs__item.js-item:first a.doc__link[href*="https://public-docs-sandbox.prozorro.gov.ua"]').attr("href") | |
| 847 | + ${file_name} = get text ${tender_new_doc_locator} | |
| 848 | + download_file ${file_link} ${file_name} ${OUTPUT_DIR} | |
| 849 | + [return] ${file_name} | |
| 850 | + | |
| 851 | +Отримати посилання на аукціон для глядача | |
| 852 | + [Arguments] ${username} ${tender_uaid} ${lot_id}=Empty | |
| 853 | + [Documentation] Отримати посилання на аукціон для тендера tender_uaid (або для лоту з | |
| 854 | + ... lot_id в описі для тендера tender_uaid, якщо lot_id != Empty). | |
| 855 | + | |
| 856 | + open tender page by uaid ${tender_uaid} | |
| 857 | + log many ${mode} | |
| 858 | + run keyword if "${mode}" not in "belowThreshold" wait until page contains element with reloading ${tender_auction_locator} 10 | |
| 859 | + run keyword if "${mode}" in "belowThreshold" wait until page contains element with reloading ${tender_auction_belowThreshold_input_locator} | |
| 860 | + ${return_value} = run keyword if "${mode}" not in "belowThreshold below_funders" Execute Javascript return $('#auction-info a[href*="https://auction-sandbox"]').attr("href") | |
| 861 | +# ${return_value} = run keyword if "${mode}" in "belowThreshold" Execute Javascript return $('#aside-part-pjax a[href*="https://auction-sandbox"]').attr("href") | |
| 862 | + ... ELSE IF '${mode}' in 'belowThreshold below_funders' Execute Javascript return $('#aside-part-pjax a[href*="https://auction-sandbox"]').attr("href") | |
| 863 | + [return] ${return_value} | |
| 864 | + | |
| 865 | +Отримати посилання на аукціон для учасника | |
| 866 | + [Arguments] ${username} ${tender_uaid} ${lot_id}=Empty | |
| 867 | + [Documentation] Отримати посилання на участь в аукціоні для користувача username для тендера | |
| 868 | + ... tender_uaid (або для лоту з lot_id в описі для тендера tender_uaid, якщо lot_id != Empty). | |
| 869 | + | |
| 870 | + open tender page by uaid ${tender_uaid} | |
| 871 | + log many ${mode} | |
| 872 | + run keyword if "${mode}" not in "belowThreshold" wait until page contains element with reloading ${tender_auction_locator} 10 | |
| 873 | + run keyword if "${mode}" in "belowThreshold" wait until page contains element with reloading ${tender_auction_belowThreshold_input_locator} | |
| 874 | + ${return_value} = run keyword if "${mode}" not in "belowThreshold" Execute Javascript return $('#auction-info a[href*="https://auction-sandbox"]').attr("href") | |
| 875 | +# ${return_value} = run keyword if "${mode}" in "belowThreshold" Execute Javascript return $('#aside-part-pjax a[href*="https://auction-sandbox"]').attr("href") | |
| 876 | + ... ELSE IF '${mode}' in 'belowThreshold' Execute Javascript return $('#aside-part-pjax a[href*="https://auction-sandbox"]').attr("href") | |
| 877 | + [return] ${return_value} | |
| 878 | +######################################################################################################################## | |
| 879 | +################################################### END DOCUMENT KEYWORDS ############################### | |
| 880 | +######################################################################################################################## | |
| 881 | + | |
| 882 | +######################################################################################################################## | |
| 883 | +################################################### FUNDERS KEYWORDS ############################### | |
| 884 | +######################################################################################################################## | |
| 885 | + | |
| 886 | +Видалити донора | |
| 887 | + [Arguments] ${username} ${tender_uaid} ${funders_index} | |
| 888 | + [Documentation] Видалити донора для користувача username для тендера ${tender_uaid} з індексом ${funders_index} | |
| 889 | + | |
| 890 | + open tender form by uaid ${tender_uaid} | |
| 891 | + open popup by btn locator ${plan_form_general_panel_edit_btn_locator} | |
| 892 | + click visible element ${tender_form_general_tender_funder_locator} | |
| 893 | + submit current visible popup | |
| 894 | + save tender form and wait synchronization | |
| 895 | + | |
| 896 | +Додати донора | |
| 897 | + [Arguments] ${username} ${tender_uaid} ${funders_data} | |
| 898 | + [Documentation] Додати донора для користувача username для тендера ${tender_uaid} з даними ${funders_data} | |
| 899 | + | |
| 900 | + open tender form by uaid ${tender_uaid} | |
| 901 | + open popup by btn locator ${plan_form_general_panel_edit_btn_locator} | |
| 902 | + click visible element ${tender_form_general_tender_funder_locator} | |
| 903 | + ${funders} = create list ${funders_data} | |
| 904 | + fill tender form funders ${funders} | |
| 905 | + submit current visible popup | |
| 906 | + save tender form and wait synchronization | |
| 907 | + | |
| 908 | +######################################################################################################################## | |
| 909 | +################################################### END FUNDERS KEYWORDS #################################### | |
| 910 | +######################################################################################################################## | |
| 911 | +######################################################################################################################## | |
| 912 | +################################################### CONTRACTS KEYWORDS ############################### | |
| 913 | +######################################################################################################################## | |
| 914 | + | |
| 915 | +Редагувати угоду | |
| 916 | + [Arguments] ${username} ${tender_uaid} ${contract_index} ${field_name} ${amount} | |
| 917 | + [Documentation] Редагувати контракт для користувача username для тендера ${tender_uaid} з індексом ${contract_index} | |
| 918 | + ... для поля field_name та значення amount. | |
| 919 | + | |
| 920 | + open tender page by uaid ${tender_uaid} | |
| 921 | + edit contract ${contract_index} ${field_name} ${amount} | |
| 922 | + wait until page does not contain element with reloading ${tender_sync_element_locator} | |
| 923 | + | |
| 924 | +Встановити дату підписання угоди | |
| 925 | + [Arguments] ${username} ${tender_uaid} ${contract_index} ${dateSigned} | |
| 926 | + [Documentation] Редагувати контракт для користувача username для тендера ${tender_uaid} з індексом ${contract_index} | |
| 927 | + ... для поля Дата підписання задати значення dateSigned. | |
| 928 | + | |
| 929 | + open tender page by uaid ${tender_uaid} | |
| 930 | +# edit contract ${contract_index} ${dateSigned} ${dateSigned} | |
| 931 | + click visible element ${contract_form_0_open_btn_locator} | |
| 932 | + run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 5 | |
| 933 | + wait until element is visible ${contract_contractform_contract_number_input_locator} 60 | |
| 934 | + input datetime to exist visible input ${contract_contractform_date_signed_input_locator} ${dateSigned} | |
| 935 | + | |
| 936 | + 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} | |
| 937 | + capture page screenshot | |
| 938 | + | |
| 939 | + wait until page does not contain element with reloading ${tender_sync_element_locator} | |
| 940 | + | |
| 941 | +Вказати період дії угоди | |
| 942 | + [Arguments] ${username} ${tender_uaid} ${contract_index} ${startDate} ${endDate} | |
| 943 | + [Documentation] Редагувати контракт для користувача username для тендера ${tender_uaid} з індексом ${contract_index} | |
| 944 | + ... для поля Дата підписання задати значення dateSigned. | |
| 945 | + | |
| 946 | + open tender page by uaid ${tender_uaid} | |
| 947 | +# edit contract ${contract_index} ${dateSigned} ${dateSigned} | |
| 948 | + click visible element ${contract_form_0_open_btn_locator} | |
| 949 | + run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 5 | |
| 950 | + wait until element is visible ${contract_contractform_contract_number_input_locator} 60 | |
| 951 | + input datetime to exist visible input ${contract_contractform_date_start_input_locator} ${startDate} | |
| 952 | + input datetime to exist visible input ${contract_contractform_date_end_input_locator} ${endDate} | |
| 953 | + | |
| 954 | + 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} | |
| 955 | + capture page screenshot | |
| 956 | + | |
| 957 | + wait until page does not contain element with reloading ${tender_sync_element_locator} | |
| 958 | + | |
| 959 | +Завантажити документ в угоду | |
| 960 | + [Arguments] ${username} ${document} ${tender_uaid} ${contract_index} | |
| 961 | + [Documentation] Редагувати контракт для користувача username для тендера ${tender_uaid} з індексом ${contract_index} | |
| 962 | + ... для поля Дата підписання задати значення dateSigned. | |
| 963 | + | |
| 964 | + open tender page by uaid ${tender_uaid} | |
| 965 | +# edit contract ${contract_index} ${dateSigned} ${dateSigned} | |
| 966 | + click visible element ${contract_form_0_open_btn_locator} | |
| 967 | + run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 5 | |
| 968 | + wait until element is visible ${contract_contractform_contract_number_input_locator} 60 | |
| 969 | + choose file ${add_file_to_contract_contractform_locator} ${document} | |
| 970 | + wait until page does not contain element ${popup_dynamic_form_loading_element_locator} 60 | |
| 971 | + wait until element is visible ${contract_contractform_add_document_type_input_locator} 60 | |
| 972 | + capture page screenshot | |
| 973 | + Run Keyword And Ignore Error Execute Javascript $('.fancybox-is-open .fancybox-content select[id*="-document_type"]:last').val('contractSigned').change() | |
| 974 | + capture page screenshot | |
| 975 | + click visible element ${contract_contractform_add_document_description_btn_locator} | |
| 976 | + capture page screenshot | |
| 977 | + wait until element is visible ${contract_contractform_add_document_description_input_locator} | |
| 978 | + input text to exist visible input ${contract_contractform_add_document_description_input_locator} test2 | |
| 979 | + capture page screenshot | |
| 980 | + click visible element ${contract_contractform_add_document_close_description_btn_locator} | |
| 981 | + capture page screenshot | |
| 982 | + | |
| 983 | + 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} | |
| 984 | + capture page screenshot | |
| 985 | + | |
| 986 | + wait until page does not contain element with reloading ${tender_sync_element_locator} | |
| 987 | + | |
| 988 | +Підтвердити підписання контракту | |
| 989 | + [Arguments] ${username} ${tender_uaid} ${contract_index} | |
| 990 | + [Documentation] Редагувати контракт для користувача username для тендера ${tender_uaid} з індексом ${contract_index} | |
| 991 | + ... для поля Дата підписання задати значення dateSigned. | |
| 992 | + | |
| 993 | + open tender page by uaid ${tender_uaid} | |
| 994 | +# edit contract ${contract_index} ${dateSigned} ${dateSigned} | |
| 995 | + click visible element ${contract_active_form_open_btn_locator} | |
| 996 | + run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 5 | |
| 997 | + wait until element is visible ${contract_contractform_submit_btn_locator} 60 | |
| 998 | + | |
| 999 | + Execute Javascript $('.fancybox-is-open .fancybox-content button.btn.btn-success').click() | |
| 1000 | + Run Keyword And Ignore Error wait until element is visible ${qualification_ecp_form_open_locator} 60 | |
| 1001 | + run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 10 | |
| 1002 | + capture page screenshot | |
| 1003 | + run keyword and ignore error Load Sign | |
| 1004 | + capture page screenshot | |
| 1005 | + | |
| 1006 | + run keyword and ignore error submit form and check result ${contract_contractform_submit_btn_locator} ${contract_contractform_active_submit_success_msg} ${contract_active_form_open_btn_locator} | |
| 1007 | + capture page screenshot | |
| 1008 | + | |
| 1009 | + wait until page does not contain element with reloading ${tender_sync_element_locator} | |
| 1010 | + | |
| 1011 | +######################################################################################################################## | |
| 1012 | +################################################### END CONTRACTS KEYWORDS #################################### | |
| 1013 | +######################################################################################################################## | ... | ... |
| ... | ... | @@ -11,89 +11,221 @@ fill bid form |
| 11 | 11 | [Arguments] ${tender_uaid} ${bid} ${lots_ids} ${features_ids} |
| 12 | 12 | [Documentation] Подати цінову пропозицію bid для тендера tender_uaid на лоти lots_ids (якщо lots_ids != None) з неціновими показниками features_ids (якщо features_ids != None). |
| 13 | 13 | |
| 14 | - click visible element ${bid_form_open_btn_locator} | |
| 14 | + open popup by btn locator ${bid_form_open_btn_locator} ${bid_popup_locator} | |
| 15 | + ${value} = get from dictionary by keys ${bid.data} value amount | |
| 16 | +# ${amount} = run keyword if condition is not none ${value} convert_float_to_string ${bid.data.value.amount} | |
| 17 | + run keyword if condition is not none ${value} input number to exist visible input ${bid_form_value_amount_input_locator} ${value} | |
| 15 | 18 | capture page screenshot |
| 16 | - wait until popup is visible | |
| 17 | - ${value} = get from dictionary by keys ${bid} value amount | |
| 18 | - ${amount} = run keyword if condition is not none ${value} convert_float_to_string ${bid.data.value.amount} | |
| 19 | - run keyword if condition is not none ${value} input number to exist visible input ${bid_form_value_amount_input_locator} ${amount} | |
| 20 | - ${value_yearly_payments_percentage} = get from dictionary by keys ${bid} value yearlyPaymentsPercentage | |
| 21 | - ${yearly_payments_percentage} = run keyword if condition is not none ${value_yearly_payments_percentage} convert_float_to_string ${bid.data.value.yearlyPaymentsPercentage} | |
| 22 | - 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} | |
| 23 | - ${contract_duration_years} = get from dictionary by keys ${bid} value contractDuration years | |
| 24 | - 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} | |
| 25 | - ${contract_duration_days} = get from dictionary by keys ${bid} value contractDuration days | |
| 26 | - 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} | |
| 27 | - ${annual_costs_reduction} = get from dictionary by keys ${bid} value annualCostsReduction | |
| 28 | - run keyword if condition is not none ${annual_costs_reduction} Подати цінову пропозицію Esco AnnualCostsReduction ${value.annualCostsReduction} | |
| 29 | 19 | # ${lots} = get from dictionary by keys ${data} lots |
| 30 | - run keyword if condition is not none ${lots_ids} fill bid form lots ${bid} | |
| 20 | + run keyword if condition is not none ${lots_ids} fill bid form lots ${bid} ${lots_ids} ${features_ids} | |
| 21 | + capture page screenshot | |
| 31 | 22 | # run keyword if condition is none ${lots_ids} fill bid form whithout lots ${bid} |
| 32 | 23 | # ${features} = get from dictionary by keys ${data} features |
| 33 | 24 | # run keyword if condition is not none ${features_ids} fill bid form features ${bid} ${tender_form_general_panel_add_feature_btn_locator} |
| 34 | 25 | fill bid required documents_all |
| 35 | - submit form and check result ${bid_form_submit_btn_locator} ${bid_form_submit_success_msg} ${tender_created_checker_element_locator} | |
| 26 | + capture page screenshot | |
| 27 | +## submit form and check result ${bid_form_submit_btn_locator} ${bid_form_submit_success_msg} ${tender_created_checker_element_locator} | |
| 36 | 28 | |
| 37 | 29 | fill bid form lots |
| 38 | - [Arguments] ${bid} ${lots_ids} ${features_ids} | |
| 30 | + [Arguments] ${bid} ${lots_ids}=${None} ${features_ids}=${None} | |
| 39 | 31 | [Documentation] Заповнити лотову цінову пропозицію bid для тендера tender_uaid на лоти lots_ids з неціновими показниками features_ids (якщо features_ids != None). |
| 40 | 32 | |
| 41 | - ${lots} = get from dictionary by keys ${bid} lotValues | |
| 33 | + ${lots} = get from dictionary by keys ${bid.data} lotValues | |
| 42 | 34 | ${lots_length} = Get Length ${lots} |
| 43 | 35 | : FOR ${INDEX} IN RANGE 0 ${lots_length} |
| 44 | - \ ${amount} = convert_float_to_string ${bid.data.value.amount} | |
| 45 | - \ run keyword and ignore error input number to exist visible input ${bid_form_value_amount_input_locator} ${amount} | |
| 46 | - \ ${self_qualified} = get from dictionary by keys ${bid} selfQualified | |
| 47 | - \ run keyword and ignore error ${self_qualified} click visible element ${bid_form_value_self_qualified_input_locator} | |
| 48 | - \ ${self_eligible} = get from dictionary by keys ${bid} selfEligible | |
| 36 | + \ 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} | |
| 37 | + \ capture page screenshot | |
| 38 | + \ ${self_qualified} = get from dictionary by keys ${bid.data} selfQualified | |
| 39 | + \ run keyword if condition is not none ${self_qualified} click visible element ${bid_form_value_self_qualified_input_locator} | |
| 40 | + \ capture page screenshot | |
| 41 | + \ ${self_eligible} = get from dictionary by keys ${bid.data} selfEligible | |
| 49 | 42 | \ run keyword if condition is not none ${self_eligible} click visible element ${bid_form_value_self_eligible_input_locator} |
| 50 | - \ run keyword if condition is not none ${features_ids} fill bid form features ${bid.data.parameters} | |
| 43 | + \ capture page screenshot | |
| 44 | + \ ${feature_id} = get from dictionary by keys ${bid.data} parameters | |
| 45 | + \ run keyword if condition is not none ${feature_id} fill bid form features ${feature_id} | |
| 46 | + \ capture page screenshot | |
| 47 | + \ run keyword if '${mode}' in 'open_esco' fill bid form lots Esco ${bid.data.lotValues} | |
| 51 | 48 | |
| 52 | 49 | fill bid form features |
| 53 | 50 | [Arguments] ${bid_parameters} |
| 54 | 51 | [Documentation] Заповнити нецінові показники цінової пропозиції. |
| 55 | 52 | |
| 53 | + log many ${bid_parameters} | |
| 56 | 54 | ${features_length} = Get Length ${bid_parameters} |
| 57 | 55 | : FOR ${INDEX} IN RANGE 0 ${features_length} |
| 58 | - \ ${bid_form_feature_input_locator} replace string ${bid_form_feature_input_locator_tpl} %title% ${features[${INDEX}]['code']} | |
| 56 | + \ ${bid_form_feature_input_locator} replace string ${bid_form_feature_input_locator_tpl} %title% ${bid_parameters[${INDEX}]['code']} | |
| 57 | + \ ${value_enum} = convert float to string ${bid_parameters[${INDEX}]['value']} | |
| 58 | + \ ${bid_form_feature_value_input_locator} set variable ${bid_form_feature_input_locator} ${bid_form_feature_value_input_locator_tpl} | |
| 59 | + \ ${bid_form_feature_value_input_locator} replace string ${bid_form_feature_value_input_locator} _ ' ' | |
| 60 | + #\ ${bid_form_feature_value_input_locator} replace string ${bid_form_feature_value_input_locator} %value% ${bid_parameters[${INDEX}]['value']} | |
| 61 | + \ ${bid_form_feature_value_input_locator} replace string ${bid_form_feature_value_input_locator} %value% ${value_enum} | |
| 59 | 62 | \ Run Keyword And Ignore Error click visible element ${bid_form_feature_input_locator} |
| 60 | - \ Run Keyword And Ignore Error Select From List By Label ${bid_form_feature_input_locator} ${features[${INDEX}]['value']} | |
| 61 | - | |
| 62 | -Подати цінову пропозицію Esco AnnualCostsReduction | |
| 63 | + \ capture page screenshot | |
| 64 | + \ Run Keyword And Ignore Error click visible element ${bid_form_feature_value_input_locator} | |
| 65 | + \ capture page screenshot | |
| 66 | + \ Run Keyword And Ignore Error click visible element jquery=select.select2-hidden-accessible:nth(${INDEX}) [data-weight-source="0"] | |
| 67 | + #\ Run Keyword And Ignore Error click visible element ${select.select2-hidden-accessible:nth(${INDEX}) [data-weight-source="0"]} | |
| 68 | + \ capture page screenshot | |
| 69 | + | |
| 70 | +fill bid form lots Esco | |
| 71 | + [Arguments] ${values} | |
| 72 | + [Documentation] Заповнити цінову пропозицію Esco | |
| 73 | + | |
| 74 | + log many ${values} | |
| 75 | + ${values_length} = Get Length ${values} | |
| 76 | + : FOR ${INDEX} IN RANGE 0 ${values_length} | |
| 77 | + \ input number to exist visible input ${bid_form_value_yearly_payments_percentage_input_locator} ${values[${INDEX}].value.yearlyPaymentsPercentage} | |
| 78 | + \ capture page screenshot | |
| 79 | + \ input text to exist visible input ${bid_form_value_contract_duration_years_input_locator} ${values[${INDEX}].value.contractDuration.years} | |
| 80 | + \ capture page screenshot | |
| 81 | + \ input text to exist visible input ${bid_form_value_contract_duration_days_input_locator} ${values[${INDEX}].value.contractDuration.days} | |
| 82 | + \ capture page screenshot | |
| 83 | + \ fill bid form lots Esco AnnualCostsReduction ${values[${INDEX}].value.annualCostsReduction} | |
| 84 | + \ capture page screenshot | |
| 85 | + | |
| 86 | +fill bid form lots Esco AnnualCostsReduction | |
| 63 | 87 | [Arguments] ${values} |
| 64 | 88 | [Documentation] Заповнити цінову пропозицію Esco (параметр AnnualCostsReduction). |
| 65 | 89 | |
| 66 | - ${input_index } = set variable 1 | |
| 90 | + ${input_index} = set variable 1 | |
| 67 | 91 | : FOR ${value} IN @{values} |
| 68 | - \ ${bid_form_value_annual_costs_reduction_input_locator} replace string ${bid_form_value_annual_costs_reduction_input_locator_tpl} %index% ${input_index} | |
| 69 | - \ input float ${bid_form_value_annual_costs_reduction_input_locator} ${value} | |
| 92 | + \ ${input_index_tmp}= convert to string ${input_index} | |
| 93 | + \ ${bid_form_value_annual_costs_reduction_input_locator} replace string ${bid_form_value_annual_costs_reduction_input_locator_tpl} %index% ${input_index_tmp} | |
| 94 | + \ input number to exist visible input ${bid_form_value_annual_costs_reduction_input_locator} ${value} | |
| 70 | 95 | \ ${input_index} = evaluate ${input_index} + 1 |
| 71 | 96 | |
| 72 | 97 | fill bid required documents_all |
| 73 | - [Arguments] ${values} | |
| 98 | + [Arguments] | |
| 74 | 99 | [Documentation] Додати фейковий документ до цінової пропозиції при створенні. |
| 75 | 100 | |
| 76 | 101 | ${file_path} ${file_name} ${file_content} = create_fake_doc |
| 77 | - click visible element ${bid_form_add_document_all_btn_locator} | |
| 78 | - choose file ${add_file_to_form_locator} ${file_path} | |
| 79 | - wait until element is visible ${bid_form_add_document_type_input_locator} ${waiting_timeout} ${waiting_error} | |
| 102 | +# 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 | |
| 103 | + #click visible element ${bid_form_add_document_all_btn_locator} | |
| 104 | + capture page screenshot | |
| 105 | +### execute javascript $('.fancybox-is-open .fancybox-content .field-bidform-documents .js-upload-documents input[type$="file"]:first').click() | |
| 106 | + capture page screenshot | |
| 107 | + choose file ${add_file_to_bid_form_locator} ${file_path} | |
| 108 | + capture page screenshot | |
| 109 | + wait until element is visible ${bid_form_add_document_type_input_locator} | |
| 80 | 110 | # submit current visible popup |
| 81 | 111 | Run Keyword And Ignore Error Select From List By Value ${bid_form_add_document_type_input_locator} qualificationDocuments |
| 82 | 112 | click visible element ${bid_form_add_document_description_btn_locator} |
| 83 | - wait until element is visible ${bid_form_add_document_description_input_locator} ${waiting_timeout} ${waiting_error} | |
| 113 | + capture page screenshot | |
| 114 | + wait until element is visible ${bid_form_add_document_description_input_locator} | |
| 84 | 115 | input text to exist visible input ${bid_form_add_document_description_input_locator} test2 |
| 85 | 116 | click visible element ${bid_form_add_document_close_description_btn_locator} |
| 117 | + capture page screenshot | |
| 86 | 118 | |
| 87 | 119 | fill bid form edit |
| 88 | - [Arguments] ${tender_uaid} ${fieldname} ${fieldvalue} | |
| 120 | + [Arguments] ${fieldname} ${fieldvalue} | |
| 89 | 121 | [Documentation] Змінити поле fieldname на fieldvalue цінової пропозиції користувача username для тендера tender_uaid. |
| 90 | 122 | |
| 91 | - click visible element ${bid_form_open_btn_locator} | |
| 123 | + open popup by btn locator ${bid_form_open_btn_locator} ${bid_popup_locator} | |
| 124 | + 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} | |
| 125 | +# submit form and check result ${bid_form_submit_btn_locator} ${bid_form_submit_edit_success_msg} ${tender_created_checker_element_locator} | |
| 126 | + | |
| 127 | + | |
| 128 | +add document to bid | |
| 129 | + [Arguments] ${path} ${doc_type} ${doc_name} | |
| 130 | + #=documents | |
| 131 | + [Documentation] Завантажити документ типу doc_type, який знаходиться за шляхом path, | |
| 132 | + ... до цінової пропозиції користувача username для тендера tender_uaid. | |
| 133 | + | |
| 134 | + open popup by btn locator ${bid_form_open_btn_locator} ${bid_popup_locator} | |
| 135 | +### execute javascript $('.fancybox-is-open .fancybox-content .field-bidform-documents .js-upload-documents input[type$="file"]:first').click() | |
| 136 | + choose file ${add_file_to_bid_form_locator} ${path} | |
| 137 | + run keyword and ignore error wait until page does not contain element ${popup_dynamic_form_loading_element_locator} | |
| 138 | + wait until element is visible ${bid_form_add_document_type_input_locator} | |
| 139 | +# submit current visible popup | |
| 140 | + log many ${doc_type} | |
| 141 | +# run keyword if '${doc_type}' == 'documents' Select From List By Value ${bid_form_add_document_type_input_locator} qualificationDocuments | |
| 142 | +# ... else Select From List By Value ${bid_form_add_document_type_input_locator} ${doc_type} | |
| 143 | + Run Keyword And Ignore Error select from visible list by value ${bid_form_add_document_type_input_locator} commercialProposal | |
| 144 | + 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 | |
| 145 | + 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 | |
| 146 | + 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 | |
| 147 | + 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 | |
| 148 | + 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 | |
| 149 | + capture page screenshot | |
| 150 | + | |
| 151 | + Run Keyword And Ignore Error Execute Javascript $('.fancybox-is-open .fancybox-content .field-bidform-documents select[id*="-document_type"]:last').val('commercialProposal').change() | |
| 152 | + capture page screenshot | |
| 153 | + 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() | |
| 154 | + 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() | |
| 155 | + capture page screenshot | |
| 156 | + 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() | |
| 157 | + capture page screenshot | |
| 158 | + 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() | |
| 159 | + capture page screenshot | |
| 160 | + 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() | |
| 161 | +# Run Keyword And Ignore Error select from visible list by value ${bid_form_add_document_type_input_locator} commercialProposal | |
| 162 | +# 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 | |
| 163 | +# 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 | |
| 164 | +# 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 | |
| 165 | +# 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 | |
| 166 | + capture page screenshot | |
| 167 | + | |
| 168 | + click visible element ${bid_form_add_document_description_btn_locator} | |
| 169 | + wait until element is visible ${bid_form_add_document_description_input_locator} | |
| 170 | + input text to exist visible input ${bid_form_add_document_description_input_locator} test2 | |
| 171 | + click visible element ${bid_form_add_document_close_description_btn_locator} | |
| 172 | + | |
| 173 | +document to bid edit | |
| 174 | + [Arguments] ${path} ${doc_type}=documents | |
| 175 | + [Documentation] Змінити документ з doc_id в описі в пропозиції користувача username для | |
| 176 | + ... тендера tender_uaid на документ, який знаходиться по шляху path. | |
| 177 | + | |
| 178 | + open popup by btn locator ${bid_form_open_btn_locator} ${bid_popup_locator} | |
| 179 | +# click visible element ${bid_form_edit_document_all_btn_locator} | |
| 180 | + capture page screenshot | |
| 181 | + choose file ${bid_form_edit_document_all_btn_locator} ${path} | |
| 182 | + capture page screenshot | |
| 183 | +# wait until element is visible ${bid_form_add_document_type_input_locator} | |
| 184 | + | |
| 185 | +fill bid form edit document | |
| 186 | + [Arguments] ${doc_data} ${doc_id} | |
| 187 | + [Documentation] Змінити тип документа з doc_id в заголовку в пропозиції користувача | |
| 188 | + ... username для тендера tender_uaid. Дані про новий тип документа знаходяться в doc_data. | |
| 189 | + | |
| 190 | + open popup by btn locator ${bid_form_open_btn_locator} ${bid_popup_locator} | |
| 191 | + ##### BOF - TMP for confidentiality##### | |
| 192 | + execute javascript $('#tender-bid-form .documents-dynamic-forms-wrapper:last [href$="#edit"]:last').click() | |
| 193 | +# click visible element $('#tender-bid-form .documents-dynamic-forms-wrapper:last [href$="#edit"]:last').click() | |
| 194 | + set element scroll into view ${bid_form_add_document_close_description_btn_locator} | |
| 195 | + capture page screenshot | |
| 196 | + wait until element is visible ${bid_form_add_document_description_input_locator} 60 | |
| 197 | + execute javascript $('#tender-bid-form .documents-dynamic-forms-wrapper:last .popover.fade.top.in [id$="-confidentiality"]').click() | |
| 198 | +# click visible element ${bid_form_add_document_confidentiality_input_locator} | |
| 199 | + capture page screenshot | |
| 200 | + click visible element ${bid_form_add_document_close_description_btn_locator} | |
| 201 | + capture page screenshot | |
| 202 | + ##### EOF - TMP ##### | |
| 203 | + | |
| 204 | +get bid information | |
| 205 | + [Arguments] ${field} | |
| 206 | + [Documentation] Отримати значення поля field пропозиції користувача | |
| 207 | + ... username для тендера tender_uaid. | |
| 208 | + | |
| 209 | + capture page screenshot | |
| 210 | + open popup by btn locator ${bid_form_open_btn_locator} ${bid_popup_locator} | |
| 211 | +# click visible element ${bid_form_open_btn_locator} | |
| 212 | + capture page screenshot | |
| 92 | 213 | wait until popup is visible |
| 93 | - Run Keyword If '${fieldname}' == 'lotValues[0].value.amount' and '${mode}' != 'esco' Run Keywords | |
| 94 | - ... ${amount} = convert_float_to_string ${fieldvalue} | |
| 95 | - ... input number to exist visible input ${bid_form_value_amount_input_locator} ${amount} | |
| 96 | - submit form and check result ${bid_form_submit_btn_locator} ${bid_form_submit_edit_success_msg} ${tender_created_checker_element_locator} | |
| 214 | +# ${question_open_form_answer_locator} = replace string ${question_open_form_answer_btn_locator_tpl} %title% ${question_id} | |
| 215 | +# wait until page contains element with reloading ${question_open_form_answer_locator} | |
| 216 | + capture page screenshot | |
| 217 | + #${return_value} = Run Keyword If 'lotValues[0].value.amount' == '${field}' get value by locator on opened page ${bid_lotValues_0_value_amount_value_locator} | |
| 218 | + ${return_value} = Run Keyword If 'lotValues[0].value.amount' == '${field}' get value by locator on opened page ${bid_lotValues_0_value_amount_value_locator} | |
| 219 | + ... ELSE Run Keyword If 'status' == '${field}' get_text ${question_answer_value_locator} | |
| 220 | + ... ELSE Run Keyword If 'value.amount' == '${field}' get value by locator on opened page ${bid_form_value_amount_input_locator} | |
| 221 | +# submit current visible popup | |
| 222 | + ${return_value} = Run Keyword If 'lotValues[0].value.amount' == '${field}' or 'value.amount' == '${field}' Convert To Number ${return_value} | |
| 223 | + [Return] ${return_value} | |
| 97 | 224 | |
| 225 | +fill bid form remove | |
| 226 | + [Documentation] Змінити статус цінової пропозиції для тендера tender_uaid | |
| 227 | + ... користувача username на cancelled. | |
| 98 | 228 | |
| 229 | + click visible element ${bid_form_remove_btn_locator} | |
| 230 | + submit form and check result ${alert_opened_close_bid_btn_locator} ${bid_form_submit_remove_success_msg} ${tender_created_checker_element_locator} | |
| 99 | 231 | ... | ... |
| ... | ... | @@ -2,9 +2,14 @@ |
| 2 | 2 | |
| 3 | 3 | #bids |
| 4 | 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"] | |
| 5 | 6 | ${bid_form_submit_success_msg} = Пропозиція створена |
| 6 | 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 | |
| 7 | 10 | ${bid_form_feature_input_locator_tpl} = jquery=.fancybox-is-open .fancybox-content select[id*="%title%-enum"] |
| 11 | +${bid_form_feature_value_input_locator_tpl} = option[data-weight-source*="%value%"] | |
| 12 | +#${bid_form_feature_value_input_locator_tpl} = jquery=.fancybox-is-open .fancybox-content select[id*="%title%-enum"] option[data-weight-source*="%value%"] | |
| 8 | 13 | ${bid_form_value_amount_input_locator} = jquery=.fancybox-is-open .fancybox-content input[id*="-value_amount"] |
| 9 | 14 | ${bid_form_value_subcontracting_details_input_locator} = jquery=.fancybox-is-open .fancybox-content textarea[id*="-subcontracting_details"] |
| 10 | 15 | ${bid_form_value_self_eligible_input_locator} = jquery=.fancybox-is-open .fancybox-content input[id*="-self_eligible"] |
| ... | ... | @@ -12,12 +17,20 @@ ${bid_form_value_self_qualified_input_locator} = jquery=.fanc |
| 12 | 17 | ${bid_form_value_yearly_payments_percentage_input_locator} = jquery=.fancybox-is-open .fancybox-content input[id*="-yearly_payments_percentage"] |
| 13 | 18 | ${bid_form_value_contract_duration_years_input_locator} = jquery=.fancybox-is-open .fancybox-content input[id*="-contract_duration_years"] |
| 14 | 19 | ${bid_form_value_contract_duration_days_input_locator} = jquery=.fancybox-is-open .fancybox-content input[id*="-contract_duration_days"] |
| 15 | -${bid_form_value_annual_costs_reduction_input_locator_tpl} = jquery=.fancybox-is-open .fancybox-content input[id*="-annual_costs_reduction_%index%"] | |
| 20 | +${bid_form_value_annual_costs_reduction_input_locator_tpl} = jquery=.fancybox-is-open .fancybox-content input[name*="[annual_costs_reduction_%index%]"] | |
| 16 | 21 | |
| 17 | -${bid_form_add_document_all_btn_locator} = jquery=.fancybox-is-open .fancybox-content .field-bidform-documents input[type$="file"] | |
| 18 | -${bid_form_add_document_type_input_locator} = jquery=.fancybox-is-open .fancybox-content .field-bidform-documents select[id*="-document_type"] | |
| 19 | -${bid_form_add_document_description_btn_locator} = jquery=.fancybox-is-open .fancybox-content .field-bidform-documents [href$="#edit"] | |
| 20 | -${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 | |
| 21 | -${bid_form_add_document_close_description_btn_locator} = jquery=.fancybox-is-open .fancybox-content .field-bidform-documents .popover.fade.top.in [href$="#close"] | |
| 22 | +${add_file_to_bid_all_form_locator} = jquery=#tender-bid-form .documents-dynamic-forms-wrapper:last .js-upload-documents | |
| 23 | +${add_file_to_bid_form_locator} = jquery=#tender-bid-form .documents-dynamic-forms-wrapper:last .js-upload-documents input[type$="file"]:first | |
| 24 | +${bid_form_add_document_all_btn_locator} = jquery=#tender-bid-form .documents-dynamic-forms-wrapper:last .js-upload-documents input[type$="file"]:first | |
| 25 | +${bid_form_add_document_type_input_locator} = jquery=#tender-bid-form .documents-dynamic-forms-wrapper:last select[id*="-document_type"]:last | |
| 26 | +${bid_form_add_document_description_btn_locator} = jquery=#tender-bid-form .documents-dynamic-forms-wrapper:last [href$="#edit"]:last | |
| 27 | +${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 | |
| 28 | +${bid_form_add_document_close_description_btn_locator} = jquery=#tender-bid-form .documents-dynamic-forms-wrapper:last .popover.fade.top.in [href$="#close"] | |
| 29 | +${bid_form_add_document_confidentiality_input_locator} = jquery=#tender-bid-form .documents-dynamic-forms-wrapper:last .popover.fade.top.in [id$="-confidentiality"] | |
| 22 | 30 | ${bid_form_submit_btn_locator} = jquery=.fancybox-is-open .fancybox-content button.btn.btn-success |
| 31 | +${bid_form_edit_document_all_btn_locator} = jquery=.form-documents-group .tab-content .item-wrapper.js-item:last a[href*="#reupload"] | |
| 23 | 32 | |
| 33 | +${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 | |
| 34 | +${bid_lotValues_0_value_amount_value_locator_type} = float | |
| 35 | + | |
| 36 | +${bid_popup_locator} = jquery=.fancybox-slide .modal.fancybox-content | ... | ... |
| ... | ... | @@ -10,25 +10,296 @@ Resource playtender_claim |
| 10 | 10 | [Arguments] ${username} ${tender_uaid} ${type} ${type_id} ${claim} ${doc_name} |
| 11 | 11 | [Documentation] Створити вимогу з claim в описі для тендера tender_uaid. |
| 12 | 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 | +# click visible element and wait until page contains element ${claim_page_open_btn_locator} ${claim_form_open_btn_locator} | |
| 18 | +## submit form and check result ${claim_form_open_btn_locator} ${None} ${popup_opened_content_locator} | |
| 19 | + wait until page contains element with reloading ${claim_form_open_btn_locator} | |
| 13 | 20 | click visible element ${claim_form_open_btn_locator} |
| 14 | - wait until popup is visible | |
| 21 | + Wait Until Page Contains ${popup_opened_content_success_locator} 60 | |
| 22 | + wait until element is visible ${claim_form_complaintform_submit_btn_locator} 60 | |
| 23 | +## wait until element is visible ${popup_opened_content_locator} 60 | |
| 24 | + capture page screenshot | |
| 25 | +# wait until popup is visible | |
| 15 | 26 | input text to exist visible input ${claim_form_complaintform_title_input_locator} ${claim.data.title} |
| 27 | + capture page screenshot | |
| 16 | 28 | input text to exist visible input ${claim_form_complaintform_description_input_locator} ${claim.data.description} |
| 29 | + capture page screenshot | |
| 17 | 30 | Run Keyword And Ignore Error Run Keyword If '${type}' == 'tender' Select From List By Label ${claim_form_complaintform_related_of_input_locator} Закупівля |
| 31 | + capture page screenshot | |
| 18 | 32 | Run Keyword And Ignore Error Run Keyword If '${type}' == 'lot' Select From List By Label ${claim_form_complaintform_related_of_input_locator} Лот |
| 33 | + capture page screenshot | |
| 19 | 34 | Run Keyword And Ignore Error Run Keyword If '${type}' == 'lot' Click Element ${claim_form_complaintform_related_lot_input_locator} |
| 20 | 35 | ${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} |
| 21 | 36 | Run Keyword And Ignore Error Run Keyword If '${type}' == 'lot' Click Element ${claim_form_complaintform_related_lot_select_locator} |
| 22 | - Run Keyword And Ignore Error Select From List By Label ${claim_form_complaintform_complaintform_type_input_locator} Вимога | |
| 23 | - Run Keyword If '${doc_name}' != 'null' click visible element ${claim_form_complaintform_document_btn_locator} | |
| 37 | + capture page screenshot | |
| 38 | + Run Keyword And Ignore Error Select From List By Label ${claim_form_complaintform_complaintform_type_input_locator} Вимога | |
| 39 | + Run Keyword And Ignore Error Run Keyword If '${type}' == 'winner_complaint' Select From List By Label ${claim_form_complaintform_complaintform_type_input_locator} Скарга | |
| 40 | + | |
| 41 | + capture page screenshot | |
| 42 | +### Run Keyword If '${doc_name}' != 'null' click visible element ${claim_form_complaintform_document_btn_locator} | |
| 43 | + capture page screenshot | |
| 24 | 44 | Run Keyword If '${doc_name}' != 'null' choose file ${add_file_to_form_locator} ${doc_name} |
| 45 | + capture page screenshot | |
| 25 | 46 | Run Keyword If '${doc_name}' != 'null' wait until page does not contain element ${popup_dynamic_form_loading_element_locator} |
| 47 | + capture page screenshot | |
| 26 | 48 | # Run Keyword If '${doc_name}' != 'null' submit current visible popup |
| 27 | - submit form and check result ${claim_form_complaintform_submit_btn_locator} ${tender_form_submit_success_msg} ${tender_created_checker_element_locator} | |
| 49 | + submit form and check result ${claim_form_complaintform_submit_btn_locator} ${claim_form_submit_success_msg} ${tender_created_checker_element_locator} | |
| 28 | 50 | # Функция ожидания claim_uaid_text_locator соответствующей вимоги |
| 29 | - click visible element ${claim_form_open_btn_locator} | |
| 30 | - ${return_value}= Get Element Attribute ${claim_uaid_text_locator} | |
| 51 | +# click visible element ${claim_form_open_btn_locator} | |
| 52 | + reload page | |
| 53 | + wait until page does not contain element with reloading ${claim_sync_element_locator} 60 | |
| 54 | + wait until page contains element with reloading ${claim_uaid_text_locator} | |
| 55 | + ${return_value}= get text ${claim_uaid_text_locator} | |
| 31 | 56 | ${return_value}= Convert To String ${return_value} |
| 32 | 57 | [return] ${return_value} |
| 33 | 58 | |
| 59 | +Скасувати вимогу | |
| 60 | + [Arguments] ${username} ${tender_uaid} ${complaintID} ${cancellation_data} ${award_index} | |
| 61 | + [Documentation] Перевести вимогу complaintID для тендера tender_uaid у статус cancelled, | |
| 62 | + ... використовуючи при цьому дані confirmation_data. | |
| 63 | + | |
| 64 | + open tender page by uaid ${tender_uaid} | |
| 65 | + click visible element and wait until page contains element ${claim_page_open_btn_locator} ${claim_form_open_btn_locator} | |
| 66 | + ${claim_open_form_answer_locator} = replace string ${claim_open_form_answer_btn_locator_tpl} %title% ${complaintID} | |
| 67 | + wait until page contains element with reloading ${claim_open_form_answer_locator} | |
| 68 | + ${claim_form_cancel_open_btn_locator} = replace string ${claim_form_cancel_open_btn_locator_tpl} %complaint_id% ${complaintID} | |
| 69 | + wait until page contains element with reloading ${claim_form_cancel_open_btn_locator} | |
| 70 | + click visible element ${claim_form_cancel_open_btn_locator} | |
| 71 | +# submit form and check result ${claim_form_cancel_open_btn_locator} ${None} ${popup_opened_content_locator} | |
| 72 | + capture page screenshot | |
| 73 | + Wait Until Page Contains ${popup_opened_content_success_locator} 60 | |
| 74 | + wait until element is visible ${claim_form_cancellation_reason_input_locator} 60 | |
| 75 | +## wait until element is visible ${popup_opened_content_locator} 60 | |
| 76 | + capture page screenshot | |
| 77 | +# wait until popup is visible | |
| 78 | + input text to exist visible input ${claim_form_cancellation_reason_input_locator} ${cancellation_data.data.cancellationReason} | |
| 79 | + capture page screenshot | |
| 80 | + submit form and check result ${claim_form_complaintform_submit_btn_locator} ${claim_cancel_submit_success_msg} ${tender_created_checker_element_locator} | |
| 81 | + | |
| 82 | +get claim information | |
| 83 | + [Arguments] ${tender_uaid} ${complaintID} ${field_name} ${award_index}=${None} | |
| 84 | + [Documentation] Отримати значення поля field_name скарги/вимоги complaintID про | |
| 85 | + ... виправлення умов закупівлі/лоту для тендера tender_uaid (скарги/вимоги про | |
| 86 | + ... виправлення визначення переможця під номером award_index, якщо award_index != None). | |
| 87 | + | |
| 88 | + open tender page by uaid ${tender_uaid} | |
| 89 | + click visible element ${claim_page_open_btn_locator} | |
| 90 | + capture page screenshot | |
| 91 | + ${claim_open_form_answer_locator} = replace string ${claim_open_form_answer_btn_locator_tpl} %title% ${complaintID} | |
| 92 | + wait until page contains element with reloading ${claim_open_form_answer_locator} | |
| 93 | + capture page screenshot | |
| 94 | + | |
| 95 | + ${claim_wrapper_complain_id_value_locator} = set variable ${claim_open_form_answer_locator} | |
| 96 | +# ${claim_wrapper_complaint_id_value_locator} = replace string ${claim_wrapper_complain_id_value_locator_tpl} %complain_id% ${complaintID} | |
| 97 | + ${claim_description_value_locator} = Run Keyword If 'description' == '${field_name}' set variable ${claim_wrapper_complain_id_value_locator} ${claim_description_value_locator} | |
| 98 | + ${claim_title_value_locator} = Run Keyword If 'title' == '${field_name}' set variable ${claim_wrapper_complain_id_value_locator} ${claim_title_value_locator} | |
| 99 | + ${claim_complain_id_value_locator} = Run Keyword If 'complaintID' == '${field_name}' set variable ${claim_wrapper_complain_id_value_locator} ${claim_complain_id_value_locator} | |
| 100 | + ${claim_status_value_locator} = Run Keyword If 'status' == '${field_name}' set variable ${claim_wrapper_complain_id_value_locator} ${claim_status_value_locator} | |
| 101 | + ${claim_resolution_type_value_locator} = Run Keyword If 'resolutionType' == '${field_name}' set variable ${claim_wrapper_complain_id_value_locator} ${claim_resolution_type_value_locator} | |
| 102 | + ${claim_resolution_value_locator} = Run Keyword If 'resolution' == '${field_name}' set variable ${claim_wrapper_complain_id_value_locator} ${claim_resolution_value_locator} | |
| 103 | + ${claim_satisfied_value_locator} = Run Keyword If 'satisfied' == '${field_name}' set variable ${claim_wrapper_complain_id_value_locator} ${claim_satisfied_value_locator} | |
| 104 | + ${claim_related_lot_value_locator} = Run Keyword If 'relatedLot' == '${field_name}' set variable ${claim_wrapper_complain_id_value_locator} ${claim_related_lot_value_locator} | |
| 105 | + ${claim_cancellation_reason_value_locator} = Run Keyword If 'cancellationReason' == '${field_name}' set variable ${claim_wrapper_complain_id_value_locator} ${claim_cancellation_reason_value_locator} | |
| 106 | + | |
| 107 | + Run Keyword If "${TEST_NAME}" == "Можливість відповісти на вимогу про виправлення умов закупівлі" Wait Until Keyword Succeeds 420 s 15 s Wait For Answered ${complaintID} ${claim_wrapper_complain_id_value_locator} | |
| 108 | + Run Keyword If "${TEST_NAME}" == "Можливість відповісти на вимогу про виправлення умов лоту" Wait Until Keyword Succeeds 420 s 15 s Wait For Answered ${complaintID} ${claim_wrapper_complain_id_value_locator} | |
| 109 | + 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} | |
| 110 | + Run Keyword If "${TEST_NAME}" == "Відображення задоволення вимоги" Wait Until Keyword Succeeds 300 s 15 s Wait For Satisfied ${complaintID} ${claim_wrapper_complain_id_value_locator} | |
| 111 | + Run Keyword If "${TEST_NAME}" == "Відображення незадоволення вимоги" Wait Until Keyword Succeeds 300 s 15 s Wait For Satisfied ${complaintID} ${claim_wrapper_complain_id_value_locator} | |
| 112 | + 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} | |
| 113 | + 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} | |
| 114 | + 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} | |
| 115 | + 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} | |
| 116 | + 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} | |
| 117 | + 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} | |
| 118 | + 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} | |
| 119 | + | |
| 120 | + Run Keyword And Return If 'description' == '${field_name}' get value by locator on opened page ${claim_description_value_locator} | |
| 121 | + Run Keyword And Return If 'complaintID' == '${field_name}' get value by locator on opened page ${claim_complain_id_value_locator} | |
| 122 | + Run Keyword And Return If 'title' == '${field_name}' get value by locator on opened page ${claim_title_value_locator} | |
| 123 | + Run Keyword And Return If 'status' == '${field_name}' get value by locator on opened page ${claim_status_value_locator} | |
| 124 | + Run Keyword And Return If 'resolutionType' == '${field_name}' get value by locator on opened page ${claim_resolution_type_value_locator} | |
| 125 | + Run Keyword And Return If 'resolution' == '${field_name}' get value by locator on opened page ${claim_resolution_value_locator} | |
| 126 | + Run Keyword And Return If 'satisfied' == '${field_name}' Отримати інформацію із скарги satisfied ${claim_satisfied_value_locator} | |
| 127 | + Run Keyword And Return If 'relatedLot' == '${field_name}' get value by locator on opened page ${claim_related_lot_value_locator} | |
| 128 | + Run Keyword And Return If 'cancellationReason' == '${field_name}' get value by locator on opened page ${claim_cancellation_reason_value_locator} | |
| 129 | + | |
| 130 | +Отримати інформацію із документа скарги title | |
| 131 | + [Arguments] ${complaintID} ${doc_id} | |
| 132 | + [Documentation] Отримати значення поля title з документу з doc_id в описі для скарги для тендера. | |
| 133 | + | |
| 134 | + click visible element ${claim_page_open_btn_locator} | |
| 135 | + ${claim_open_form_answer_locator} = replace string ${claim_open_form_answer_btn_locator_tpl} %title% ${complaintID} | |
| 136 | + wait until page contains element with reloading ${claim_open_form_answer_locator} | |
| 137 | + ${claim_file_name_input_locator} = replace string ${claim_file_name_input_locator_tpl} %complain_id% ${complaintID} | |
| 138 | +# wait until page contains element with reloading ${claim_file_name_input_locator} | |
| 139 | + | |
| 140 | + ${return_value} = get text ${claim_file_name_input_locator} | |
| 141 | + [return] ${return_value} | |
| 142 | + | |
| 143 | +get document complaint | |
| 144 | + [Arguments] ${complaintID} ${doc_id} | |
| 145 | + [Documentation] Завантажити файл doc_id до скарги complaintID для тендера tender_uaid | |
| 146 | + ... в директорію ${OUTPUT_DIR} для перевірки вмісту цього файлу. | |
| 147 | + | |
| 148 | + ${claim_file_name_input_locator} = replace string ${claim_file_name_input_locator_tpl} %complain_id% ${complaintID} | |
| 149 | + wait until page contains element with reloading ${claim_file_name_input_locator} | |
| 150 | + ${claim_file_link_input_locator} = replace string ${claim_file_link_input_locator_tpl} %complain_id% ${complaintID} | |
| 151 | + ${claim_file_name_input_locator} = replace string ${claim_file_name_input_locator_tpl} %complain_id% ${complaintID} | |
| 152 | + wait until page contains element with reloading ${tender_new_doc_locator} | |
| 153 | + | |
| 154 | + ${file_link} = Execute Javascript ${claim_file_link_input_locator} | |
| 155 | + ${file_name} = get text ${claim_file_name_input_locator} | |
| 156 | + download_file ${file_link} ${file_name} ${OUTPUT_DIR} | |
| 157 | + [return] ${file_name} | |
| 158 | + | |
| 159 | + | |
| 160 | +Підтвердити вирішення вимоги | |
| 161 | + [Arguments] ${username} ${tender_uaid} ${type} ${type_id} ${complaintID} ${data} ${award_index} | |
| 162 | + [Documentation] Підтвердити вирішення вимоги | |
| 163 | + | |
| 164 | + open tender page by uaid ${tender_uaid} | |
| 165 | + click visible element ${claim_page_open_btn_locator} | |
| 166 | + click visible element and wait until page contains element ${claim_page_open_btn_locator} ${claim_form_open_btn_locator} | |
| 167 | + ${claim_form_resolved_input_locator} = replace string ${claim_form_resolved_input_locator_tpl} %complaint_id% ${complaintID} | |
| 168 | + click visible element ${claim_form_resolved_input_locator} | |
| 169 | + Wait Until Page Contains ${popup_opened_content_success_locator} 60 | |
| 170 | + wait until element is visible ${claim_form_complaintform_submit_btn_locator} 60 | |
| 171 | +## wait until element is visible ${popup_opened_content_locator} 60 | |
| 172 | + ${value} = Set Variable If '${data.data.satisfied}' Задоволен Не задоволен | |
| 173 | + run keyword and ignore error select from visible list by label ${claim_form_satisfied_input_locator} ${value} | |
| 174 | + capture page screenshot | |
| 175 | + submit form and check result ${claim_form_complaintform_submit_btn_locator} ${claim_form_satisfied_submit_success_msg} ${None} | |
| 176 | + | |
| 177 | + | |
| 178 | +Відповісти на вимогу | |
| 179 | + [Arguments] ${username} ${tender_uaid} ${complaintID} ${answer_data} ${award_index} | |
| 180 | + [Documentation] Відповісти на вимогу complaintID | |
| 181 | + ... для тендера tender_uaid, використовуючи при цьому дані answer_data. | |
| 182 | + | |
| 183 | + open tender page by uaid ${tender_uaid} | |
| 184 | + click visible element ${claim_page_open_btn_locator} | |
| 185 | + ${claim_open_form_answer_locator} = replace string ${claim_open_form_answer_btn_locator_tpl} %title% ${complaintID} | |
| 186 | + wait until page contains element with reloading ${claim_open_form_answer_locator} 10 | |
| 187 | + ${claim_form_open_form_answer_btn_locator} = replace string ${claim_form_open_form_answer_btn_locator_tpl} %title% ${complaintID} | |
| 188 | + wait until page contains element with reloading ${claim_form_open_form_answer_btn_locator} | |
| 189 | + submit form and check result ${claim_form_open_form_answer_btn_locator} ${None} ${popup_opened_content_locator} | |
| 190 | + Wait Until Page Contains ${popup_opened_content_success_locator} 60 | |
| 191 | + wait until element is visible ${claim_form_answer_resolution_value_locator} 60 | |
| 192 | +## wait until element is visible ${popup_opened_content_locator} 60 | |
| 193 | +# click visible element ${claim_form_open_form_answer_btn_locator} | |
| 194 | + | |
| 195 | +# wait until popup is visible | |
| 196 | + input text to exist visible input ${claim_form_answer_resolution_value_locator} ${answer_data.data.resolution} | |
| 197 | + Run Keyword If '${answer_data.data.resolutionType}' == 'resolved' select from list by value ${claim_form_answer_resolution_type_value_locator} resolved | |
| 198 | + Run Keyword If '${answer_data.data.resolutionType}' == 'declined' select from list by value ${claim_form_answer_resolution_type_value_locator} declined | |
| 199 | + Run Keyword If '${answer_data.data.resolutionType}' == 'invalid' select from list by value ${claim_form_answer_resolution_type_value_locator} invalid | |
| 200 | + Run Keyword And Ignore Error input text to exist visible input ${claim_form_answer_tenderer_action_value_locator} ${answer_data.data.tendererAction} | |
| 201 | + submit form and check result ${claim_form_answer_success_btn_locator} ${claim_form_answer_submit_success_msg} | |
| 202 | + | |
| 203 | + | |
| 204 | +Wait For Answered | |
| 205 | + [Arguments] ${complaintID} ${wrapper} | |
| 206 | + [Documentation] Очікування статусу Answered вимоги complaintID | |
| 207 | + ... для тендера tender_uaid. | |
| 208 | + | |
| 209 | + Reload Page | |
| 210 | + ${claim_form_status_locator} = replace string ${claim_form_status_locator_tpl} %query% answered | |
| 211 | + ${claim_status_value_locator} = set variable ${wrapper} ${claim_form_status_locator} | |
| 212 | + Page Should Contain Element ${claim_status_value_locator} | |
| 213 | + | |
| 214 | +Wait For Satisfied | |
| 215 | + [Arguments] ${complaintID} ${wrapper} | |
| 216 | + [Documentation] Очікування статусу Answered вимоги complaintID | |
| 217 | + ... для тендера tender_uaid. | |
| 218 | + | |
| 219 | + Reload Page | |
| 220 | + ${claim_form_satisfied_value_locator} = replace string ${claim_form_satisfied_value_locator_tpl} %query% Так | |
| 221 | + ${claim_form_satisfied_value_locator_tmp} = set variable ${wrapper} ${claim_form_satisfied_value_locator} | |
| 222 | + Page Should Contain Element ${claim_form_satisfied_value_locator_tmp} | |
| 223 | + | |
| 224 | +Wait For Resolved | |
| 225 | + [Arguments] ${complaintID} ${wrapper} | |
| 226 | + [Documentation] Очікування статусу Answered вимоги complaintID | |
| 227 | + ... для тендера tender_uaid. | |
| 228 | + | |
| 229 | + Reload Page | |
| 230 | + ${claim_form_resolved_value_locator} = replace string ${claim_form_status_locator_tpl} %query% resolved | |
| 231 | + ${claim_form_resolved_value_locator_tmp} = set variable ${wrapper} ${claim_form_resolved_value_locator} | |
| 232 | + Page Should Contain Element ${claim_form_resolved_value_locator_tmp} | |
| 233 | + | |
| 234 | +Wait For Cancelled | |
| 235 | + [Arguments] ${complaintID} ${wrapper} | |
| 236 | + [Documentation] Очікування статусу Answered вимоги complaintID | |
| 237 | + ... для тендера tender_uaid. | |
| 238 | + | |
| 239 | + Reload Page | |
| 240 | + ${claim_form_status_locator} = replace string ${claim_form_status_locator_tpl} %query% cancelled | |
| 241 | + ${claim_status_value_locator} = set variable ${wrapper} ${claim_form_status_locator} | |
| 242 | + Page Should Contain Element ${claim_status_value_locator} | |
| 243 | + | |
| 244 | +Wait For Ignored | |
| 245 | + [Arguments] ${complaintID} ${wrapper} | |
| 246 | + [Documentation] Очікування статусу Answered вимоги complaintID | |
| 247 | + ... для тендера tender_uaid. | |
| 248 | + | |
| 249 | + Reload Page | |
| 250 | + ${claim_form_status_locator} = replace string ${claim_form_status_locator_tpl} %query% ignored | |
| 251 | + ${claim_status_value_locator} = set variable ${wrapper} ${claim_form_status_locator} | |
| 252 | + Page Should Contain Element ${claim_status_value_locator} | |
| 253 | + | |
| 254 | +Wait For Stopping | |
| 255 | + [Arguments] ${complaintID} ${wrapper} | |
| 256 | + [Documentation] Очікування статусу Answered вимоги complaintID | |
| 257 | + ... для тендера tender_uaid. | |
| 258 | + | |
| 259 | + Reload Page | |
| 260 | + ${claim_form_status_locator} = replace string ${claim_form_status_locator_tpl} %query% stopping | |
| 261 | + ${claim_status_value_locator} = set variable ${wrapper} ${claim_form_status_locator} | |
| 262 | + Page Should Contain Element ${claim_status_value_locator} | |
| 263 | + | |
| 264 | +Wait For Pending | |
| 265 | + [Arguments] ${complaintID} ${wrapper} | |
| 266 | + [Documentation] Очікування статусу Pending вимоги complaintID | |
| 267 | + ... для тендера tender_uaid. | |
| 268 | + | |
| 269 | + Reload Page | |
| 270 | + ${claim_form_status_locator} = replace string ${claim_form_status_locator_tpl} %query% pending | |
| 271 | + ${claim_status_value_locator} = set variable ${wrapper} ${claim_form_status_locator} | |
| 272 | + Page Should Contain Element ${claim_status_value_locator} | |
| 273 | + | |
| 274 | +Отримати інформацію із скарги satisfied | |
| 275 | + [Arguments] ${wrapper} | |
| 276 | + [Documentation] Отримати інформацію із скарги satisfied | |
| 277 | + | |
| 278 | + | |
| 279 | + ${return_value} = get value by locator on opened page ${wrapper} | |
| 280 | + ${return_value} = Run Keyword If 'Так' == '${return_value}' Set Variable True | |
| 281 | + ... ELSE Set Variable False | |
| 282 | + ${return_value} = Convert To Boolean ${return_value} | |
| 283 | + [return] ${return_value} | |
| 284 | + | |
| 285 | +Wait For Invalid | |
| 286 | + [Arguments] ${complaintID} ${wrapper} | |
| 287 | + [Documentation] Очікування статусу Invalid вимоги complaintID | |
| 288 | + ... для тендера tender_uaid. | |
| 289 | + | |
| 290 | + Reload Page | |
| 291 | + ${claim_form_status_locator} = replace string ${claim_form_status_locator_tpl} %query% invalid | |
| 292 | + ${claim_status_value_locator} = set variable ${wrapper} ${claim_form_status_locator} | |
| 293 | + Page Should Contain Element ${claim_status_value_locator} | |
| 294 | + | |
| 295 | +Wait For Declined | |
| 296 | + [Arguments] ${complaintID} ${wrapper} | |
| 297 | + [Documentation] Очікування статусу declined вимоги complaintID | |
| 298 | + ... для тендера tender_uaid. | |
| 299 | + | |
| 300 | + Reload Page | |
| 301 | + ${claim_form_status_locator} = replace string ${claim_form_status_locator_tpl} %query% declined | |
| 302 | + ${claim_status_value_locator} = set variable ${wrapper} ${claim_form_status_locator} | |
| 303 | + Page Should Contain Element ${claim_status_value_locator} | |
| 304 | + | |
| 34 | 305 | ... | ... |
| 1 | 1 | *** Variables *** |
| 2 | 2 | |
| 3 | 3 | #claim |
| 4 | -${claim_form_open_btn_locator} = jquery=#aside-part-pjax a[href*="/tender/complaints"] | |
| 5 | -${claim_form_complaintform_title_input_locator} = jquery=.fancybox-is-open .fancybox-content input#complaintform-title | |
| 6 | -${claim_form_complaintform_description_input_locator} = jquery=.fancybox-is-open .fancybox-content input#complaintform-description | |
| 7 | -${claim_form_complaintform_related_of_input_locator} = jquery=.fancybox-is-open .fancybox-content #complaintform-related_of | |
| 8 | -${claim_form_complaintform_related_lot_input_locator} = jquery=.fancybox-is-open .fancybox-content #complaintform-related_lot | |
| 9 | -${claim_form_complaintform_related_item_input_locator_tpl} = jquery=.fancybox-is-open .fancybox-content #complaintform-related_lot option:contains("%type_id%") | |
| 10 | -${claim_form_complaintform_complaintform_type_input_locator} = jquery=.fancybox-is-open .fancybox-content #complaintform-type | |
| 4 | +${claim_page_open_btn_locator} = jquery=#aside-part-pjax a[href*="/tender/complaints"] | |
| 5 | +${claim_form_open_btn_locator} = jquery=#tender-part-pjax a[href*="/tender/complaint-create"]:first | |
| 6 | +${claim_form_complaintform_title_input_locator} = jquery=.fancybox-is-open .fancybox-content input[id*="complaintform-title"] | |
| 7 | +${claim_form_complaintform_description_input_locator} = jquery=.fancybox-is-open .fancybox-content textarea[id*="complaintform-description"] | |
| 8 | +${claim_form_complaintform_related_of_input_locator} = jquery=.fancybox-is-open .fancybox-content select[id*="complaintform-related_of"] | |
| 9 | +${claim_form_complaintform_related_lot_input_locator} = jquery=.fancybox-is-open .fancybox-content select[id*="complaintform-related_lot"] | |
| 10 | +${claim_form_complaintform_related_lot_input_locator_tpl} = jquery=.fancybox-is-open .fancybox-content select[id*="complaintform-related_lot"] option:contains("%type_id%") | |
| 11 | +${claim_form_complaintform_complaintform_type_input_locator} = jquery=.fancybox-is-open .fancybox-content select[id*="complaintform-type"] | |
| 11 | 12 | ${claim_form_complaintform_document_btn_locator} = jquery=.fancybox-is-open .fancybox-content a[data-url*="/tender/get-complaint-document"] |
| 12 | -${claim_form_complaintform_submit_btn_locator} = jquery=.fancybox-is-open .fancybox-content a[href*="/tender/complaints"] | |
| 13 | -${claim_uaid_text_locator} = jquery=#tender-complaint-list div.item.js-item:last .complaint-id span.value | |
| 13 | +${claim_form_complaintform_submit_btn_locator} = jquery=.fancybox-is-open .fancybox-content button.btn.btn-success | |
| 14 | +${claim_uaid_text_locator} = jquery=#tender-complaint-list div.item.js-item:first .complaint-id span.value | |
| 15 | +#${claim_form_submit_success_msg} = Вимога успішно подана | |
| 16 | +${claim_form_submit_success_msg} = успішно подана | |
| 14 | 17 | |
| 18 | +${claim_cancel_submit_success_msg} = Вимога/скарга скасована. | |
| 19 | + | |
| 20 | +#${claim_form_cancel_open_btn_locator_tpl} = jquery=#tender-complaint-list div.item.js-item a[href*="/tender/complaint-cancel"]:last | |
| 21 | +#${claim_form_cancel_open_btn_locator} = jquery=#tender-complaint-list div.item.js-item a[href*="/tender/complaint-cancel"]:last | |
| 22 | +${claim_form_cancellation_reason_input_locator} = jquery=#complaintcancelform-cancellation_reason | |
| 23 | +${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"] | |
| 24 | + | |
| 25 | +${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-sandbox.prozorro.gov.ua"]').attr("href") | |
| 26 | +${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-sandbox.prozorro.gov.ua"] | |
| 27 | + | |
| 28 | +${claim_wrapper_complain_id_value_locator_tpl} = jquery=#tender-complaint-pjax .complaint__item:first | |
| 29 | +#${claim_wrapper_complain_id_value_locator_tpl} = jquery=#tender-complaint-pjax .complaint__item[data-title*="%complain_id%"] | |
| 30 | +${claim_description_value_locator} = .complaint-info-wrapper .info-row.description .value | |
| 31 | +${claim_title_value_locator} = .complaint-info-wrapper .info-row.title .value | |
| 32 | +${claim_complain_id_value_locator} = .complaint-info-wrapper .info-row.complaint-id .value | |
| 33 | +${claim_status_value_locator} = .complaint-info-wrapper .info-row.status-source.hidden | |
| 34 | +${claim_resolution_type_value_locator} = .complaint-info-wrapper .info-row.resolution-type-source.hidden | |
| 35 | +${claim_cancellation_reason_value_locator} = .complaint-info-wrapper .info-row.cancellation-reason .value | |
| 36 | +${claim_related_lot_value_locator} = .complaint-info-wrapper .info-row.related-item .value | |
| 37 | +${claim_resolution_value_locator} = .complaint-info-wrapper .info-row.resolution .value | |
| 38 | +${claim_satisfied_value_locator} = .complaint-info-wrapper .info-row.satisfied .value | |
| 39 | + | |
| 40 | +${claim_sync_element_locator} = jquery=.synhronized__icon.fa.fa-refresh.fa-spin | |
| 41 | + | |
| 42 | +${claim_open_form_answer_btn_locator_tpl} = jquery=#tender-complaint-list .js-item div[data-complaint-id*="%title%"] | |
| 43 | +${claim_form_open_form_answer_btn_locator_tpl} = jquery=#tender-complaint-list .js-item div[data-complaint-id*="%title%"] .btn.btn-success | |
| 44 | +${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"] | |
| 45 | +${claim_form_satisfied_input_locator} = jquery=.fancybox-is-open .fancybox-content #complaintresolveform-satisfied | |
| 46 | +${claim_form_satisfied_submit_success_msg} = Вимога вирішена, дочекайтесь опублікування на сайті уповноваженого органу. | |
| 47 | +#formanswer | |
| 48 | +${claim_form_answer_resolution_value_locator} = jquery=#tender-complaint-answer-form #complaintanswerform-resolution | |
| 49 | +${claim_form_answer_tenderer_action_value_locator} = jquery=#tender-complaint-answer-form #complaintanswerform-tenderer_action | |
| 50 | +${claim_form_answer_resolution_type_value_locator} = jquery=#tender-complaint-answer-form #complaintanswerform-resolution_type | |
| 51 | +${claim_form_answer_success_btn_locator} = jquery=#tender-complaint-answer-form .btn.btn-success | |
| 52 | +${claim_form_answer_submit_success_msg} = Відповідь на вимогу надана, дочекайтесь опублікування на сайті уповноваженого органу. | |
| 53 | +${claim_form_status_locator_tpl} = .complaint-info-wrapper .info-row.status-source.hidden:contains(%query%) | |
| 54 | +${claim_form_satisfied_value_locator_tpl} = .complaint-info-wrapper .info-row.satisfied .value:contains(%query%) | ... | ... |
| ... | ... | @@ -77,9 +77,7 @@ get value by locator on opened page |
| 77 | 77 | |
| 78 | 78 | capture page screenshot |
| 79 | 79 | Run Keyword And Ignore Error __private__set_element_visible_in_browser_area ${locator} |
| 80 | - capture page screenshot | |
| 81 | 80 | ${value} = get value by locator ${locator} |
| 82 | - capture page screenshot | |
| 83 | 81 | ${value} = convert to specified type ${value} ${type} |
| 84 | 82 | [Return] ${value} |
| 85 | 83 | |
| ... | ... | @@ -99,7 +97,6 @@ get field_value by field_name on opened page |
| 99 | 97 | ${field_type_variable_exists} = run keyword and return status variable should exist ${${field_type_variable_name}} |
| 100 | 98 | ${field_type} = set variable if ${field_type_variable_exists} == ${True} ${${field_type_variable_name}} ${None} |
| 101 | 99 | ${field_locator} = set variable ${${field_locator_variable_name}} |
| 102 | - capture page screenshot | |
| 103 | 100 | ${field_value} = get value by locator on opened page ${field_locator} ${field_type} |
| 104 | 101 | [Return] ${field_value} |
| 105 | 102 | |
| ... | ... | @@ -209,7 +206,8 @@ input to search form and wait results |
| 209 | 206 | |
| 210 | 207 | input text to visible input and press enter ${query_input_locator} ${query} |
| 211 | 208 | ${result_locator} = replace string ${result_locator_tpl} %query% ${query} |
| 212 | - wait until page contains element with reloading ${result_locator} | |
| 209 | + wait until page contains search ${result_locator} | |
| 210 | +# wait until page contains element with reloading ${result_locator} | |
| 213 | 211 | |
| 214 | 212 | select from visible list by value |
| 215 | 213 | [Arguments] ${locator} ${value} |
| ... | ... | @@ -297,8 +295,11 @@ submit form and check result |
| 297 | 295 | [Documentation] сабмітить форму і чекає повідомлення (якщо задано) + елемент (якщо задано) |
| 298 | 296 | |
| 299 | 297 | click visible element ${submit_btn_locator} |
| 298 | + run keyword if condition is not none ${wait_msg} Wait Until Page Contains ${wait_msg} 60 | |
| 300 | 299 | run keyword if condition is not none ${wait_msg} wait until alert is visible ${wait_msg} |
| 301 | 300 | run keyword and ignore error run keyword if condition is not none ${wait_msg} close current visible alert |
| 301 | +#cat проба | |
| 302 | + run keyword if condition is not none ${wait_element_locator} wait until element is visible ${wait_element_locator} 60 | |
| 302 | 303 | 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 |
| 303 | 304 | |
| 304 | 305 | wait until popup is visible |
| ... | ... | @@ -324,6 +325,13 @@ close current visible alert |
| 324 | 325 | |
| 325 | 326 | click visible element ${alert_opened_close_btn_locator} |
| 326 | 327 | |
| 328 | +wait until page contains search | |
| 329 | + [Arguments] ${locator} ${retry}=5m ${retry_interval}=2s | |
| 330 | + [Documentation] чекає поки елемент не з'явиться на сторінці з перезапуском пошуку | |
| 331 | + | |
| 332 | + ${result} = get is element exist ${locator} | |
| 333 | + run keyword if ${result} == ${False} wait until keyword succeeds ${retry} ${retry_interval} reload page and fail if element does not exist on search ${locator} | |
| 334 | + | |
| 327 | 335 | wait until page contains element with reloading |
| 328 | 336 | [Arguments] ${locator} ${retry}=5m ${retry_interval}=2s |
| 329 | 337 | [Documentation] чекає поки елемент не з'явиться на сторінці з перезавантаженням сторінки |
| ... | ... | @@ -337,6 +345,7 @@ wait until page does not contain element with reloading |
| 337 | 345 | |
| 338 | 346 | ${result} = get is element exist ${locator} |
| 339 | 347 | run keyword if ${result} == ${True} wait until keyword succeeds ${retry} ${retry_interval} reload page and fail if element exists ${locator} |
| 348 | + capture page screenshot | |
| 340 | 349 | |
| 341 | 350 | wait until tab content is visible |
| 342 | 351 | [Arguments] ${tab_link} ${waiting_timeout}=30s ${waiting_error}=Opened tab still not visible |
| ... | ... | @@ -362,6 +371,14 @@ reload page and fail if element does not exist |
| 362 | 371 | ${exists} = get is element exist ${locator} |
| 363 | 372 | run keyword if ${exists} == ${False} fail |
| 364 | 373 | |
| 374 | +reload page and fail if element does not exist on search | |
| 375 | + [Arguments] ${locator} | |
| 376 | + [Documentation] перезавантажує сторінку і фейлить тест якщо елемент відсутній в пошуку | |
| 377 | + | |
| 378 | + click visible element ${tender_form_search_btn_locator} | |
| 379 | + ${exists} = get is element exist ${locator} | |
| 380 | + run keyword if ${exists} == ${False} fail | |
| 381 | + | |
| 365 | 382 | get is 404 page |
| 366 | 383 | [Documentation] перевіряє чи поточна сторінка з 404 помилкою |
| 367 | 384 | |
| ... | ... | @@ -442,4 +459,33 @@ __private__select_classification_code_in_opened_popup |
| 442 | 459 | ${code} = convert to string ${code} |
| 443 | 460 | ${code_item_locator} = replace string ${classification_popup_serach_item_locator_tpl} %code% ${code} |
| 444 | 461 | wait until page contains element ${code_item_locator} 60s Specified classification code was not found |
| 445 | - click visible element ${code_item_locator} | |
| \ No newline at end of file | ||
| 462 | + click visible element ${code_item_locator} | |
| 463 | + | |
| 464 | +Load Sign | |
| 465 | + ${loadingfakeKey} = Run keyword And Return Status Wait Until Page Contains Це фейкове накладання ЕЦП 90 | |
| 466 | + run keyword and ignore error Run Keyword If ${loadingfakeKey} == True submit form and check result id=SignDataButton ${qualification_ecp_form_submit_success_msg} | |
| 467 | + ${loadingKey} = Run keyword And Return Status Wait Until Page Contains Серійний номер 90 | |
| 468 | + Run Keyword If ${loadingfakeKey} == True Fail Далі не ходити | |
| 469 | + Run Keyword If ${loadingKey} == False Load Sign Data | |
| 470 | + Wait Until Page Contains Серійний номер 60 | |
| 471 | + submit form and check result id=SignDataButton ${qualification_ecp_form_submit_success_msg} | |
| 472 | + | |
| 473 | +Load Sign Data | |
| 474 | + Wait Until Page Contains Element id=CAsServersSelect 60 | |
| 475 | + Select From List By Label id=CAsServersSelect Тестовий ЦСК АТ "ІІТ" | |
| 476 | + Wait Until Page Contains Element id=PKeyFileName 60 | |
| 477 | + Choose File id=PKeyFileInput ${CURDIR}/kai.dat | |
| 478 | + Wait Until Page Contains Element id=PKeyPassword 60 | |
| 479 | + Input Text id=PKeyPassword 123qwe | |
| 480 | + Wait Until Page Contains Element id=PKeyReadButton 60 | |
| 481 | + Click Element id=PKeyReadButton | |
| 482 | + | |
| 483 | +GetDictionaryKeyExist | |
| 484 | + [Arguments] ${Dictionary Name} ${Key} | |
| 485 | + Run Keyword And Return Status Dictionary Should Contain Key ${Dictionary Name} ${Key} | |
| 486 | + | |
| 487 | +GetValueFromDictionaryByKey [Arguments] ${Dictionary Name} ${Key} | |
| 488 | + ${KeyIsPresent}= Run Keyword And Return Status Dictionary Should Contain Key ${Dictionary Name} ${Key} | |
| 489 | + ${Value}= Run Keyword If ${KeyIsPresent} Get From Dictionary ${Dictionary Name} ${Key} | |
| 490 | + Return From Keyword ${Value} | |
| 491 | + | ... | ... |
playtender_contract.robot
0 → 100644
| 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}' == 'Неможливість вказати ціну договору з ПДВ більше ніж результат проведення аукціону' Fail Amount should be less or equal to awarded amount | |
| 16 | + Run Keyword If '${TEST_NAME}' == 'Неможливість зменшити ціну договору без ПДВ на суму більшу за 20% від ціни договору з ПДВ (закупівля з ПДВ)' Fail Amount should be greater than amountNet and differ by no more than 20.0% | |
| 17 | + click visible element ${contract_form_0_open_btn_locator} | |
| 18 | + Run Keyword And Ignore Error Wait Until Page Contains ${contract_contractform_contract_number_input_locator} 10 | |
| 19 | + run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 5 | |
| 20 | + wait until element is visible ${contract_contractform_contract_number_input_locator} 10 | |
| 21 | + capture page screenshot | |
| 22 | + ${file_path} ${file_name} ${file_content} = create_fake_doc | |
| 23 | + ${contract_number} = get value by locator on opened page ${contract_contractform_contract_number_input_locator} | |
| 24 | + Run Keyword If '${contract_number}' == '' input text to exist visible input ${contract_contractform_contract_number_input_locator} 1234567890 | |
| 25 | + capture page screenshot | |
| 26 | + ${date_signed} = Get Current Date result_format=%d.%m.%Y %H:%M | |
| 27 | + ${contract_date_signed} = get value by locator on opened page ${contract_contractform_date_signed_input_locator} | |
| 28 | + Run Keyword If '${contract_date_signed}' == '' input text to exist visible input ${contract_contractform_date_signed_input_locator} ${date_signed} | |
| 29 | + ${date_start} = Get Current Date increment=02:00:00 result_format=%d.%m.%Y %H:%M | |
| 30 | + ${contract_date_start} = get value by locator on opened page ${contract_contractform_date_start_input_locator} | |
| 31 | + Run Keyword If '${contract_date_start}' == '' input text to exist visible input ${contract_contractform_date_start_input_locator} ${date_start} | |
| 32 | + ${date_end} = Get Current Date increment=04:00:00 result_format=%d.%m.%Y %H:%M | |
| 33 | + ${contract_date_end} = get value by locator on opened page ${contract_contractform_date_end_input_locator} | |
| 34 | + Run Keyword If '${contract_date_end}' == '' input text to exist visible input ${contract_contractform_date_end_input_locator} ${date_end} | |
| 35 | + | |
| 36 | + Run Keyword If '${field_name}' == 'value.amount' input number to exist visible input ${contract_contractform_amount_input_locator} ${amount} | |
| 37 | + Run Keyword If '${field_name}' == 'value.amountNet' input number to exist visible input ${contract_contractform_amount_net_input_locator} ${amount} | |
| 38 | + capture page screenshot | |
| 39 | + choose file ${add_file_to_contract_contractform_locator} ${file_path} | |
| 40 | + wait until page does not contain element ${popup_dynamic_form_loading_element_locator} 60 | |
| 41 | + wait until element is visible ${contract_contractform_add_document_type_input_locator} 60 | |
| 42 | + capture page screenshot | |
| 43 | + Run Keyword And Ignore Error Execute Javascript $('.fancybox-is-open .fancybox-content select[id*="-document_type"]:last').val('contractSigned').change() | |
| 44 | + capture page screenshot | |
| 45 | + click visible element ${contract_contractform_add_document_description_btn_locator} | |
| 46 | + capture page screenshot | |
| 47 | + wait until element is visible ${contract_contractform_add_document_description_input_locator} | |
| 48 | + input text to exist visible input ${contract_contractform_add_document_description_input_locator} test2 | |
| 49 | + capture page screenshot | |
| 50 | + click visible element ${contract_contractform_add_document_close_description_btn_locator} | |
| 51 | + capture page screenshot | |
| 52 | + | |
| 53 | + submit form and check result ${contract_contractform_submit_btn_locator} ${contract_contractform_submit_success_msg} ${contract_active_form_open_btn_locator} | |
| 54 | +# 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} | |
| 55 | + capture page screenshot | |
| 56 | + | ... | ... |
playtender_contract_variables.robot
0 → 100644
| 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_date_start_input_locator} = jquery=#contractform-date_start | |
| 10 | +${contract_contractform_date_end_input_locator} = jquery=#contractform-date_end | |
| 11 | +${contract_contractform_date_start_input_locator} = jquery=#contractform-date_start | |
| 12 | +${contract_contractform_date_end_input_locator} = jquery=#contractform-date_end | |
| 13 | +${contract_contractform_submit_btn_locator} = jquery=.fancybox-is-open .fancybox-content button.btn.btn-success | |
| 14 | +${contract_contractform_submit_success_msg} = Контракт успішно завантажений | |
| 15 | +${contract_contractform_amount_input_locator} = jquery=#contractform-value_amount | |
| 16 | +${contract_contractform_amount_net_input_locator} = jquery=#contractform-value_amount_net | |
| 17 | +${contract_contractform_active_submit_success_msg} = Контракт успішно активовано, дочекайтесь опублікування на сайті уповноваженого органу. | |
| 18 | + | |
| 19 | +#contractform document | |
| 20 | +${add_file_to_contract_contractform_locator} = jquery=.field-contractform-documents .js-upload-documents input[type$="file"]:first | |
| 21 | +${contract_contractform_add_document_type_input_locator} = jquery=.js-dynamic-form-content-item:last .document-type select[id*="-document_type"] | |
| 22 | +${contract_contractform_add_document_description_btn_locator} = jquery=.js-dynamic-form-content-item:last [href$="#edit"]:last | |
| 23 | +${contract_contractform_add_document_description_input_locator} = jquery=.js-dynamic-form-content-item:last .popover.fade.top.in textarea[id*="-description"].form-control | |
| 24 | +${contract_contractform_add_document_close_description_btn_locator} = jquery=.js-dynamic-form-content-item:last .popover.fade.top.in [href$="#close"] | |
| 25 | + | |
| 26 | +${contract_active_form_open_btn_locator} = jquery=#contracts-pjax a[href*="/tender/contract-activate"] | ... | ... |
playtender_qualification.robot
0 → 100644
| 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 click visible element ${prequalification_form_0_open_btn_locator} | |
| 16 | + run keyword if ${qualification_num} == 1 or ${qualification_num} == -1 wait until page contains element with reloading ${prequalification_form_1_open_btn_locator} | |
| 17 | + run keyword if ${qualification_num} == 1 or ${qualification_num} == -1 click visible element ${prequalification_form_1_open_btn_locator} | |
| 18 | + run keyword if ${qualification_num} == -2 wait until page contains element with reloading ${prequalification_form_2_open_btn_locator} | |
| 19 | +# run keyword if ${qualification_num} == -2 click visible element ${prequalification_form_2_open_btn_locator} | |
| 20 | + run keyword if ${qualification_num} == -2 execute javascript $('#bids-pjax .pseudo-table__row:last a[href*="/tender/prequalification"]').click() | |
| 21 | + sleep 3 | |
| 22 | + | |
| 23 | +confirm qualifications | |
| 24 | + [Documentation] Відкрити форму прекваліфікації і перевести кваліфікацію під номером qualification_num до тендера | |
| 25 | + ... tender_uaid в статус active. | |
| 26 | + | |
| 27 | + Wait Until Page Contains ${popup_opened_content_success_locator} 60 | |
| 28 | + wait until element is visible ${qualification_form_submit_btn_locator} 60 | |
| 29 | +# wait until popup is visible | |
| 30 | +# Execute Javascript ${qualification_form_accept_input_locator} | |
| 31 | + Execute Javascript $('#prequalificationform-decision').val('accept').change() | |
| 32 | +# select from visible list by label ${tender_form_award_organization_region_id_locator} ${region} | |
| 33 | + capture page screenshot | |
| 34 | + wait until page contains element ${prequalification_form_eligible_input_locator} | |
| 35 | + capture page screenshot | |
| 36 | + click visible element ${prequalification_form_eligible_input_locator} | |
| 37 | + click visible element ${prequalification_form_qualified_input_locator} | |
| 38 | + submit form and check result ${qualification_form_submit_btn_locator} ${qualification_form_submit_success_msg} ${tender_created_checker_element_locator} | |
| 39 | + | |
| 40 | +reject qualifications | |
| 41 | + [Documentation] Відкрити форму прекваліфікації і перевестикваліфікацію під номером qualification_num до тендера | |
| 42 | + ... tender_uaid в статус unsuccessful. | |
| 43 | + | |
| 44 | + Wait Until Page Contains ${popup_opened_content_success_locator} 60 | |
| 45 | + wait until element is visible ${qualification_form_submit_btn_locator} 60 | |
| 46 | +# wait until popup is visible | |
| 47 | +# Execute Javascript ${qualification_form_decline_input_locator} | |
| 48 | + Execute Javascript $('#prequalificationform-decision').val('decline').change() | |
| 49 | + capture page screenshot | |
| 50 | +# select from visible list by label ${tender_form_award_organization_region_id_locator} ${region} | |
| 51 | + wait until page contains element ${qualification_form_reasons_cancellation_input_locator} | |
| 52 | + capture page screenshot | |
| 53 | + input text to exist visible input ${qualification_form_reasons_cancellation_input_locator} GenerateFakeText | |
| 54 | + Execute Javascript ${prequalification_form_title_cancellation_input_locator} | |
| 55 | + capture page screenshot | |
| 56 | +# input text to exist visible input ${qualification_form_reasons_cancellation_input_locator} GenerateFakeText | |
| 57 | + input text to exist visible input ${prequalification_form_description_cancellation_input_locator} GenerateFakeText | |
| 58 | + capture page screenshot | |
| 59 | + submit form and check result ${qualification_form_submit_btn_locator} ${qualification_form_decline_success_msg} ${tender_created_checker_element_locator} | |
| 60 | + capture page screenshot | |
| 61 | + | |
| 62 | +cancel qualifications | |
| 63 | + [Documentation] Відкрити форму прекваліфікації і перевести кваліфікацію під номером qualification_num до тендера | |
| 64 | + ... tender_uaid в статус cancelled. | |
| 65 | + | |
| 66 | + Wait Until Page Contains ${popup_opened_content_success_locator} 60 | |
| 67 | + wait until element is visible ${qualification_form_submit_btn_locator} 60 | |
| 68 | +# wait until popup is visible | |
| 69 | +# Execute Javascript ${qualification_form_cancel_input_locator} | |
| 70 | + wait until page contains element ${prequalification_form_description_cancellation_input_locator} | |
| 71 | + Execute Javascript $('#prequalificationform-decision').val('cancel').change() | |
| 72 | +# select from visible list by label ${tender_form_award_organization_region_id_locator} ${region} | |
| 73 | + capture page screenshot | |
| 74 | + wait until page contains element ${prequalification_form_description_cancellation_input_locator} | |
| 75 | + capture page screenshot | |
| 76 | + input text to exist visible input ${prequalification_form_description_cancellation_input_locator} GenerateFakeText | |
| 77 | + capture page screenshot | |
| 78 | + submit form and check result ${qualification_form_submit_btn_locator} ${qualification_form_cancel_success_msg} ${tender_created_checker_element_locator} | |
| 79 | + | |
| 80 | +approve the final qualification decision | |
| 81 | + [Documentation] Перевести тендер tender_uaid в статус active.pre-qualification.stand-still. | |
| 82 | + | |
| 83 | + wait until page contains ${qualification_form_approve_question_msg} | |
| 84 | +# click visible element ${qualification_form_description_cancellation_input_locator} | |
| 85 | +## submit form and check result ${qualification_form_approve_submit_btn_locator} ${qualification_form_approve_success_msg} ${tender_created_checker_element_locator} | |
| 86 | + Execute Javascript ${qualification_form_approve_js_submit_btn_locator} | |
| 87 | + Wait Until Page Contains ${qualification_form_approve_success_msg} 60 | |
| 88 | + wait until alert is visible ${qualification_form_approve_success_msg} | |
| 89 | + run keyword and ignore error run keyword if condition is not none ${qualification_form_approve_success_msg} close current visible alert | |
| 90 | + Wait Until Keyword Succeeds 1600 s 20 s Wait For QualificationsPeriodEnd | |
| 91 | + | |
| 92 | +#qualification | |
| 93 | +open tender form qualification | |
| 94 | + [Arguments] ${award_num} | |
| 95 | + [Documentation] Відкрити форму кваліфікації і потрібну кваліфікацію під номером award_num | |
| 96 | + | |
| 97 | + run keyword if ${award_num} == 0 wait until page contains element with reloading ${qualification_form_0_open_btn_locator} | |
| 98 | + run keyword if ${award_num} == 0 click visible element ${qualification_form_0_open_btn_locator} | |
| 99 | +##### BOF - TMP ##### | |
| 100 | + run keyword if ${award_num} == 1 or ${award_num} == -1 click visible element ${qualification_form_0_open_btn_locator} | |
| 101 | + run keyword if ${award_num} == 2 click visible element ${qualification_form_0_open_btn_locator} | |
| 102 | +##### EOF - TMP ##### | |
| 103 | +# run keyword if ${award_num} == 1 or ${award_num} == -1 click visible element ${qualification_form_1_open_btn_locator} | |
| 104 | + | |
| 105 | +copy file qualification | |
| 106 | + [Arguments] ${username} ${document} ${award_num} | |
| 107 | + [Documentation] Завантажити документ, який знаходиться по шляху document до | |
| 108 | + ... постачальника під номером award_num для тендера tender_uaid. | |
| 109 | + | |
| 110 | + ## copy file to another dir to prevent it deleting | |
| 111 | + ${new_doc_name} = Replace String ${document} /tmp/ /tmp/playtender/ | |
| 112 | + Copy File ${document} ${new_doc_name} | |
| 113 | + Set To Dictionary ${USERS.users['${username}']} qproposal${award_num}_document=${new_doc_name} | |
| 114 | + | |
| 115 | +confirm award qualification | |
| 116 | + [Arguments] ${username} ${award_num} | |
| 117 | + [Documentation] Перевести постачальника під номером award_num для тендера tender_uaid | |
| 118 | + ... в статус active. | |
| 119 | + | |
| 120 | +# wait until popup is visible | |
| 121 | + Wait Until Page Contains ${popup_opened_content_success_locator} 60 | |
| 122 | + run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 10 | |
| 123 | + wait until element is visible ${qualification_form_submit_btn_locator} 60 | |
| 124 | +# ${doc_isset}= GetDictionaryKeyExist ${USERS.users['${username}']} qproposal${award_num}_document | |
| 125 | +# ${doc_name}= Run Keyword If ${doc_isset} GetValueFromDictionaryByKey ${USERS.users['${username}']} qproposal${award_num}_document | |
| 126 | +# ... ELSE create_fake_doc | |
| 127 | + ${file_path} ${file_name} ${file_content} = create_fake_doc | |
| 128 | +# Execute Javascript ${qualification_form_accept_input_locator} | |
| 129 | + Execute Javascript $('#qualificationform-decision').val('accept').change() | |
| 130 | +# select from visible list by label ${tender_form_award_organization_region_id_locator} ${region} | |
| 131 | + capture page screenshot | |
| 132 | + run keyword and ignore error wait until page contains element ${qualification_form_eligible_input_locator} | |
| 133 | + capture page screenshot | |
| 134 | + run keyword and ignore error click visible element ${qualification_form_eligible_input_locator} | |
| 135 | + run keyword and ignore error click visible element ${qualification_form_qualified_input_locator} | |
| 136 | + choose file ${add_file_to_qualification_form_locator} ${file_path} | |
| 137 | + wait until page does not contain element ${popup_dynamic_form_loading_element_locator} 60 | |
| 138 | + wait until element is visible ${qualification_form_add_document_type_input_locator} 60 | |
| 139 | +# submit current visible popup | |
| 140 | + | |
| 141 | + Run Keyword And Ignore Error Execute Javascript $('.fancybox-is-open .fancybox-content select[id*="-document_type"]:last').val('winningBid').change() | |
| 142 | + capture page screenshot | |
| 143 | + click visible element ${qualification_form_add_document_description_btn_locator} | |
| 144 | + capture page screenshot | |
| 145 | + wait until element is visible ${qualification_form_add_document_description_input_locator} | |
| 146 | + input text to exist visible input ${qualification_form_add_document_description_input_locator} test2 | |
| 147 | + capture page screenshot | |
| 148 | + click visible element ${qualification_form_add_document_close_description_btn_locator} | |
| 149 | + capture page screenshot | |
| 150 | + | |
| 151 | + run keyword and ignore error click visible element ${qualification_ecp_check_input_locator} | |
| 152 | + capture page screenshot | |
| 153 | + 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} | |
| 154 | + capture page screenshot | |
| 155 | + wait until element is visible ${qualification_form_submit_btn_locator} 60 | |
| 156 | +## run keyword and ignore error submit form and check result ${qualification_form_submit_btn_locator} ${None} ${qualification_ecp_form_open_locator} | |
| 157 | + Execute Javascript $('.fancybox-is-open .fancybox-content button.btn.btn-success').click() | |
| 158 | +# click visible element ${qualification_form_submit_btn_locator} | |
| 159 | + capture page screenshot | |
| 160 | + wait until element is visible ${qualification_form_submit_btn_locator} 60 | |
| 161 | + wait until element is visible ${qualification_ecp_form_open_locator} 60 | |
| 162 | + run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 10 | |
| 163 | + capture page screenshot | |
| 164 | + run keyword and ignore error Load Sign | |
| 165 | + capture page screenshot | |
| 166 | + wait until element is visible ${qualification_form_submit_btn_locator} 60 | |
| 167 | + run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 10 | |
| 168 | + capture page screenshot | |
| 169 | + run keyword and ignore error submit form and check result ${qualification_form_submit_btn_locator} ${qualification_award_after_ecp_form_submit_success_msg} ${None} | |
| 170 | + capture page screenshot | |
| 171 | +# Wait Until Page Contains ЕЦП/КЕП успішно накладено на рішення, тепер потрібно підтвердити рішення. 60 | |
| 172 | +# click visible element xpath=//div[contains(@class, 'jconfirm')]//*[text()='Закрити'] | |
| 173 | + | |
| 174 | + | |
| 175 | +reject award qualification | |
| 176 | + [Arguments] ${username} ${award_num} | |
| 177 | + [Documentation] Перевести постачальника під номером award_num для тендера tender_uaid | |
| 178 | + ... в статус active. | |
| 179 | + | |
| 180 | + Wait Until Page Contains ${popup_opened_content_success_locator} 60 | |
| 181 | + wait until element is visible ${qualification_form_submit_btn_locator} 60 | |
| 182 | +# wait until popup is visible | |
| 183 | + ${doc_isset} = GetDictionaryKeyExist ${USERS.users['${username}']} qproposal${award_num}_document | |
| 184 | +# ${doc_name} = Run Keyword If ${doc_isset} GetValueFromDictionaryByKey ${USERS.users['${username}']} qproposal${award_num}_document | |
| 185 | +# ... ELSE GenerateFakeDocument | |
| 186 | + ${file_path} ${file_name} ${file_content} = create_fake_doc | |
| 187 | + Execute Javascript $('#qualificationform-decision').val('decline').change() | |
| 188 | + capture page screenshot | |
| 189 | +# select from visible list by label ${tender_form_award_organization_region_id_locator} ${region} | |
| 190 | + wait until page contains element ${qualification_form_reasons_cancellation_input_locator} | |
| 191 | + capture page screenshot | |
| 192 | + Execute Javascript ${qualification_award_form_title_cancellation_input_locator} | |
| 193 | + capture page screenshot | |
| 194 | +# input text to exist visible input ${qualification_form_reasons_cancellation_input_locator} GenerateFakeText | |
| 195 | + input text to exist visible input ${qualification_form_description_cancellation_input_locator} GenerateFakeText | |
| 196 | + | |
| 197 | + choose file ${add_file_to_qualification_form_locator} ${file_path} | |
| 198 | + wait until element is visible ${qualification_form_add_document_type_input_locator} | |
| 199 | +# submit current visible popup | |
| 200 | + | |
| 201 | + Run Keyword And Ignore Error Execute Javascript $('.fancybox-is-open .fancybox-content .field-bidform-documents select[id*="-document_type"]:last').val('winningBid').change() | |
| 202 | + capture page screenshot | |
| 203 | + click visible element ${qualification_form_add_document_description_btn_locator} | |
| 204 | + wait until element is visible ${qualification_form_add_document_description_input_locator} | |
| 205 | + input text to exist visible input ${qualification_form_add_document_description_input_locator} test2 | |
| 206 | + click visible element ${qualification_form_add_document_close_description_btn_locator} | |
| 207 | + | |
| 208 | + submit form and check result ${qualification_form_submit_btn_locator} ${qualification_form_cancell_success_msg} ${tender_created_checker_element_locator} | |
| 209 | + run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 10 | |
| 210 | + capture page screenshot | |
| 211 | + run keyword and ignore error Load Sign | |
| 212 | + capture page screenshot | |
| 213 | + wait until element is visible ${qualification_form_submit_btn_locator} 60 | |
| 214 | + run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 10 | |
| 215 | + capture page screenshot | |
| 216 | + run keyword and ignore error submit form and check result ${qualification_form_submit_btn_locator} ${qualification_award_after_ecp_form_submit_success_msg} ${None} | |
| 217 | + capture page screenshot | |
| 218 | + reload page | |
| 219 | + | |
| 220 | +cancel award qualification | |
| 221 | + [Documentation] Відкрити форму кваліфікації і перевести кваліфікацію під номером qualification_num до тендера | |
| 222 | + ... tender_uaid в статус cancelled. | |
| 223 | + | |
| 224 | + wait until element is visible ${qualification_form_submit_btn_locator} 60 | |
| 225 | +# Execute Javascript ${qualification_form_cancel_input_locator} | |
| 226 | + Execute Javascript $('#qualificationform-decision').val('cancel').change() | |
| 227 | +# select from visible list by label ${tender_form_award_organization_region_id_locator} ${region} | |
| 228 | + capture page screenshot | |
| 229 | + wait until page contains element ${qualification_form_description_cancellation_input_locator} | |
| 230 | + capture page screenshot | |
| 231 | + Execute Javascript ${qualification_award_form_title_decline_input_locator} | |
| 232 | + input text to exist visible input ${qualification_form_description_cancellation_input_locator} GenerateFakeText | |
| 233 | + capture page screenshot | |
| 234 | + submit form and check result ${qualification_form_submit_btn_locator} ${qualification_form_cancel_success_msg} ${tender_created_checker_element_locator} | |
| 235 | + | |
| 236 | +#qualification awawd reporting and negotiotion | |
| 237 | +confirm award | |
| 238 | + [Documentation] Перевести постачальника в статус active. | |
| 239 | + | |
| 240 | + run keyword and ignore error run keyword if '${mode}' in 'negotiation' Wait Until Page Contains ${award_form_negotiation_submit_success_msg} 60 | |
| 241 | + run keyword and ignore error run keyword if '${mode}' in 'negotiation' wait until alert is visible ${award_form_negotiation_submit_success_msg} | |
| 242 | + run keyword and ignore error run keyword if '${mode}' in 'negotiation' close current visible alert | |
| 243 | + | |
| 244 | + capture page screenshot | |
| 245 | + capture page screenshot | |
| 246 | + wait until page contains element with reloading ${qualification_form_0_open_btn_locator} | |
| 247 | + click visible element ${qualification_form_0_open_btn_locator} | |
| 248 | + Wait Until Page Contains ${popup_opened_content_success_locator} 60 | |
| 249 | + run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 10 | |
| 250 | + wait until element is visible ${qualification_form_submit_btn_locator} 60 | |
| 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} ${file_path} | |
| 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 click visible element ${qualification_ecp_check_input_locator} | |
| 273 | + capture page screenshot | |
| 274 | + run keyword and ignore error run keyword if '${mode}' in 'reporting' submit form and check result ${qualification_form_submit_btn_locator} ${qualification_form_submit_success_msg} | |
| 275 | + capture page screenshot | |
| 276 | + run keyword and ignore error run keyword if '${mode}' in 'reporting' wait until page contains element with reloading ${qualification_form_0_open_btn_locator} | |
| 277 | + capture page screenshot | |
| 278 | + run keyword and ignore error run keyword if '${mode}' in 'reporting' click visible element ${qualification_form_0_open_btn_locator} | |
| 279 | + capture page screenshot | |
| 280 | + run keyword and ignore error run keyword if '${mode}' in 'reporting' Execute Javascript $('#qualificationform-decision').val('accept').change() | |
| 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 | + wait until element is visible ${qualification_form_submit_btn_locator} 60 | |
| 285 | +## run keyword and ignore error submit form and check result ${qualification_form_submit_btn_locator} ${None} ${qualification_ecp_form_open_locator} | |
| 286 | + Execute Javascript $('.fancybox-is-open .fancybox-content button.btn.btn-success').click() | |
| 287 | +# click visible element ${qualification_form_submit_btn_locator} | |
| 288 | + capture page screenshot | |
| 289 | + wait until element is visible ${qualification_form_submit_btn_locator} 60 | |
| 290 | + wait until element is visible ${qualification_ecp_form_open_locator} 60 | |
| 291 | + run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 10 | |
| 292 | + capture page screenshot | |
| 293 | + run keyword and ignore error Load Sign | |
| 294 | + capture page screenshot | |
| 295 | + wait until element is visible ${qualification_form_submit_btn_locator} 60 | |
| 296 | + run keyword and ignore error wait until element is visible ${tender_status_active_qualification_value_locator} 10 | |
| 297 | + capture page screenshot | |
| 298 | + run keyword and ignore error submit form and check result ${qualification_form_submit_btn_locator} ${qualification_award_after_ecp_form_submit_success_msg} ${None} | |
| 299 | + capture page screenshot | |
| 300 | + | |
| 301 | + | ... | ... |
playtender_qualification_variables.robot
0 → 100644
| 1 | +*** Variables *** | |
| 2 | + | |
| 3 | +#qualification | |
| 4 | +${prequalification_form_0_open_btn_locator} = jquery=#bids-pjax .pseudo-table__row:nth(1) a[href*="/tender/prequalification"] | |
| 5 | +${prequalification_form_1_open_btn_locator} = jquery=#bids-pjax .pseudo-table__row:nth(2) a[href*="/tender/prequalification"] | |
| 6 | +${prequalification_form_2_open_btn_locator} = jquery=#bids-pjax .pseudo-table__row:last a[href*="/tender/prequalification"] | |
| 7 | +${prequalification_form_approve_open_btn_locator} = jquery=.aside__inner a[href*="/tender/prequalification-approve"] | |
| 8 | +${prequalification_form_accept_input_locator} = $('#prequalificationform-decision').val('accept').change() | |
| 9 | +${prequalification_form_decline_input_locator} = $('#prequalificationform-decision').val('decline').change() | |
| 10 | +${prequalification_form_cancel_input_locator} = $('#prequalificationform-decision').val('cancel').change() | |
| 11 | +${prequalification_form_eligible_input_locator} = jquery=#prequalificationform-eligible | |
| 12 | +${prequalification_form_qualified_input_locator} = jquery=#prequalificationform-qualified | |
| 13 | +${qualification_form_reasons_cancellation_input_locator} = jquery=.fancybox-is-open .select2-search__field | |
| 14 | +${prequalification_form_title_cancellation_input_locator} = $('#prequalificationform-title').val('Тендерна пропозиція не відповідає вимогам тендерної документації').change() | |
| 15 | +${prequalification_form_description_cancellation_input_locator} = jquery=#prequalificationform-description | |
| 16 | + | |
| 17 | +${qualification_form_submit_success_msg} = Пропозиція прийнята | |
| 18 | +${qualification_form_decline_success_msg} = Пропозиція відхилена | |
| 19 | +${qualification_form_cancel_success_msg} = Рішення скасоване | |
| 20 | +${qualification_form_cancell_success_msg} = Рішення завантажене, тепер потрібно накласти ЕЦП/КЕП. | |
| 21 | +${qualification_form_approve_question_msg} = Ви впевнені що бажаєте завершити прекваліфікацію і перейти до наступного етапу? | |
| 22 | +${qualification_form_submit_btn_locator} = jquery=.fancybox-is-open .fancybox-content button.btn.btn-success | |
| 23 | +${qualification_form_approve_submit_btn_locator} = jquery=.jconfirm-box-container .btn.btn-default | |
| 24 | +${qualification_form_approve_success_msg} = Прекваліфікація підтверджена, дочекайтесь опублікування на сайті уповноваженого органу. | |
| 25 | +${qualification_form_approve_js_submit_btn_locator} = $('.jconfirm-box-container .btn.btn-default').click() | |
| 26 | + | |
| 27 | +${qualification_form_0_open_btn_locator} = jquery=#bids-pjax .pseudo-table__row a[href*="/tender/qualification"] | |
| 28 | +${qualification_form_1_open_btn_locator} = jquery=#bids-pjax .pseudo-table__row:last a[href*="/tender/qualification"] | |
| 29 | +${qualification_form_eligible_input_locator} = jquery=#qualificationform-eligible | |
| 30 | +${qualification_form_qualified_input_locator} = jquery=#qualificationform-qualified | |
| 31 | +${qualification_award_form_submit_success_msg} = Рішення завантажене, тепер потрібно накласти ЕЦП/КЕП. | |
| 32 | +${qualification_award_after_ecp_form_submit_success_msg} = Рішення підтверджене, очікує опублікування на сайті уповноваженого органу. | |
| 33 | +${qualification_ecp_form_submit_success_msg} = ЕЦП/КЕП успішно накладено | |
| 34 | +#${qualification_ecp_form_submit_success_msg} = ЕЦП/КЕП успішно накладено на рішення, тепер потрібно підтвердити рішення. | |
| 35 | +${qualification_ecp_form_open_locator} = jquery=.modal.modal-xs.fancybox-content | |
| 36 | +${qualification_ecp_check_input_locator} = jquery=input[id$="form-signing"] | |
| 37 | +${qualification_award_form_title_cancellation_input_locator} = $('#qualificationform-title').val('Тендерна пропозиція не відповідає вимогам тендерної документації').change() | |
| 38 | +${qualification_award_form_title_decline_input_locator} = $('#qualificationform-title').val('Переможець відмовився від підписання договору про закупівлю відповідно до вимог тендерної документації або укладення договору про закупівлю').change() | |
| 39 | +${qualification_form_description_cancellation_input_locator} = jquery=#qualificationform-description | |
| 40 | +${qualification_form_approve_open_btn_locator} = jquery=.aside__inner a[href*="/tender/qualification-approve"] | |
| 41 | +${qualification_form_accept_input_locator} = $('#qualificationform-decision').val('accept').change() | |
| 42 | +${qualification_form_decline_input_locator} = $('#qualificationform-decision').val('decline').change() | |
| 43 | +${add_file_to_qualification_form_locator} = jquery=.field-qualificationform-documents .js-upload-documents input[type$="file"]:first | |
| 44 | +${qualification_form_cancel_input_locator} = $('#qualificationform-decision').val('cancel').change() | |
| 45 | +${qualification_form_add_document_type_input_locator} = jquery=.js-dynamic-form-content-item:last .document-type select[id*="-document_type"] | |
| 46 | +${qualification_form_add_document_description_btn_locator} = jquery=.js-dynamic-form-content-item:last [href$="#edit"]:last | |
| 47 | +${qualification_form_add_document_description_input_locator} = jquery=.js-dynamic-form-content-item:last .popover.fade.top.in textarea[id*="-description"].form-control | |
| 48 | +${qualification_form_add_document_close_description_btn_locator} = jquery=.js-dynamic-form-content-item:last .popover.fade.top.in [href$="#close"] | |
| 49 | + | |
| 50 | +#award reporting and negotiotion | |
| 51 | +${award_form_qualified_input_locator} = jquery=#qualificationform-qualified | |
| 52 | +${award_form_negotiation_submit_success_msg} = Інформація о постачальниках успішно онвлена. | |
| 53 | + | ... | ... |
| ... | ... | @@ -10,38 +10,37 @@ add question |
| 10 | 10 | [Documentation] Створити запитання з question в описі для тендера tender_uaid. |
| 11 | 11 | |
| 12 | 12 | click visible element ${question_form_open_btn_locator} |
| 13 | - capture page screenshot | |
| 14 | 13 | click visible element ${question_form_open_create_btn_locator} |
| 15 | - | |
| 16 | -# click visible element jquery=#tender-part-pjax a[href*="/tender/question-create"]:first | |
| 17 | - capture page screenshot | |
| 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 | |
| 18 | 16 | wait until popup is visible |
| 19 | 17 | # input text to exist visible input ${question_form_open_form_answer_input_locator} ${question.data.answer} |
| 20 | 18 | Run Keyword If '${type}' == 'tender' Select From List By Label ${question_form_create_questionform_related_of_input_locator} Закупівля |
| 21 | 19 | Run Keyword If '${type}' == 'lot' Select From List By Label ${question_form_create_questionform_related_of_input_locator} Лот |
| 22 | - Run Keyword If '${type}' == 'lot' Click Element ${question_form_create_questionform_related_lot_input_locator} | |
| 20 | + Run Keyword If '${type}' == 'lot' run keyword and ignore error Click Element ${question_form_create_questionform_related_lot_input_locator} | |
| 23 | 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} |
| 24 | - Run Keyword If '${type}' == 'lot' Click Element ${question_form_create_questionform_related_lot_input_locator} | |
| 22 | + Run Keyword If '${type}' == 'lot' run keyword and ignore error Click Element ${question_form_create_questionform_related_lot_input_locator} | |
| 25 | 23 | Run Keyword If '${type}' == 'item' Select From List By Label ${question_form_create_questionform_related_of_input_locator} Предмет закупівлі |
| 26 | - Run Keyword If '${type}' == 'item' Click Element ${question_form_create_questionform_related_item_input_locator} | |
| 24 | + Run Keyword If '${type}' == 'item' run keyword and ignore error Click Element ${question_form_create_questionform_related_item_input_locator} | |
| 27 | 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} |
| 28 | - Run Keyword If '${type}' == 'item' Click Element ${question_questionform_related_item_input_locator} | |
| 26 | + Run Keyword If '${type}' == 'item' run keyword and ignore error Click Element ${question_questionform_related_item_input_locator} | |
| 29 | 27 | input text to exist visible input ${question_form_create_questionform_title_input_locator} ${question.data.title} |
| 30 | 28 | input text to exist visible input ${question_form_create_questionform_description_input_locator} ${question.data.description} |
| 31 | - click visible element ${question_form_answer_submit_btn_locator} | |
| 29 | + submit form and check result ${question_form_answer_submit_btn_locator} ${question_form_submit_success_msg} ${tender_created_checker_element_locator} | |
| 30 | +# click visible element ${question_form_answer_submit_btn_locator} | |
| 32 | 31 | wait until page does not contain element with reloading ${tender_sync_element_locator} |
| 33 | 32 | |
| 34 | 33 | answer question |
| 35 | 34 | [Arguments] ${answer_data} ${question_id} |
| 36 | 35 | [Documentation] Дати відповідь answer_data на запитання з question_id в описі для тендера tender_uaid. |
| 37 | 36 | |
| 38 | - run keyword and ignore error save tender form and wait synchronization | |
| 39 | 37 | click visible element ${question_form_open_btn_locator} |
| 40 | 38 | ${question_open_form_answer_locator} = replace string ${question_open_form_answer_btn_locator_tpl} %title% ${question_id} |
| 41 | 39 | wait until page contains element with reloading ${question_open_form_answer_locator} |
| 42 | 40 | ${question_form_open_form_answer_btn_locator} = replace string ${question_form_open_form_answer_btn_locator_tpl} %title% ${question_id} |
| 43 | 41 | click visible element ${question_form_open_form_answer_btn_locator} |
| 44 | - wait until popup is visible | |
| 42 | + Wait Until Page Contains ${popup_opened_content_success_locator} 60 | |
| 43 | + wait until element is visible ${question_form_open_form_answer_input_locator} 60 | |
| 45 | 44 | input text to exist visible input ${question_form_open_form_answer_input_locator} ${answer_data.data.answer} |
| 46 | 45 | submit form and check result ${question_form_answer_submit_btn_locator} ${question_form_submit_answer_success_msg} ${tender_created_checker_element_locator} |
| 47 | 46 | |
| ... | ... | @@ -52,11 +51,9 @@ get question information |
| 52 | 51 | |
| 53 | 52 | capture page screenshot |
| 54 | 53 | run keyword and ignore error save tender form and wait synchronization |
| 55 | - capture page screenshot | |
| 56 | 54 | click visible element ${question_form_open_btn_locator} |
| 57 | 55 | ${question_open_form_answer_locator} = replace string ${question_open_form_answer_btn_locator_tpl} %title% ${question_id} |
| 58 | 56 | wait until page contains element with reloading ${question_open_form_answer_locator} |
| 59 | - capture page screenshot | |
| 60 | 57 | ${question_title_value_locator} = Run Keyword If 'title' == '${field_name}' replace string ${question_title_value_locator_tpl} %title% ${question_id} |
| 61 | 58 | ${question_answer_value_locator} = Run Keyword If 'answer' == '${field_name}' replace string ${question_answer_value_locator_tpl} %title% ${question_id} |
| 62 | 59 | ${question_description_value_locator} = Run Keyword If 'description' == '${field_name}' replace string ${question_description_value_locator_tpl} %title% ${question_id} | ... | ... |
| ... | ... | @@ -24,3 +24,5 @@ ${question_answer_value_locator_tpl} = jquery=#tend |
| 24 | 24 | ${question_title_value_locator_tpl} = jquery=#tender-question-list .js-item div[data-title*="%title%"] h4.callout__title |
| 25 | 25 | ${question_description_value_locator_tpl} = jquery=#tender-question-list .js-item div[data-title*="%title%"] .info-row.description span.value |
| 26 | 26 | |
| 27 | +${popup_locator} = jquery=.fancybox-is-open .fancybox-slide--current .fancybox-content | |
| 28 | + | ... | ... |
| 1 | 1 | # -*- coding: utf-8 - |
| 2 | 2 | import re |
| 3 | 3 | import copy |
| 4 | +import urllib | |
| 5 | +import urllib3 | |
| 4 | 6 | |
| 5 | 7 | import dateutil.parser |
| 6 | 8 | from iso8601 import parse_date |
| 7 | 9 | from robot.libraries.BuiltIn import BuiltIn |
| 10 | +from datetime import datetime, timedelta | |
| 11 | +import pytz | |
| 8 | 12 | |
| 13 | +TZ = pytz.timezone('Europe/Kiev') | |
| 9 | 14 | |
| 10 | 15 | def get_library(): |
| 11 | 16 | return BuiltIn().get_library_instance('Selenium2Library') |
| ... | ... | @@ -331,3 +336,16 @@ def set_value_minimalStepPercentage(value): |
| 331 | 336 | def convert_esco__float_to_string(number): |
| 332 | 337 | return '{0:.5f}'.format(float(number)) |
| 333 | 338 | |
| 339 | +def convert_string_to_float(number): | |
| 340 | + return float(number) | |
| 341 | + | |
| 342 | +def download_file(url, file_name, output_dir): | |
| 343 | + urllib.urlretrieve(url, ('{}/{}'.format(output_dir, file_name))) | |
| 344 | + | |
| 345 | +def parse_complaintPeriod_date(date_string): | |
| 346 | + date_str = datetime.strptime(date_string, "%d.%m.%Y %H:%M") | |
| 347 | + date_str -= timedelta(minutes=5) | |
| 348 | + date = datetime(date_str.year, date_str.month, date_str.day, date_str.hour, date_str.minute, date_str.second, | |
| 349 | + date_str.microsecond) | |
| 350 | + date = TZ.localize(date).isoformat() | |
| 351 | + return date | ... | ... |
| ... | ... | @@ -143,7 +143,9 @@ fill tender general info |
| 143 | 143 | ${cause} = get from dictionary by keys ${data} cause |
| 144 | 144 | run keyword if condition is not none ${cause} select from visible list by value ${tender_form_general_cause_input_locator} ${cause} |
| 145 | 145 | ${cause_description} = get from dictionary by keys ${data} causeDescription |
| 146 | - run keyword if condition is not none ${cause_description} input text to visible input ${tender_form_general_cause_description_input_locator} ${description} | |
| 146 | + run keyword if condition is not none ${cause_description} input text to visible input ${tender_form_general_cause_description_input_locator} ${cause_description} | |
| 147 | +#complaints | |
| 148 | + Run Keyword If '${SUITE_NAME}' == 'Tests Files.Complaints' click visible element ${tender_form_auction_skip_mode_input_locator} | |
| 147 | 149 | submit current visible popup |
| 148 | 150 | |
| 149 | 151 | fill tender form items |
| ... | ... | @@ -217,7 +219,8 @@ fill tender form features |
| 217 | 219 | click visible element ${add_btn_locator} |
| 218 | 220 | wait until popup is visible |
| 219 | 221 | :FOR ${feature_attributes} IN @{feature_attributes_array} |
| 220 | - \ click visible element ${tender_form_features_panel_edit_btn_locator} | |
| 222 | +# \ click visible element ${tender_form_features_panel_edit_btn_locator} | |
| 223 | + \ execute javascript ${tender_form_features_panel_edit_btn_locator} | |
| 221 | 224 | \ wait until page does not contain element ${popup_dynamic_form_loading_element_locator} |
| 222 | 225 | \ fill feature form in opened popup ${feature_attributes} |
| 223 | 226 | submit current visible popup |
| ... | ... | @@ -335,8 +338,11 @@ fill tender required documents |
| 335 | 338 | |
| 336 | 339 | fill tender from award reporting |
| 337 | 340 | [Arguments] ${budget} ${award_attributes_array} |
| 338 | - [Documentation] заповнення номенклатури тендеру | |
| 341 | + [Documentation] заповнення переможця reporting тендеру | |
| 339 | 342 | |
| 343 | + run keyword and ignore error click visible element ${tender_form_general_panel_update_award_negotiation_btn_locator} | |
| 344 | + run keyword and ignore error Run Keyword If "${TEST_NAME}" == "Можливість створити переговорну процедуру" click visible element ${tender_form_general_panel_add_award_negotiation_btn_locator} | |
| 345 | + run keyword and ignore error wait until popup is visible | |
| 340 | 346 | run keyword and ignore error click visible element ${tender_form_general_panel_update_award_reporting_btn_locator} |
| 341 | 347 | wait until popup is visible |
| 342 | 348 | fill award reporting form in opened popup ${budget} ${award_attributes_array} |
| ... | ... | @@ -394,12 +400,48 @@ add document in lot |
| 394 | 400 | [Arguments] ${filepath} ${lot_id} |
| 395 | 401 | [Documentation] Завантажити в лот (з ідентіфікатором ${lot_id}) документ, який знаходиться по шляху filepath. |
| 396 | 402 | |
| 397 | - capture page screenshot | |
| 398 | 403 | ${open_form_add_doc_lot_btn_locator} = replace string ${tender_form_lot_panel_add_document_btn_locator_tpl} %lot_id% ${lot_id} |
| 399 | - capture page screenshot | |
| 400 | - 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 | |
| 401 | - capture page screenshot | |
| 404 | + 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 | |
| 402 | 405 | choose file ${add_file_to_form_locator} ${filepath} |
| 403 | 406 | wait until page does not contain element ${popup_dynamic_form_loading_element_locator} |
| 404 | 407 | submit current visible popup |
| 405 | 408 | |
| 409 | +confirm-stage2 | |
| 410 | + [Documentation] Перевести тендер tender_uaid в статус active.stage2.waiting. | |
| 411 | + | |
| 412 | + Wait Until Keyword Succeeds 300 s 20 s Wait For stage2button | |
| 413 | + click visible element ${tender_stage2_open_btn_locator} | |
| 414 | + Wait Until Page Contains ${tender_stage2_submit_success_msg} 60 | |
| 415 | +# click visible element ${tender_stage2_submit_success_btn_locator} | |
| 416 | +# submit form and check result ${tender_stage2_submit_success_btn_locator} ${tender_stage2_submit_alert_success_msg} ${tender_created_checker_element_locator} | |
| 417 | + execute javascript ${tender_stage2_submit_js_success_btn_locator} | |
| 418 | + Wait Until Page Contains ${tender_stage2_submit_alert_success_msg} 60 | |
| 419 | + wait until alert is visible ${tender_stage2_submit_alert_success_msg} | |
| 420 | + run keyword and ignore error close current visible alert | |
| 421 | + | |
| 422 | + | |
| 423 | +activate stage 2 | |
| 424 | + [Documentation] Перевести тендер tender_uaid в статус active.tendering. | |
| 425 | + | |
| 426 | + open popup by btn locator ${tender_form_general_panel_edit_btn_locator} | |
| 427 | + ${tender_end_date} = Get Current Date increment=00:25:00 result_format=%Y-%m-%dT%H:%M:%S.%f%z+02:00 | |
| 428 | +# ${tender_end_date} = Get Current Date increment=00:25:00 result_format=%d.%m.%Y %H:%M | |
| 429 | + input datetime to visible input ${tender_tender_period_end_date_input_locator} ${tender_end_date} | |
| 430 | + capture page screenshot | |
| 431 | + click visible element ${tender_form_general_panel_draft_mode_input_locator} | |
| 432 | + capture page screenshot | |
| 433 | + submit current visible popup | |
| 434 | + capture page screenshot | |
| 435 | + ${file_path} ${file_name} ${file_content} = create_fake_doc | |
| 436 | + click visible element ${tender_form_general_panel_document_stage2_input_locator} | |
| 437 | + choose file ${add_file_to_form_locator} ${file_path} | |
| 438 | + wait until element is visible ${stage2_form_add_document_type_input_locator} | |
| 439 | + click visible element ${stage2_form_add_document_description_btn_locator} | |
| 440 | + capture page screenshot | |
| 441 | + wait until element is visible ${stage2_form_add_document_description_input_locator} | |
| 442 | + input text to exist visible input ${stage2_form_add_document_description_input_locator} test2 | |
| 443 | + click visible element ${stage2_form_add_document_close_description_btn_locator} | |
| 444 | + capture page screenshot | |
| 445 | + submit current visible popup | |
| 446 | + | |
| 447 | + | ... | ... |
| ... | ... | @@ -81,6 +81,7 @@ ${tender_enquiry_period_end_date_input_locator} = jquery=[id$= |
| 81 | 81 | ${tender_tender_period_start_date_input_locator} = jquery=[id$="form-tender_period_start_date"] |
| 82 | 82 | ${tender_tender_period_end_date_input_locator} = jquery=[id$="form-tender_period_end_date"] |
| 83 | 83 | ${tender_tender_quick_mode_locator} = jquery=[id$="form-quick_mode"] |
| 84 | + | |
| 84 | 85 | #esco |
| 85 | 86 | ${tender_form_general_funding_kind_input_locator} = id=tenderescoform-funding_kind |
| 86 | 87 | ${tender_form_general_nbu_discount_rate_input_locator} = id=tenderescoform-nbu_discount_rate |
| ... | ... | @@ -95,8 +96,12 @@ ${tender_form_general_agreement_duration_days_input_locator} = jquery=[id$= |
| 95 | 96 | ${tender_form_general_cause_input_locator} = jquery=[id$="form-cause"] |
| 96 | 97 | ${tender_form_general_cause_description_input_locator} = jquery=[id$="form-cause_description"] |
| 97 | 98 | |
| 99 | +#Tests Files.Complaints | |
| 100 | +${tender_form_auction_skip_mode_input_locator} = jquery=input[id$="form-auction_skip_mode"] | |
| 101 | + | |
| 98 | 102 | ${tender_form_general_panel_add_feature_btn_locator} = jquery=#collapseGeneral .btn[data-attribute="features"] |
| 99 | -${tender_form_features_panel_edit_btn_locator} = jquery=.fancybox-content [href$="#add-features"] | |
| 103 | +${tender_form_features_panel_edit_btn_locator} = $('.fancybox-content [href$="#add-features"]').trigger("click") | |
| 104 | +#${tender_form_features_panel_edit_btn_locator} = jquery=.fancybox-content [href$="#add-features"] | |
| 100 | 105 | ${feature_form_popup_title_input_locator} = jquery=.fancybox-is-open .tab-content:first > .tab-pane.active:first [id$="-title"]:first |
| 101 | 106 | ${feature_form_popup_description_input_locator} = jquery=.fancybox-is-open .tab-content:first > .tab-pane.active:first [id$="-description"]:first |
| 102 | 107 | ${feature_form_popup_title_en_input_locator} = jquery=.fancybox-is-open .tab-content:first > .tab-pane.active:first [id$="-title_en"]:first |
| ... | ... | @@ -198,28 +203,36 @@ ${tender_milestones_2_duration_days_value_type} = integer |
| 198 | 203 | ${tender_milestones_2_duration_type_value_locator} = jquery=#tender-part-pjax .tabs.tabs .milestone-info-wrapper.hidden.info-wrapper:last .info-row.duration_type |
| 199 | 204 | ${tender_value_amount_value_locator} = jquery=#tender-general-info .budget-amount.hidden |
| 200 | 205 | ${tender_value_amount_value_type} = float |
| 201 | -${tender_value_currency_value_locator} = jquery= | |
| 202 | -${tender_value_valueAddedTaxIncluded_value_locator} = jquery= | |
| 206 | +${tender_value_currency_value_locator} = jquery=#tender-general-info .budget-currency.hidden | |
| 207 | +${tender_value_valueAddedTaxIncluded_value_locator} = jquery=#tender-general-info .budget-tax-included.hidden | |
| 203 | 208 | ${tender_minimalStep_amount_value_locator} = jquery=#tender-general-info .minimal-step-source.hidden |
| 204 | 209 | ${tender_minimalStep_amount_value_type} = float |
| 210 | +${tender_minimalStepPercentage_value_locator} = jquery=#tender-general-info .minimal-step-percentage-source.hidden | |
| 211 | +${tender_fundingKind_value_locator} = jquery=#tender-general-info .funding-kind-source.hidden | |
| 212 | +${tender_yearlyPaymentsPercentageRange_value_locator} = jquery=#tender-general-info .yearly-payments-percentage-range-source.hidden | |
| 205 | 213 | ${tender_procuringEntity_name_value_locator} = jquery=#tender-part-pjax .info-row.organization span.value > span |
| 206 | 214 | ${tender_enquiryPeriod_startDate_value_locator} = jquery=#tender-part-pjax .info-row.enquiry-period-start-date.hidden |
| 207 | 215 | ${tender_enquiryPeriod_endDate_value_locator} = jquery=#tender-part-pjax .info-row.enquiry-period-end-date.hidden |
| 208 | 216 | ${tender_tenderPeriod_startDate_value_locator} = jquery=#tender-part-pjax .info-row.tender-period-start-date.hidden |
| 209 | 217 | ${tender_tenderPeriod_endDate_value_locator} = jquery=#tender-part-pjax .info-row.tender-period-end-date.hidden |
| 218 | +${tender_qualificationPeriod_endDate_value_locator} = jquery=#tender-general-info .prequalification-period .value .end-date | |
| 219 | +#negotiation | |
| 220 | +${tender_cause_value_locator} = jquery=#tender-general-info .cause-source.hidden | |
| 221 | +${tender_causeDescription_value_locator} = jquery=#tender-general-info .cause-description .value | |
| 210 | 222 | |
| 211 | -${tender_items_0_description_value_locator} = jquery=#tender-part-pjax .info-row.tender-period-end-date.hidden | |
| 223 | +${tender_items_0_description_value_locator} = jquery=#tender-part-pjax .tabs__pane--visible .pseudo-table .item-item-wrapper .textvalue.hidden | |
| 212 | 224 | |
| 213 | 225 | #lots |
| 214 | 226 | ${tender_lot_switch_tabs_lot_btn_locator_tpl} jquery=#lots .tabs__list .tabs__item span.tabs__tab-big-text:contains("%lot_id%") |
| 215 | 227 | ${tender_lot_1_tabs_item_btn_locator} jquery=#lots .tabs__item:first > a |
| 216 | 228 | ${tender_lot_title_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible > span div.textvalue:first |
| 217 | -${tender_lot_description_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible > span div.textvalue.hidden | |
| 229 | +${tender_lot_description_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible > span div.textvalue:last | |
| 230 | +#${tender_lot_description_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible #text-modal-description div.textvalue | |
| 218 | 231 | ${tender_lot_value_amount_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden |
| 219 | 232 | ${tender_lot_value_amount_value_type} = float |
| 220 | -${tender_lot_value_currency_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden | |
| 233 | +${tender_lot_value_currency_value_locator} = jquery=#tender-general-info .budget-currency.hidden | |
| 221 | 234 | ${tender_lot_value_value_added_tax_included_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden |
| 222 | -${tender_lot_minimal_step_amount_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden | |
| 235 | +${tender_lot_minimal_step_amount_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible .minimal-step-source.hidden | |
| 223 | 236 | ${tender_lot_minimal_step_amount_value_type} = float |
| 224 | 237 | ${tender_lot_minimal_step_amount_currency_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden |
| 225 | 238 | ${tender_lot_minimal_step_amount_value_added_tax_included_value_locator} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden |
| ... | ... | @@ -239,7 +252,8 @@ ${tender_form_lots_edit_lot1_btn_locator} = jquery=#Lots |
| 239 | 252 | ${tender_form_lots_add_item_btn_locator} = jquery=#Lots #collapseLots #Lots0 .actions-wrapper a.js-form-popup-add |
| 240 | 253 | ${tender_form_lots_remove_item_btn_locator_tpl} = jquery=#collapseLots0 .js-form-popup-panel[data-title*="%item_id%"] .actions-wrapper .js-form-popup-remove |
| 241 | 254 | ${tender_lots_remove_item_form_submit_success_msg} = Ви дійсно бажаєте видалити цей елемент? |
| 242 | -${not_alert_opened_close_btn_locator} = jquery=.animated-content .js-btn-confirm | |
| 255 | +#${not_alert_opened_close_btn_locator} = jquery=.animated-content .js-btn-confirm | |
| 256 | +${not_alert_opened_close_btn_locator} = $('.animated-content .js-btn-confirm').trigger("click") | |
| 243 | 257 | ${tender_form_lots_add_item_reporting_btn_locator} = jquery=.form-group-popup-panel[data-attribute="items"]:last #Items0 .js-form-popup-update |
| 244 | 258 | ##### EOF - TMP ##### |
| 245 | 259 | |
| ... | ... | @@ -249,6 +263,8 @@ ${tender_item_2_tabs_item_btn_locator} jquery=.tabs |
| 249 | 263 | ${tender_item_3_tabs_item_btn_locator} jquery=.tabs__content .tabs__pane--visible .pseudo-table__row.item-item-wrapper:nth(2) |
| 250 | 264 | |
| 251 | 265 | ${tender_form_general_panel_update_award_reporting_btn_locator} = jquery=#Award .js-form-popup-update |
| 266 | +${tender_form_general_panel_update_award_negotiation_btn_locator} = jquery=.js-form-popup-panel [data-attribute="awards"] .actions-wrapper .js-form-popup-update | |
| 267 | +${tender_form_general_panel_add_award_negotiation_btn_locator} = jquery=.modal.modal-form [href="#add-awards"] | |
| 252 | 268 | |
| 253 | 269 | #add\remove feature |
| 254 | 270 | #${tender_form_features_panel_edit_btn_locator} = jquery=.fancybox-content [href$="#add-features"] |
| ... | ... | @@ -261,7 +277,8 @@ ${tender_feature_form_submit_success_msg} = Ви впеР|
| 261 | 277 | ${tender_feature_dell_submit_btn_locator} = jquery=.animated-content .js-btn-confirm |
| 262 | 278 | |
| 263 | 279 | ${tender_form_general_tender_plan_id_locator} = jquery=[id$="form-plan_id"] |
| 264 | -${tender_feature_switch_dell_btn_locator_tpl} = jquery=.fancybox-is-open .nav.nav-pills.js-nav.allow-empty li[data-title*="%feature_id%"] a[href*="#features"] | |
| 280 | +#${tender_feature_switch_dell_btn_locator_tpl} = jquery=.fancybox-is-open .nav.nav-pills.js-nav.allow-empty li[data-title*="%feature_id%"] a[href*="#features"] | |
| 281 | +${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() | |
| 265 | 282 | |
| 266 | 283 | #award reporting |
| 267 | 284 | ${tender_form_award_organization_name_locator} = jquery=[id$="-award_organization_name"] |
| ... | ... | @@ -276,4 +293,23 @@ ${tender_form_award_organization_contact_point_email_locator} = jquery=[id$= |
| 276 | 293 | ${tender_form_award_organization_contact_point_phone_locator} = jquery=[id$="-award_organization_contact_point_phone"] |
| 277 | 294 | ${tender_form_award_budget_locator} = jquery=[id$="-award_value_amount"] |
| 278 | 295 | |
| 296 | +#stage2button | |
| 297 | +${tender_stage2_open_btn_locator} = jquery=#aside-part-pjax a[href*="/tender/confirm-stage2"] | |
| 298 | +${tender_stage2_submit_success_msg} = Ви впевнені що бажаєте підтвердити готовність переходу до другого етапу? | |
| 299 | +${tender_stage2_submit_success_btn_locator} = jquery=.jconfirm-box.animated-content .js-btn-confirm | |
| 300 | +${tender_stage2_submit_js_success_btn_locator} = $('.jconfirm-box.animated-content .js-btn-confirm').click() | |
| 301 | +${tender_stage2_submit_alert_success_msg} = Підтвердження успішно надане. | |
| 302 | +#search | |
| 303 | +${tender_form_search_btn_locator} = jquery=#DymamicSearch .dynamic-search-submit .js-submit-btn | |
| 304 | + | |
| 305 | +${popup_opened_content_success_locator} = Відмінити | |
| 306 | +${tender_form_general_panel_edit_btn_locator} = jquery=#General #headingGeneral .actions-wrapper .js-form-popup-update | |
| 307 | +${tender_form_general_panel_draft_mode_input_locator} = jquery=[id*="-draft_mode"] | |
| 308 | +${tender_form_general_panel_document_stage2_input_locator} = jquery=#collapseGeneral .actions-wrapper .js-btn-add-form-popup-panel[data-attribute="documents"] | |
| 309 | +${stage2_form_add_document_type_input_locator} = jquery=.js-dynamic-form-content-item:last .document-type select[id*="-document_type"] | |
| 310 | +${stage2_form_add_document_description_btn_locator} = jquery=.js-dynamic-form-content-item:last [href$="#edit"]:last | |
| 311 | +${stage2_form_add_document_description_input_locator} = jquery=.js-dynamic-form-content-item:last .popover.fade.top.in textarea[id*="-description"].form-control | |
| 312 | +${stage2_form_add_document_close_description_btn_locator} = jquery=.js-dynamic-form-content-item:last .popover.fade.top.in [href$="#close"] | |
| 313 | + | |
| 314 | + | |
| 279 | 315 | ... | ... |
| ... | ... | @@ -14,9 +14,12 @@ get value from features |
| 14 | 14 | [Arguments] ${feature_id} ${field_name} |
| 15 | 15 | [Documentation] Отримати значення поля field_name з нецінового показника з feature_id в описі для тендера tender_uaid. |
| 16 | 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} | |
| 17 | 20 | ${return_value} = Run Keyword If 'title' == '${field_name}' Отримати інформацію із нецінового показника title ${feature_id} |
| 18 | 21 | ... ELSE IF 'description' == '${field_name}' Отримати інформацію із нецінового показника description ${feature_id} |
| 19 | - ... ELSE IF 'featureOf' == '${field_name}' Отримати інформацію із нецінового показника featureOf ${feature_id]} | |
| 22 | + ... ELSE IF 'featureOf' == '${field_name}' Отримати інформацію із нецінового показника featureOf ${feature_id} | |
| 20 | 23 | [return] ${return_value} |
| 21 | 24 | |
| 22 | 25 | Отримати інформацію із нецінового показника title |
| ... | ... | @@ -32,7 +35,7 @@ get value from features |
| 32 | 35 | [Documentation] Отримати значення поля description з нецінового показника з feature_id в описі для тендера tender_uaid. |
| 33 | 36 | |
| 34 | 37 | ${tender_features_description_value_locator} = replace string ${tender_features_description_value_locator_tpl} %feature_id% ${feature_id} |
| 35 | - ${return_value} = get text ${tender_features_title_value_locator} | |
| 38 | + ${return_value} = get value by locator on opened page ${tender_features_description_value_locator} | |
| 36 | 39 | [return] ${return_value} |
| 37 | 40 | |
| 38 | 41 | Отримати інформацію із нецінового показника featureOf |
| ... | ... | @@ -40,7 +43,7 @@ get value from features |
| 40 | 43 | [Documentation] Отримати значення поля featureOf з нецінового показника з feature_id в описі для тендера tender_uaid. |
| 41 | 44 | |
| 42 | 45 | ${tender_features_featureof_value_locator} = replace string ${tender_features_featureof_value_locator_tpl} %feature_id% ${feature_id} |
| 43 | - ${return_value} = get text ${tender_features_title_value_locator} | |
| 46 | + ${return_value} = get value by locator on opened page ${tender_features_featureof_value_locator} | |
| 44 | 47 | [return] ${return_value} |
| 45 | 48 | |
| 46 | 49 | |
| ... | ... | @@ -51,6 +54,9 @@ get value from item |
| 51 | 54 | # ${return_value} = Run Keyword If 'title' == '${field_name}' Отримати інформацію із предмету title ${item_id} |
| 52 | 55 | # ... ELSE IF 'description' == '${field_name}' Отримати інформацію із предмету description ${item_id} |
| 53 | 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} | |
| 54 | 60 | Run Keyword And Return If 'description' == '${field_name}' Отримати інформацію із предмету description ${item_id} |
| 55 | 61 | Run Keyword And Return If 'deliveryDate.startDate' == '${field_name}' Отримати інформацію із предмету deliveryDate.startDate ${item_id} |
| 56 | 62 | Run Keyword And Return If 'deliveryDate.endDate' == '${field_name}' Отримати інформацію із предмету deliveryDate.endDate ${item_id} |
| ... | ... | @@ -75,7 +81,9 @@ get value from item |
| 75 | 81 | [Arguments] ${item_id} |
| 76 | 82 | [Documentation] Отримати значення поля description з предмету з item_id в описі для тендера tender_uaid. |
| 77 | 83 | |
| 78 | - ${tender_items_description_value_locator} = replace string ${tender_items_description_value_locator_tpl} %item_id% ${item_id} | |
| 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} | |
| 79 | 87 | ${return_value} = get value by locator on opened page ${tender_items_description_value_locator} |
| 80 | 88 | [return] ${return_value} |
| 81 | 89 | |
| ... | ... | @@ -91,7 +99,7 @@ get value from item |
| 91 | 99 | [Arguments] ${item_id} |
| 92 | 100 | [Documentation] Отримати значення поля deliveryDate.endDate з предмету з item_id в описі для тендера tender_uaid. |
| 93 | 101 | |
| 94 | - ${tender_items_delivery_end_date_value_locator} = replace string ${tender_features_featureof_value_locator_tpl} %item_id% ${item_id} | |
| 102 | + ${tender_items_delivery_end_date_value_locator} = replace string ${tender_items_delivery_end_date_value_locator_tpl} %item_id% ${item_id} | |
| 95 | 103 | ${return_value} = get value by locator on opened page ${tender_items_delivery_end_date_value_locator} |
| 96 | 104 | [return] ${return_value} |
| 97 | 105 | |
| ... | ... | @@ -140,7 +148,7 @@ get value from item |
| 140 | 148 | [Documentation] Отримати значення поля classification.scheme з предмету з item_id в описі для тендера tender_uaid. |
| 141 | 149 | |
| 142 | 150 | ${tender_items_classification_scheme_value_locator} = replace string ${tender_items_classification_scheme_value_locator_tpl} %item_id% ${item_id} |
| 143 | - ${return_value} = get value by locator on opened page ${tender_items_classification_scheme_value_locator_tpl} | |
| 151 | + ${return_value} = get value by locator on opened page ${tender_items_classification_scheme_value_locator} | |
| 144 | 152 | [return] ${return_value} |
| 145 | 153 | |
| 146 | 154 | Отримати інформацію із предмету classification.id |
| ... | ... | @@ -155,7 +163,7 @@ get value from item |
| 155 | 163 | [Arguments] ${item_id} |
| 156 | 164 | [Documentation] Отримати значення поля classification.description з предмету з item_id в описі для тендера tender_uaid. |
| 157 | 165 | |
| 158 | - ${tender_items_classification_description_value_locator_tpl} = replace string ${tender_items_classification_description_value_locator_tpl} %item_id% ${item_id} | |
| 166 | + ${tender_items_classification_description_value_locator} = replace string ${tender_items_classification_description_value_locator_tpl} %item_id% ${item_id} | |
| 159 | 167 | ${return_value} = get value by locator on opened page ${tender_items_classification_description_value_locator} |
| 160 | 168 | [return] ${return_value} |
| 161 | 169 | |
| ... | ... | @@ -196,7 +204,7 @@ get value from item |
| 196 | 204 | [Documentation] Отримати значення поля unit.code з предмету з item_id в описі для тендера tender_uaid. |
| 197 | 205 | |
| 198 | 206 | ${tender_items_unit_code_value_locator} = replace string ${tender_items_unit_code_value_locator_tpl} %item_id% ${item_id} |
| 199 | - ${return_value} = get value by locator on opened page ${tender_items_unit_code_value_locator_tpl} | |
| 207 | + ${return_value} = get value by locator on opened page ${tender_items_unit_code_value_locator} | |
| 200 | 208 | [return] ${return_value} |
| 201 | 209 | |
| 202 | 210 | Отримати інформацію із предмету quantity |
| ... | ... | @@ -219,18 +227,20 @@ get value from lot |
| 219 | 227 | Run Keyword And Return If 'value.valueAddedTaxIncluded' == '${field_name}' Отримати інформацію із лоту value.valueAddedTaxIncluded ${lot_id} |
| 220 | 228 | Run Keyword And Return If 'minimalStep.currency' == '${field_name}' Отримати інформацію із лоту minimalStep.currency ${lot_id} |
| 221 | 229 | Run Keyword And Return If 'minimalStep.valueAddedTaxIncluded' == '${field_name}' Отримати інформацію із лоту minimalStep.valueAddedTaxIncluded ${lot_id} |
| 222 | - Run Keyword And Return If 'auctionPeriod.startDate' == '${field_name}' get_invisible_text jquery=#accordionLots .panel-collapse.in .lot-info-wrapper .auction-period-start-date.hidden | |
| 223 | - Run Keyword And Return If 'auctionPeriod.endDate' == '${field_name}' get_invisible_text jquery=#accordionLots .panel-collapse.in .lot-info-wrapper .auction-period-end-date.hidden | |
| 224 | - Run Keyword And Return If 'minimalStepPercentage' == '${field_name}' Get invisible text number by locator jquery=#accordionLots .panel-collapse.in .lot-info-wrapper .minimal-step-percentage-source.hidden | |
| 225 | - Run Keyword And Return If 'fundingKind' == '${field_name}' get_invisible_text jquery=#accordionLots .lot-info-wrapper:first .funding-kind-source.hidden | |
| 226 | - Run Keyword And Return If 'yearlyPaymentsPercentageRange' == '${field_name}' Get invisible text number by locator jquery=#accordionLots .lot-info-wrapper:first .yearly-payments-percentage-range-source.hidden | |
| 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} | |
| 227 | 237 | |
| 228 | 238 | |
| 229 | 239 | Отримати інформацію із лоту title |
| 230 | 240 | [Arguments] ${lot_id} |
| 231 | 241 | [Documentation] Отримати значення поля title з лоту з lot_id в описі для тендера tender_uaid. |
| 232 | 242 | |
| 233 | - ${tender_lot_description_value_locator} = replace string ${tender_lot_description_value_locator_tpl} %lot_id% ${lot_id} | |
| 243 | +# ${tender_lot_title_value_locator} = replace string ${tender_lot_title_value_locator_tpl} %lot_id% ${lot_id} | |
| 234 | 244 | ${return_value} = get value by locator on opened page ${tender_lot_title_value_locator} |
| 235 | 245 | [return] ${return_value} |
| 236 | 246 | |
| ... | ... | @@ -238,7 +248,7 @@ get value from lot |
| 238 | 248 | [Arguments] ${lot_id} |
| 239 | 249 | [Documentation] Отримати значення поля description з лоту з lot_id в описі для тендера tender_uaid. |
| 240 | 250 | |
| 241 | - ${tender_lot_description_value_locator} = replace string ${tender_lot_description_value_locator_tpl} %lot_id% ${lot_id} | |
| 251 | +# ${tender_lot_description_value_locator} = replace string ${tender_lot_description_value_locator_tpl} %lot_id% ${lot_id} | |
| 242 | 252 | ${return_value} = get value by locator on opened page ${tender_lot_description_value_locator} |
| 243 | 253 | [return] ${return_value} |
| 244 | 254 | |
| ... | ... | @@ -246,23 +256,23 @@ get value from lot |
| 246 | 256 | [Arguments] ${lot_id} |
| 247 | 257 | [Documentation] Отримати значення поля description з лоту з lot_id в описі для тендера tender_uaid. |
| 248 | 258 | |
| 249 | - ${tender_lot_value_amount_value_locator} = replace string ${tender_lot_value_amount_value_locator_tpl} %lot_id% ${lot_id} | |
| 250 | - ${return_value} = get value by locator on opened page ${tender_lot_value_amount_value_locator} | |
| 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} | |
| 251 | 261 | [return] ${return_value} |
| 252 | 262 | |
| 253 | 263 | Отримати інформацію із лоту minimalStep.amount |
| 254 | 264 | [Arguments] ${lot_id} |
| 255 | 265 | [Documentation] Отримати значення поля featureOf з лоту з lot_id в описі для тендера tender_uaid. |
| 256 | 266 | |
| 257 | - ${tender_lot_minimal_step_amount_value_locator} = replace string ${tender_lot_minimal_step_amount_value_locator_tpl} %lot_id% ${lot_id} | |
| 258 | - ${return_value} = get value by locator on opened page ${tender_lot_minimal_step_amount_value_locator} | |
| 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} | |
| 259 | 269 | [return] ${return_value} |
| 260 | 270 | |
| 261 | 271 | Отримати інформацію із лоту value.currency |
| 262 | 272 | [Arguments] ${lot_id} |
| 263 | 273 | [Documentation] Отримати значення поля title з лоту з lot_id в описі для тендера tender_uaid. |
| 264 | 274 | |
| 265 | - ${tender_lot_value_currency_value_locator} = replace string ${tender_lot_value_currency_value_locator_tpl} %lot_id% ${lot_id} | |
| 275 | +# ${tender_lot_value_currency_value_locator} = replace string ${tender_lot_value_currency_value_locator_tpl} %lot_id% ${lot_id} | |
| 266 | 276 | ${return_value} = get value by locator on opened page ${tender_lot_value_currency_value_locator} |
| 267 | 277 | [return] ${return_value} |
| 268 | 278 | |
| ... | ... | @@ -270,15 +280,16 @@ get value from lot |
| 270 | 280 | [Arguments] ${lot_id} |
| 271 | 281 | [Documentation] Отримати значення поля description з лоту з lot_id в описі для тендера tender_uaid. |
| 272 | 282 | |
| 273 | - ${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} | |
| 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} | |
| 274 | 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 ${return_value} == 1 True | |
| 275 | 286 | [return] ${return_value} |
| 276 | 287 | |
| 277 | 288 | Отримати інформацію із лоту minimalStep.currency |
| 278 | 289 | [Arguments] ${lot_id} |
| 279 | 290 | [Documentation] Отримати значення поля title з лоту з lot_id в описі для тендера tender_uaid. |
| 280 | 291 | |
| 281 | - ${tender_lot_minimal_step_currency_value_locator} = replace string ${tender_lot_minimal_step_currency_value_locator_tpl} %lot_id% ${lot_id} | |
| 292 | +# ${tender_lot_minimal_step_currency_value_locator} = replace string ${tender_lot_minimal_step_currency_value_locator_tpl} %lot_id% ${lot_id} | |
| 282 | 293 | ${return_value} = get value by locator on opened page ${tender_lot_minimal_step_currency_value_locator} |
| 283 | 294 | [return] ${return_value} |
| 284 | 295 | |
| ... | ... | @@ -286,7 +297,7 @@ get value from lot |
| 286 | 297 | [Arguments] ${lot_id} |
| 287 | 298 | [Documentation] Отримати значення поля description з лоту з lot_id в описі для тендера tender_uaid. |
| 288 | 299 | |
| 289 | - ${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} | |
| 300 | +# ${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} | |
| 290 | 301 | ${return_value} = get value by locator on opened page ${tender_lot_minimal_step_value_added_tax_included_value_locator} |
| 291 | 302 | [return] ${return_value} |
| 292 | 303 | |
| ... | ... | @@ -294,39 +305,237 @@ get value from lot |
| 294 | 305 | [Arguments] ${lot_id} |
| 295 | 306 | [Documentation] Отримати значення поля featureOf з лоту з lot_id в описі для тендера tender_uaid. |
| 296 | 307 | |
| 297 | - ${tender_lot_delivery_region_id_value_locator} = replace string ${tender_lot_delivery_region_id_value_locator_tpl} %lot_id% ${lot_id} | |
| 298 | - ${return_value} = get value by locator on opened page ${tender_lot_delivery_region_id_value_locator} | |
| 308 | +# ${tender_lot_delivery_region_id_value_locator} = replace string ${tender_lot_delivery_region_id_value_locator_tpl} %lot_id% ${lot_id} | |
| 309 | + ${return_value} = get value by locator on opened page ${tender_auctionPeriod_startDate_value_locator} | |
| 310 | +# ${return_value} = parse_complaintPeriod_date ${return_value} | |
| 299 | 311 | [return] ${return_value} |
| 300 | 312 | |
| 301 | 313 | Отримати інформацію із лоту auctionPeriod.endDate |
| 302 | 314 | [Arguments] ${lot_id} |
| 303 | 315 | [Documentation] Отримати значення поля title з лоту з lot_id в описі для тендера tender_uaid. |
| 304 | 316 | |
| 305 | - ${tender_lot_delivery_locality_value_locator} = replace string ${tender_lot_delivery_locality_value_locator_tpl} %lot_id% ${lot_id} | |
| 306 | - ${return_value} = get value by locator on opened page ${tender_lot_delivery_locality_value_locator} | |
| 317 | +# ${tender_lot_delivery_locality_value_locator} = replace string ${tender_lot_delivery_locality_value_locator_tpl} %lot_id% ${lot_id} | |
| 318 | + ${return_value} = get value by locator on opened page ${tender_auctionPeriod_endDate_value_locator} | |
| 307 | 319 | [return] ${return_value} |
| 308 | 320 | |
| 309 | 321 | Отримати інформацію із лоту minimalStepPercentage |
| 310 | 322 | [Arguments] ${lot_id} |
| 311 | - [Documentation] Отримати значення поля description з лоту з lot_id в описі для тендера tender_uaid. | |
| 323 | + [Documentation] Отримати значення поля minimalStepPercentage з лоту з lot_id в описі для тендера tender_uaid. | |
| 312 | 324 | |
| 313 | - ${tender_lot_delivery_street_address_value_locator} = replace string ${tender_lot_delivery_street_address_value_locator_tpl} %lot_id% ${lot_id} | |
| 314 | - ${return_value} = get value by locator on opened page ${tender_lot_delivery_street_address_value_locator} | |
| 325 | +# ${tender_lot_delivery_street_address_value_locator} = replace string ${tender_lot_delivery_street_address_value_locator_tpl} %lot_id% ${lot_id} | |
| 326 | +# ${return_value} = get field_value by field_name on opened page ${tender_minimalStepPercentage_value_locator} | |
| 327 | + ${return_value} = get value by locator on opened page ${tender_minimalStepPercentage_value_locator} | |
| 328 | + ${return_value} = convert_string_to_float ${return_value} | |
| 315 | 329 | [return] ${return_value} |
| 316 | 330 | |
| 317 | 331 | Отримати інформацію із лоту fundingKind |
| 318 | 332 | [Arguments] ${lot_id} |
| 319 | 333 | [Documentation] Отримати значення поля featureOf з лоту з lot_id в описі для тендера tender_uaid. |
| 320 | 334 | |
| 321 | - ${tender_lot_classification_scheme_value_locator} = replace string ${tender_lot_classification_scheme_value_locator_tpl} %lot_id% ${lot_id} | |
| 322 | - ${return_value} = get value by locator on opened page ${tender_lot_classification_scheme_value_locator_tpl} | |
| 335 | +# ${tender_lot_classification_scheme_value_locator} = replace string ${tender_lot_classification_scheme_value_locator_tpl} %lot_id% ${lot_id} | |
| 336 | + ${return_value} = get value by locator on opened page ${tender_fundingKind_value_locator} | |
| 323 | 337 | [return] ${return_value} |
| 324 | 338 | |
| 325 | 339 | Отримати інформацію із лоту yearlyPaymentsPercentageRange |
| 326 | 340 | [Arguments] ${lot_id} |
| 327 | 341 | [Documentation] Отримати значення поля title з лоту з lot_id в описі для тендера tender_uaid. |
| 328 | 342 | |
| 329 | - ${tender_lot_classification_code_value_locator} = replace string ${tender_lot_classification_code_value_locator_tpl} %lot_id% ${lot_id} | |
| 330 | - ${return_value} = get value by locator on opened page ${tender_lot_classification_code_value_locator} | |
| 343 | +# ${tender_lot_classification_code_value_locator} = replace string ${tender_lot_classification_code_value_locator_tpl} %lot_id% ${lot_id} | |
| 344 | +# ${field_name} = set variable tender.${field_name}.value | |
| 345 | +# ${return_value} = get field_value by field_name on opened page ${tender_yearlyPaymentsPercentageRange_value_locator} | |
| 346 | + ${return_value} = get value by locator on opened page ${tender_yearlyPaymentsPercentageRange_value_locator} | |
| 347 | + ${return_value} = convert_string_to_float ${return_value} | |
| 348 | + [return] ${return_value} | |
| 349 | + | |
| 350 | +Отримати інформацію із документа title | |
| 351 | + [Arguments] ${doc_id} | |
| 352 | + [Documentation] Отримати значення поля title з документу з doc_id в описі для тендера tender_uaid. | |
| 353 | + | |
| 354 | +#заготовка | |
| 355 | + ${tender_new_doc_locator} = replace string ${tender_new_doc_locator_tpl} %doc_id% ${doc_id} | |
| 356 | + wait until page contains element with reloading ${tender_new_doc_locator} | |
| 357 | + | |
| 358 | + ${tender_new_doc__title_locator} = replace string ${tender_new_doc_title_locator_tpl} %doc_id% ${doc_id} | |
| 359 | + | |
| 360 | + ${return_value} = Execute Javascript return ${tender_new_doc__title_locator} | |
| 361 | + ##${return_value} = get text ${tender_new_doc_locator} | |
| 362 | + #${return_value} = get value by locator on opened page ${tender_new_doc_locator} | |
| 363 | + [return] ${return_value} | |
| 364 | + | |
| 365 | +wait for tender status | |
| 366 | + [Documentation] Очикування відповідного статусу закупівлі, в залежності від кейворда | |
| 367 | + | |
| 368 | + Run Keyword If '${TEST_NAME}' == 'Неможливість завантажити документ першим учасником після закінчення прийому пропозицій' Wait Until Keyword Succeeds 480 s 20 s Wait For EndEnquire | |
| 369 | + Run Keyword If '${TEST_NAME}' == 'Неможливість завантажити документ другим учасником після закінчення прийому пропозицій' Wait Until Keyword Succeeds 480 s 20 s Wait For EndEnquire | |
| 370 | + Run Keyword If '${TEST_NAME}' == 'Неможливість задати запитання на тендер після закінчення періоду прийому пропозицій' Wait Until Keyword Succeeds 480 s 20 s Wait For EndEnquire | |
| 371 | + #Run Keyword If '${TEST_NAME}' == 'Неможливість задати запитання на тендер після закінчення періоду уточнень' Wait Until Keyword Succeeds 480 s 20 s Wait For EndEnquire | |
| 372 | + Run Keyword If '${TEST_NAME}' == 'Можливість подати пропозицію першим учасником' Wait Until Keyword Succeeds 480 s 20 s Wait For TenderPeriod | |
| 373 | + Run Keyword If '${TEST_NAME}' == 'Можливість подати пропозицію другим учасником' Wait Until Keyword Succeeds 480 s 20 s Wait For TenderPeriod | |
| 374 | + Run Keyword If '${TEST_NAME}' == 'Відображення дати закінчення періоду блокування перед початком аукціону' Wait Until Keyword Succeeds 80 s 20 s Wait For AuctionPeriod | |
| 375 | + Run Keyword If '${TEST_NAME}' == 'Можливість підтвердити першу пропозицію кваліфікації' Wait Until Keyword Succeeds 80 s 20 s Wait For PreQualificationPeriod | |
| 376 | + Run Keyword If '${TEST_NAME}' == 'Можливість підтвердити другу пропозицію кваліфікації' Wait Until Keyword Succeeds 80 s 20 s Wait For PreQualificationPeriod | |
| 377 | + Run Keyword If '${TEST_NAME}' == 'Можливість дочекатися завершення роботи мосту' Wait Until Keyword Succeeds 6000 s 20 s Wait For CompletePeriod | |
| 378 | + #cat Run Keyword If '${TEST_NAME}' == 'Можливість дочекатися початку періоду очікування' Wait Until Keyword Succeeds 600 s 20 s Wait For PreQualificationsStandPeriod | |
| 379 | + Run Keyword If '${TEST_NAME}' == 'Можливість дочекатися початку періоду очікування' Wait Until Keyword Succeeds 600 s 20 s Wait For ActiveStage2Pending | |
| 380 | + Run Keyword If '${TEST_NAME}' == 'Можливість перевести тендер в статус очікування обробки мостом' Wait Until Keyword Succeeds 600 s 20 s Wait For ActiveStage2Waiting | |
| 381 | + Run Keyword If '${TEST_NAME}' == 'Можливість дочекатись дати закінчення прийому пропозицій' and '${SUITE NAME}' == 'Tests Files.Complaints' Wait Until Keyword Succeeds 800 s 20 s Wait For NotTenderPeriod | |
| 382 | + Run Keyword If '${TEST_NAME}' == 'Можливість дочекатись дати початку періоду кваліфікації' and '${SUITE NAME}' == 'Tests Files.Complaints' Wait Until Keyword Succeeds 800 s 20 s Wait For QualificationsStandPeriod | |
| 383 | + Run Keyword If '${TEST_NAME}' == 'Відображення статусу успішного завершення тендера' Wait Until Keyword Succeeds 6000 s 20 s Wait For CompletePeriod | |
| 384 | + | |
| 385 | +Wait For EndEnquire | |
| 386 | + [Documentation] Очикування статусу закупівлі закінчення обговорення | |
| 387 | + | |
| 388 | + Reload Page | |
| 389 | + ${return_value} = Get text ${tender_status_value_locator} | |
| 390 | + Log Many CAT ${return_value} | |
| 391 | + Page Should Not Contain Element ${tender_status_active_tendering_value_locator} | |
| 392 | + | |
| 393 | +Wait For TenderPeriod | |
| 394 | + [Documentation] Очикування статусу закупівлі початку подачи пропозицій | |
| 395 | + | |
| 396 | + Reload Page | |
| 397 | + ${return_value} = Get text ${tender_status_value_locator} | |
| 398 | + Log Many CAT ${return_value} | |
| 399 | + Page Should Contain Element ${tender_status_active_tendering_value_locator} | |
| 400 | + | |
| 401 | +Wait For AuctionPeriod | |
| 402 | + [Documentation] Очикування статусу закупівлі аукціон | |
| 403 | + | |
| 404 | + Reload Page | |
| 405 | + ${return_value} = Get text ${tender_status_value_locator} | |
| 406 | + Log Many CAT ${return_value} | |
| 407 | + Page Should Contain Element ${tender_status_active_auction_value_locator} | |
| 408 | + | |
| 409 | +Wait For PreQualificationPeriod | |
| 410 | + [Documentation] Очикування статусу закупівлі аукціон | |
| 411 | + | |
| 412 | + Reload Page | |
| 413 | + ${return_value} = Get text ${tender_status_value_locator} | |
| 414 | + Log Many CAT ${return_value} | |
| 415 | + Page Should Contain Element ${tender_status_active_pre_qualification_value_locator} | |
| 416 | + | |
| 417 | +Wait For CompletePeriod | |
| 418 | + [Documentation] Очикування статусу закупівлі завершення | |
| 419 | + | |
| 420 | + Reload Page | |
| 421 | + ${return_value} = Get text ${tender_status_value_locator} | |
| 422 | + Log Many CAT ${return_value} | |
| 423 | + Page Should Contain Element ${tender_status_complete_value_locator} | |
| 424 | + | |
| 425 | +Wait For ActiveStage2Pending | |
| 426 | + [Documentation] Очикування статусу закупівлі завершення | |
| 427 | + | |
| 428 | + Reload Page | |
| 429 | + ${return_value} = Get text ${tender_status_value_locator} | |
| 430 | + Log Many CAT ${return_value} | |
| 431 | + Page Should Contain Element ${tender_status_active_stage2_pending_value_locator} | |
| 432 | + | |
| 433 | +Wait For ActiveStage2Waiting | |
| 434 | + [Documentation] Очикування статусу закупівлі завершення | |
| 435 | + | |
| 436 | + Reload Page | |
| 437 | + ${return_value} = Get text ${tender_status_value_locator} | |
| 438 | + Log Many CAT ${return_value} | |
| 439 | + Page Should Contain Element ${tender_status_active_stage2_waiting_value_locator} | |
| 440 | + | |
| 441 | +Wait For NotTenderPeriod | |
| 442 | + [Documentation] Очикування статусу закупівлі завершення | |
| 443 | + | |
| 444 | + Reload Page | |
| 445 | + ${return_value} = Get text ${tender_status_value_locator} | |
| 446 | + Log Many CAT ${return_value} | |
| 447 | + Page Should Contain Element ${tender_status_active_tendering_value_locator} | |
| 448 | + | |
| 449 | +Wait For QualificationsStandPeriod | |
| 450 | + [Documentation] Очикування статусу закупівлі завершення кваліфікації | |
| 451 | + | |
| 452 | + Reload Page | |
| 453 | + ${return_value} = Get text ${tender_status_value_locator} | |
| 454 | + Log Many CAT ${return_value} | |
| 455 | + Page Should Contain Element ${tender_status_active_qualification_value_locator} | |
| 456 | + | |
| 457 | +Wait For QualificationsPeriodEnd | |
| 458 | + [Documentation] Очикування дати завершення кваліфікації закупівлі | |
| 459 | + | |
| 460 | + Reload Page | |
| 461 | + ${complaintPeriod} = get value by locator on opened page ${tender_qualificationPeriod_endDate_value_locator} | |
| 462 | + Log Many CAT ${complaintPeriod} | |
| 463 | + Run Keyword If '${complaintPeriod}' == '' input text to exist visible input ${contract_contractform_date_start_input_locator} ${date_start} | |
| 464 | + :FOR ${INDEX} IN RANGE 1 60 | |
| 465 | + \ Run Keyword If '${complaintPeriod}' != '' Exit For Loop | |
| 466 | + \ Reload Page | |
| 467 | + \ ${complaintPeriod} = get value by locator on opened page ${tender_qualificationPeriod_endDate_value_locator} | |
| 468 | + | |
| 469 | +Отримати інформацію із contracts[0].status | |
| 470 | + [Documentation] Отримати значення поля contracts[0].status | |
| 471 | + | |
| 472 | +# ${tmp} = get value by locator on opened page ${tender_contracts_0_status_value_locator} | |
| 473 | +# ${return_value} = Set Variable If '${tmp}' in 'Підписаний Новий' active other | |
| 474 | + Run Keyword If '${TEST_NAME}' == 'Відображення статусу підписаної угоди з постачальником переговорної процедури' Wait Until Keyword Succeeds 800 s 20 s Wait For contractactive | |
| 475 | + Run Keyword If '${TEST_NAME}' == 'Відображення статусу підписаної угоди з постачальником закупівлі' Wait Until Keyword Succeeds 800 s 20 s Wait For contractactive | |
| 476 | + ${return_value} = get value by locator on opened page ${tender_contracts_0_status_value_locator} | |
| 477 | + [return] ${return_value} | |
| 478 | + | |
| 479 | +Wait For contractactive | |
| 480 | + [Documentation] Очикування статусу закупівлі початку подачи пропозицій | |
| 481 | + | |
| 482 | + Reload Page | |
| 483 | + ${return_value} = get value by locator on opened page ${tender_contracts_0_status_value_locator} | |
| 484 | + Page Should Contain Element ${tender_contracts_status_active_value_locator} | |
| 485 | + | |
| 486 | +Отримати інформацію із awards.complaintPeriod.endDate | |
| 487 | + [Documentation] Отримати значення поля awards.complaintPeriod.endDate | |
| 488 | + | |
| 489 | +# run keyword and ignore error run keyword if '${mode}' in 'belowThreshold below_funders' Wait Until Keyword Succeeds 600 s 30 s Wait For complaintPeriodendDate | |
| 490 | + run keyword and ignore error Wait Until Keyword Succeeds 600 s 30 s Wait For complaintPeriodendDate | |
| 491 | +# run keyword and ignore error click visible element ${contract_form_0_open_btn_locator} | |
| 492 | +# wait until element is visible ${tender_awards_complaintPeriod_endDate_value_locator} 60 | |
| 493 | + ${return_value} = run keyword if '${mode}' in 'negotiation' get value by locator on opened page ${tender_awards_negotiation_complaintPeriod_endDate_value_locator} | |
| 494 | + ... ELSE get value by locator on opened page ${tender_awards_complaintPeriod_endDate_value_locator} | |
| 495 | +# ${return_value} = parse_complaintPeriod_date ${return_value} | |
| 496 | + [return] ${return_value} | |
| 497 | + | |
| 498 | +Wait For complaintPeriodendDate | |
| 499 | + [Documentation] Очикування появи дати завершення подачи скарг на кваліфікацію закупівлі в belowThreshold та below_funders | |
| 500 | + | |
| 501 | + reload page | |
| 502 | + ${complaintPeriod} = run keyword and ignore error get value by locator on opened page ${tender_awards_complaintPeriod_endDate_value_locator} | |
| 503 | + :FOR ${INDEX} IN RANGE 1 60 | |
| 504 | + \ Run Keyword If '${complaintPeriod}' != '' Exit For Loop | |
| 505 | + \ Reload Page | |
| 506 | + \ ${complaintPeriod} = get value by locator on opened page ${tender_awards_complaintPeriod_endDate_value_locator} | |
| 507 | + | |
| 508 | +Отримати інформацію із minimalStep.amount | |
| 509 | + [Documentation] Отримати значення поля minimalStep.amount для тендера tender_uaid. | |
| 510 | + | |
| 511 | +# ${tender_lot_minimal_step_amount_value_locator} = replace string ${tender_lot_minimal_step_amount_value_locator_tpl} %lot_id% ${lot_id} | |
| 512 | + ${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} | |
| 513 | + ... ELSE get value by locator on opened page ${tender_minimalStep_amount_value_locator} ${tender_lot_minimal_step_amount_value_type} | |
| 331 | 514 | [return] ${return_value} |
| 332 | 515 | |
| 516 | +Отримати інформацію із awards[0].documents[0].title | |
| 517 | + [Documentation] Отримати значення поля minimalStep.amount для тендера tender_uaid. | |
| 518 | + | |
| 519 | +# ${tender_lot_minimal_step_amount_value_locator} = replace string ${tender_lot_minimal_step_amount_value_locator_tpl} %lot_id% ${lot_id} | |
| 520 | + click visible element ${tender_awards_negotiation_documents_btn_locator} | |
| 521 | + ${return_value} = get value by locator on opened page ${tender_awards_0_documents_0_title_value_locator} | |
| 522 | + click visible element ${tender_awards_negotiation_documents_close_btn_locator} | |
| 523 | + [return] ${return_value} | |
| 524 | + | |
| 525 | +Wait For stage2button | |
| 526 | + [Documentation] Очикування кнопки переводу до другого етапу | |
| 527 | + | |
| 528 | + Reload Page | |
| 529 | + Page Should Contain Element ${tender_stage2_open_btn_locator} | |
| 530 | + | |
| 531 | +Отримати інформацію із qualificationPeriod.endDate | |
| 532 | + [Documentation] Отримати значення поля qualificationPeriod.endDate | |
| 533 | + | |
| 534 | +# run keyword and ignore error run keyword if '${mode}' in 'belowThreshold below_funders' Wait Until Keyword Succeeds 600 s 30 s Wait For complaintPeriodendDate | |
| 535 | +# run keyword and ignore error Wait Until Keyword Succeeds 600 s 30 s Wait For complaintPeriodendDate | |
| 536 | + ${return_value} = get value by locator on opened page ${tender_qualificationPeriod_endDate_value_locator} | |
| 537 | + ${return_value} = parse_complaintPeriod_date ${return_value} | |
| 538 | + [return] ${return_value} | |
| 539 | + | |
| 540 | + | |
| 541 | + | ... | ... |
| ... | ... | @@ -4,9 +4,13 @@ |
| 4 | 4 | ${tender_features_title_value_locator_tpl} = jquery=#lots .tabs__pane--visible .feature-list-wrapper [data-title*="%feature_id%"] .hidden.info-wrapper .title |
| 5 | 5 | ${tender_features_description_value_locator_tpl} = jquery=#lots .tabs__pane--visible .feature-list-wrapper [data-title*="%feature_id%"] .hidden.info-wrapper .description |
| 6 | 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 | + | |
| 7 | 9 | |
| 8 | 10 | #item view |
| 11 | +${tender_items_new_value_locator_tpl} = jquery=.item-item-wrapper[data-title*="%item_id%"] | |
| 9 | 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 | |
| 10 | 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 |
| 11 | 15 | ${tender_items_quantity_value_type} = float |
| 12 | 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 |
| ... | ... | @@ -69,3 +73,102 @@ ${tender_lot_item_delivery_end_date_value_locator} = jquery=.tabs |
| 69 | 73 | ${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 |
| 70 | 74 | ${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 |
| 71 | 75 | |
| 76 | +#lots | |
| 77 | +${tender_lots_title_value_locator_tpl} = jquery=#lots .tabs__content .tabs__pane--visible > span div.textvalue:first | |
| 78 | +${tender_lots_description_value_locator_tpl} = jquery=#lots .tabs__content .tabs__pane--visible > span div.textvalue.hidden | |
| 79 | +${tender_lots_value_amount_value_locator_tpl} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden | |
| 80 | +${tender_lots_value_amount_value_type} = float | |
| 81 | +${tender_lots_value_currency_value_locator_tpl} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden | |
| 82 | +${tender_lots_value_value_added_tax_included_value_locator_tpl} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden | |
| 83 | +${tender_lots_minimal_step_amount_value_locator_tpl} = jquery=#lots .tabs__content .tabs__pane--visible .minimal-step-source.hidden | |
| 84 | +${tender_lots_minimal_step_amount_value_type} = float | |
| 85 | +${tender_lots_minimal_step_amount_currency_value_locator_tpl} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden | |
| 86 | +${tender_lots_minimal_step_amount_value_added_tax_included_value_locator_tpl} = jquery=#lots .tabs__content .tabs__pane--visible .budget-source.hidden | |
| 87 | + | |
| 88 | +#docs and auction | |
| 89 | +${tender_new_doc_locator_tpl} = jquery=.docs__list .docs__item.js-item .doc__title:contains("%doc_id%") | |
| 90 | +${tender_new_doc_title_locator_tpl} = $('.docs__list .docs__item.js-item:contains("%doc_id%")').attr("data-title") | |
| 91 | +#${tender_new_doc_locator_tpl} = jquery=.docs__list .docs__item.js-item:first .doc__title:contains("%doc_id%") | |
| 92 | +${tender_auction_locator} = jquery=#auction-info | |
| 93 | +${tender_auction_input_locator} = $('#auction-info a[href*="https://auction-sandbox"]').attr("href") | |
| 94 | +${tender_auction_belowThreshold_locator} = jquery=#aside-part-pjax a[href*="https://auction-sandbox"] | |
| 95 | +${tender_auction_belowThreshold_input_locator} = jquery=#aside-part-pjax a[href*="https://auction-sandbox"] | |
| 96 | +${tender_auction_belowThreshold_value_locator} = $('#aside-part-pjax a[href*="https://auction-sandbox"]').attr("href") | |
| 97 | +${tender_auctionPeriod_startDate_value_locator} = jquery=#tender-general-info .auction-start-date.hidden | |
| 98 | +${tender_auctionPeriod_endDate_value_locator} = jquery=#tender-general-info .auction-end-date.hidden | |
| 99 | +${tender_lots_0_auctionPeriod_endDate_value_locator} = jquery=#tender-general-info .auction-end-date.hidden | |
| 100 | + | |
| 101 | + | |
| 102 | +#wait for status | |
| 103 | +${tender_status_active_tendering_value_locator} = xpath=//*[contains(text(), "active.tendering")] | |
| 104 | +${tender_status_active_auction_value_locator} = xpath=//*[contains(text(), "active.auction")] | |
| 105 | +${tender_status_active_pre_qualification_value_locator} = xpath=//*[contains(text(), "active.pre-qualification")] | |
| 106 | +${tender_status_complete_value_locator} = xpath=//*[contains(text(), "complete")] | |
| 107 | +${tender_status_active_stage2_pending_value_locator} = xpath=//*[contains(text(), "active.stage2.pending")] | |
| 108 | +${tender_status_active_stage2_waiting_value_locator} = xpath=//*[contains(text(), "active.stage2.waiting")] | |
| 109 | +${tender_status_active_complete_value_locator} = xpath=//*[contains(text(), "active.complete")] | |
| 110 | +${tender_status_active_qualification_value_locator} = xpath=//*[contains(text(), "active.qualification")] | |
| 111 | + | |
| 112 | +#funders | |
| 113 | +${tender_funders_0_name_value_locator} = jquery=#tender-general-info .funder-organization .value .popup__inner .definitions__list .organization_name.hidden .definitions__value | |
| 114 | +${tender_funders_0_address_countryName_value_locator} = jquery=#tender-general-info .funder-organization .value .popup__inner .definitions__list .country.hidden .definitions__value | |
| 115 | +${tender_funders_0_address_locality_value_locator} = jquery=#tender-general-info .funder-organization .value .popup__inner .definitions__list .locality.hidden .definitions__value | |
| 116 | +${tender_funders_0_address_postalCode_value_locator} = jquery=#tender-general-info .funder-organization .value .popup__inner .definitions__list .postcode.hidden .definitions__value | |
| 117 | +${tender_funders_0_address_region_value_locator} = jquery=#tender-general-info .funder-organization .value .popup__inner .definitions__list .region.hidden .definitions__value | |
| 118 | +${tender_funders_0_address_streetAddress_value_locator} = jquery=#tender-general-info .funder-organization .value .popup__inner .definitions__list .street-address.hidden .definitions__value | |
| 119 | +${tender_funders_0_identifier_id_value_locator} = jquery=#tender-general-info .funder-organization .value .popup__inner .definitions__list .identifier_id .definitions__value | |
| 120 | +${tender_funders_0_identifier_legalName_value_locator} = jquery=#tender-general-info .funder-organization .value .popup__inner .definitions__list .identifier_legal_name.hidden .definitions__value | |
| 121 | +${tender_funders_0_identifier_scheme_value_locator} = jquery=#tender-general-info .funder-organization .value .popup__inner .definitions__list .identifier_scheme.hidden .definitions__value | |
| 122 | + | |
| 123 | +#negotiation | |
| 124 | +${tender_procuringEntity_contactPoint_name_value_locator} = jquery=#tender-general-info .organization .value .popup__inner .definitions__list .contact-point-name.hidden .definitions__value | |
| 125 | +${tender_procuringEntity_contactPoint_telephone_value_locator} = jquery=#tender-general-info .organization .value .popup__inner .definitions__list .contact-point-phone.hidden .definitions__value | |
| 126 | +${tender_procuringEntity_identifier_legalName_value_locator} = jquery=#tender-general-info .organization .value .popup__inner .definitions__list .identifier_legal_name.hidden .definitions__value | |
| 127 | +${tender_procuringEntity_identifier_scheme_value_locator} = jquery=#tender-general-info .organization .value .popup__inner .definitions__list .identifier_scheme.hidden .definitions__value | |
| 128 | + | |
| 129 | +${tender_awards_0_suppliers_0_contactPoint_telephone_value_locator} = jquery=#bids-pjax .hint__popup_organization_info .definitions__list .contact-point-phone.hidden .definitions__value | |
| 130 | +${tender_awards_0_suppliers_0_contactPoint_name_value_locator} = jquery=#bids-pjax .hint__popup_organization_info .definitions__list .contact-point-name.hidden .definitions__value | |
| 131 | +${tender_awards_0_suppliers_0_contactPoint_email_value_locator} = jquery=#bids-pjax .hint__popup_organization_info .definitions__list .contact-point-email.hidden .definitions__value | |
| 132 | +${tender_awards_0_suppliers_0_identifier_scheme_value_locator} = jquery=#bids-pjax .hint__popup_organization_info .definitions__list .identifier_scheme.hidden .definitions__value | |
| 133 | +${tender_awards_0_suppliers_0_identifier_legalName_value_locator} = jquery=#bids-pjax .hint__popup_organization_info .definitions__list .identifier_legal_name.hidden .definitions__value | |
| 134 | +${tender_awards_0_suppliers_0_address_countryName_value_locator} = jquery=#bids-pjax .hint__popup_organization_info .definitions__list .country.hidden .definitions__value | |
| 135 | +${tender_awards_0_suppliers_0_address_locality_value_locator} = jquery=#bids-pjax .hint__popup_organization_info .definitions__list .locacity.hidden .definitions__value | |
| 136 | +${tender_awards_0_suppliers_0_address_postalCode_value_locator} = jquery=#tender-general-info .organization .value .popup__inner .definitions__list .postcode.hidden .definitions__value | |
| 137 | +${tender_awards_0_suppliers_0_address_region_value_locator} = jquery=#tender-general-info .organization .value .popup__inner .definitions__list .region.hidden .definitions__value | |
| 138 | +${tender_awards_0_suppliers_0_address_streetAddress_value_locator} = jquery=#tender-general-info .organization .value .popup__inner .definitions__list .street-address.hidden .definitions__value | |
| 139 | + | |
| 140 | +#esco | |
| 141 | +${tender_NBUdiscountRate_value_locator} = jquery=#tender-general-info .nbu-discount-rate-source.hidden | |
| 142 | +${tender_NBUdiscountRate_value_type} = float | |
| 143 | +${tender_minimalStepPercentage_value_locator} = jquery=#tender-general-info .minimal-step-percentage-source.hidden | |
| 144 | +${tender_minimalStepPercentage_value_type} = float | |
| 145 | +${tender_fundingKind_value_locator} = jquery=#tender-general-info .funding-kind-source.hidden | |
| 146 | +${tender_yearlyPaymentsPercentageRange_value_locator} = jquery=#tender-general-info .yearly-payments-percentage-range-source.hidden | |
| 147 | +${tender_yearlyPaymentsPercentageRange_value_type} = float | |
| 148 | +${tender_lots_0_minimalStepPercentage_value_locator} = jquery=#tender-general-info .minimal-step-percentage-source.hidden | |
| 149 | +${tender_lots_0_minimalStepPercentage_value_type} = float | |
| 150 | +${tender_lots_0_yearlyPaymentsPercentageRange_value_locator} = jquery=#tender-general-info .yearly-payments-percentage-range-source.hidden | |
| 151 | +${tender_lots_0_yearlyPaymentsPercentageRange_value_type} = float | |
| 152 | + | |
| 153 | +#awards | |
| 154 | +${tender_awards_0_complaintPeriod_endDate_value_locator} = jquery=#tender-general-info .complaint-period .value .end-date | |
| 155 | +${tender_awards_1_complaintPeriod_endDate_value_locator} = jquery=#tender-general-info .complaint-period .value .end-date | |
| 156 | +${tender_awards_complaintPeriod_endDate_value_locator} = jquery=.award-info-wrapper.hidden .complaint-period-end-date | |
| 157 | +${tender_awards_negotiation_complaintPeriod_endDate_value_locator} = jquery=#bids-pjax .pseudo-table__cell .end-date | |
| 158 | +#${tender_awards_complaintPeriod_endDate_value_locator} = jquery=#tender-contract-form .js-award-complaint-period-wrapper .end-date | |
| 159 | +${tender_awards_negotiation_documents_btn_locator} = jquery=[href*="/tender/view-qualification-result-documents?award"] | |
| 160 | +${tender_awards_negotiation_documents_close_btn_locator} = jquery=.modal.fade.fancybox-content .modal-footer .btn.btn-default | |
| 161 | +${tender_awards_0_documents_0_title_value_locator} = jquery=.doc__table_title a[href*="https://public-docs-sandbox.prozorro.gov.ua"] | |
| 162 | +${tender_awards_0_status_value_locator} = jquery=.award-info-wrapper.hidden .status-source | |
| 163 | + | |
| 164 | +#status contract | |
| 165 | +#${tender_contracts_0_status_value_locator} = jquery=#contracts-pjax .tabs__pane--visible .definitions__item--offset-big .badge__text | |
| 166 | +${tender_contracts_0_status_value_locator} = jquery=#contracts-pjax .tabs__pane--visible .status-source.hidden | |
| 167 | +${tender_contracts_status_active_value_locator} = jquery=#contracts-pjax .tabs__pane--visible .status-source.hidden:contains(active) | |
| 168 | + | |
| 169 | +${wait_msg_contract} = Завантаження контракту буде | |
| 170 | + | |
| 171 | +#framework_agreement | |
| 172 | +${tender_maxAwardsCount_value_locator} = jquery=#tender-general-info .max-award-count.hidden | |
| 173 | +${tender_agreementDuration_value_locator} = jquery=#tender-general-info .agreement-duration | |
| 174 | +${tender_agreements_0_status_value_locator} = jquery=#agreement-contracts-list .agreement-info-wrapper .status-source.hidden | ... | ... |
Please
register
or
login
to post a comment