|
...
|
...
|
@@ -19,14 +19,29 @@ fill tender form |
|
19
|
19
|
[Arguments] ${data}
|
|
20
|
20
|
[Documentation] заповнення форми з масива даних
|
|
21
|
21
|
|
|
22
|
|
- # hidden inputs
|
|
23
|
|
- Log Many ${data}
|
|
|
22
|
+ fill tender general info
|
|
|
23
|
+ ${features} = get from dictionary by keys ${data} features
|
|
|
24
|
+ run keyword if condition is not none ${features} fill tender form features ${features} ${tender_form_general_panel_add_feature_btn_locator}
|
|
|
25
|
+ ${items} = get from dictionary by keys ${data} items
|
|
|
26
|
+ run keyword if condition is not none ${items} fill tender form items ${items}
|
|
|
27
|
+ ${milestones} = get from dictionary by keys ${data} milestones
|
|
|
28
|
+ run keyword if condition is not none ${milestones} fill tender form milestones ${milestones}
|
|
|
29
|
+ ${lots} = get from dictionary by keys ${data} lots
|
|
|
30
|
+ run keyword if condition is not none ${lots} fill tender form lots ${lots}
|
|
|
31
|
+ fill tender required documents
|
|
|
32
|
+
|
|
|
33
|
+fill tender general info
|
|
|
34
|
+ [Arguments] ${data}
|
|
|
35
|
+ [Documentation] обирає потрібний тип закупівлі, чекає оновлення форми, вказує мультилотовість, заповнює
|
|
|
36
|
+ ... приховані поля + відкриває попап основних даних, заповнює його і закриває
|
|
24
|
37
|
|
|
25
|
|
- # general info
|
|
26
|
38
|
${procurement_method_type} = get from dictionary by keys ${data} procurementMethodType
|
|
27
|
39
|
run keyword if condition is not none ${procurement_method_type} select from visible list by value ${tender_form_procurement_method_type_input_locator} ${procurement_method_type}
|
|
|
40
|
+ # @todo дочекатися поки завантажиться форма
|
|
|
41
|
+
|
|
28
|
42
|
${lots} = get from dictionary by keys ${data} lots
|
|
29
|
43
|
run keyword if condition is not none ${lots} Run Keyword And Ignore Error Click Element ${tender_multilot_locator}
|
|
|
44
|
+
|
|
30
|
45
|
open popup by btn locator ${plan_form_general_panel_edit_btn_locator}
|
|
31
|
46
|
${title} = get from dictionary by keys ${data} title
|
|
32
|
47
|
run keyword if condition is not none ${title} input text to visible input ${tender_form_general_tender_title_locator} ${title}
|
|
...
|
...
|
@@ -49,12 +64,9 @@ fill tender form |
|
49
|
64
|
run keyword if condition is not none ${min_step_amount} input number to exist visible input ${tender_form_general_minimalStep_amount_input_locator} ${min_step_amount}
|
|
50
|
65
|
${mainProcurementCategory} = get from dictionary by keys ${data} mainProcurementCategory
|
|
51
|
66
|
run keyword if condition is not none ${mainProcurementCategory} select from visible list by value ${tender_form_general_main_procurement_category_input_locator} ${mainProcurementCategory}
|
|
52
|
|
- Capture Page Screenshot
|
|
53
|
|
-
|
|
54
|
67
|
${tender_enquiry_period_start_date} = get from dictionary by keys ${data} enquiryPeriod startDate
|
|
55
|
68
|
# run keyword if condition is not none ${tender_enquiry_period_start_date} select from visible list by year of date ${tender_enquiry_period_start_date_input_locator} ${tender_enquiry_period_start_date}
|
|
56
|
69
|
run keyword if condition is not none ${tender_enquiry_period_start_date} input datetime to visible input ${tender_enquiry_period_start_date_input_locator} ${tender_enquiry_period_start_date}
|
|
57
|
|
- Capture Page Screenshot
|
|
58
|
70
|
${tender_enquiry_period_end_date} = get from dictionary by keys ${data} enquiryPeriod endDate
|
|
59
|
71
|
# run keyword if condition is not none ${tender_enquiry_period_start_date} select from visible list by year of date ${tender_enquiry_period_start_date_input_locator} ${tender_enquiry_period_start_date}
|
|
60
|
72
|
run keyword if condition is not none ${tender_enquiry_period_end_date} input datetime to visible input ${tender_enquiry_period_end_date_input_locator} ${tender_enquiry_period_end_date}
|
|
...
|
...
|
@@ -62,8 +74,7 @@ fill tender form |
|
62
|
74
|
run keyword if condition is not none ${tender_start_date} run keyword and ignore error input datetime to visible input ${tender_tender_period_start_date_input_locator} ${tender_start_date}
|
|
63
|
75
|
${tender_end_date} = get from dictionary by keys ${data} tenderPeriod endDate
|
|
64
|
76
|
run keyword if condition is not none ${tender_end_date} input datetime to visible input ${tender_tender_period_end_date_input_locator} ${tender_end_date}
|
|
65
|
|
- click element ${tender_tender_quick_mode_locator}
|
|
66
|
|
-
|
|
|
77
|
+ click element ${tender_tender_quick_mode_locator}
|
|
67
|
78
|
${classification} = get from dictionary by keys ${data} classification
|
|
68
|
79
|
run keyword if condition is not none ${classification} select classification by code attributes ${plan_form_classification_edit_btn_locator} ${classification}
|
|
69
|
80
|
${additional_classifications} = get from dictionary by keys ${data} additionalClassifications
|
|
...
|
...
|
@@ -71,23 +82,6 @@ fill tender form |
|
71
|
82
|
run keyword if condition is not none ${additional_classifications} select classification by array of code attributes ${plan_form_kekv_classification_edit_btn_locator} ${additional_classifications} ${kekv_schemes}
|
|
72
|
83
|
submit current visible popup
|
|
73
|
84
|
|
|
74
|
|
- # features
|
|
75
|
|
- ${features} = get from dictionary by keys ${data} features
|
|
76
|
|
- run keyword if condition is not none ${features} fill tender form features ${features} ${tender_form_general_panel_add_feature_btn_locator}
|
|
77
|
|
-
|
|
78
|
|
- # items
|
|
79
|
|
- ${items} = get from dictionary by keys ${data} items
|
|
80
|
|
- run keyword if condition is not none ${items} fill tender form items ${items}
|
|
81
|
|
-
|
|
82
|
|
- # milestones
|
|
83
|
|
- ${milestones} = get from dictionary by keys ${data} milestones
|
|
84
|
|
- run keyword if condition is not none ${milestones} fill tender form milestones ${milestones}
|
|
85
|
|
- Створити FakeDocs
|
|
86
|
|
-
|
|
87
|
|
- #lots
|
|
88
|
|
- ${lots} = get from dictionary by keys ${data} lots
|
|
89
|
|
- run keyword if condition is not none ${lots} fill tender form lots ${lots}
|
|
90
|
|
-
|
|
91
|
85
|
fill tender form items
|
|
92
|
86
|
[Arguments] ${item_attributes_array}
|
|
93
|
87
|
[Documentation] заповнення номенклатури тендеру
|
|
...
|
...
|
@@ -95,33 +89,98 @@ fill tender form items |
|
95
|
89
|
:FOR ${item_attributes} IN @{item_attributes_array}
|
|
96
|
90
|
\ click visible element ${tender_form_item_add_edit_btn_locator}
|
|
97
|
91
|
\ wait until popup is visible
|
|
98
|
|
- \ fill item form in opened popup ${item_attributes}
|
|
99
|
|
-# \ fill item for tender form in opened popup ${item_attributes}
|
|
100
|
|
- \ run keyword and ignore error submit current visible popup
|
|
|
92
|
+ \ fill tender item form in opened popup ${item_attributes}
|
|
|
93
|
+ \ submit current visible popup
|
|
|
94
|
+ \ ${features} = get from dictionary by keys ${item_attributes} features
|
|
|
95
|
+ \ run keyword if condition is not none ${features} fill tender form features ${features} ${tender_form_item_panel_add_feature_btn_locator}
|
|
|
96
|
+
|
|
|
97
|
+fill tender item form in opened popup
|
|
|
98
|
+ [Arguments] ${data}
|
|
|
99
|
+ [Documentation] заповнює відкриту форму згідно вказаних даних
|
|
|
100
|
+
|
|
|
101
|
+ fill item form in opened popup ${data}
|
|
|
102
|
+
|
|
|
103
|
+ ${region} = get from dictionary by keys ${data} deliveryAddress region
|
|
|
104
|
+ run keyword if condition is not none ${region} select from visible list by label ${item_form_popup_delivery_region_id_input_locator} ${region}
|
|
|
105
|
+ ${postal_code} = get from dictionary by keys ${data} deliveryAddress postalCode
|
|
|
106
|
+ run keyword if condition is not none ${postal_code} input text to visible input ${item_form_popup_delivery_postal_code_input_locator} ${postal_code}
|
|
|
107
|
+ ${locality} = get from dictionary by keys ${data} deliveryAddress locality
|
|
|
108
|
+ run keyword if condition is not none ${locality} input text to visible input ${item_form_popup_delivery_locality_input_locator} ${locality}
|
|
|
109
|
+ ${street_address} = get from dictionary by keys ${data} deliveryAddress streetAddress
|
|
|
110
|
+ run keyword if condition is not none ${street_address} input text to visible input ${item_form_popup_delivery_street_address_input_locator} ${street_address}
|
|
|
111
|
+ ${delivery_start_date} = get from dictionary by keys ${data} deliveryDate startDate
|
|
|
112
|
+ run keyword if condition is not none ${delivery_start_date} run keyword and ignore error input datetime to exist visible input ${item_form_popup_delivery_start_date_input_locator} ${delivery_start_date}
|
|
|
113
|
+ ${delivery_end_date} = get from dictionary by keys ${data} deliveryDate endDate
|
|
|
114
|
+ run keyword if condition is not none ${delivery_end_date} run keyword and ignore error input datetime to exist visible input ${item_form_popup_delivery_end_date_input_locator} ${delivery_end_date}
|
|
101
|
115
|
|
|
102
|
116
|
fill tender form milestones
|
|
103
|
117
|
[Arguments] ${milestone_attributes_array}
|
|
104
|
118
|
[Documentation] заповнення умов оплати тендеру
|
|
105
|
119
|
|
|
106
|
|
- Log Many ${milestone_attributes_array}
|
|
|
120
|
+ click visible element ${tender_form_milestones_panel_edit_btn_locator}
|
|
|
121
|
+ wait until popup is visible
|
|
107
|
122
|
:FOR ${milestone_attributes} IN @{milestone_attributes_array}
|
|
108
|
|
-# \ click visible element ${button_selector}
|
|
109
|
|
- \ click visible element ${tender_form_milestones_panel_edit_btn_locator}
|
|
110
|
|
- \ capture page screenshot
|
|
111
|
|
- \ wait until popup is visible
|
|
|
123
|
+ \ click visible element ${tender_form_milestones_add_btn_locator}
|
|
|
124
|
+ \ # @todo чекати поки форма не з'явиться
|
|
112
|
125
|
\ fill milestone form in opened popup ${milestone_attributes}
|
|
113
|
|
- \ submit current visible popup
|
|
|
126
|
+ submit current visible popup
|
|
|
127
|
+
|
|
|
128
|
+fill milestone form in opened popup
|
|
|
129
|
+ [Arguments] ${data}
|
|
|
130
|
+ [Documentation] заповнює відкриту форму в активній вкладці згідно вказаних даних
|
|
|
131
|
+
|
|
|
132
|
+ # @todo переписати всі локатори з прив'язкою до попапа + форми milestone, зробити як в fill item form in opened popup
|
|
|
133
|
+ ${title} = get from dictionary by keys ${data} title
|
|
|
134
|
+ run keyword if condition is not none ${title} select from visible list by value ${tender_form_milestones_title_locator} ${title}
|
|
|
135
|
+ ${description} = get from dictionary by keys ${data} description
|
|
|
136
|
+ run keyword if condition is not none ${description} input text to exist visible input ${tender_form_milestones_description_locator} ${description}
|
|
|
137
|
+ ${percentage} = get from dictionary by keys ${data} percentage
|
|
|
138
|
+ run keyword if condition is not none ${percentage} input text to exist visible input ${tender_form_milestones_percentage_locator} ${percentage}
|
|
|
139
|
+ ${code} = get from dictionary by keys ${data} code
|
|
|
140
|
+ run keyword if condition is not none ${code} select from visible list by value ${tender_form_milestones_code_locator} ${code}
|
|
|
141
|
+ ${duration_days} = get from dictionary by keys ${data} duration days
|
|
|
142
|
+ run keyword if condition is not none ${duration_days} input text to exist visible input ${tender_form_milestones_duration_days_locator} ${duration_days}
|
|
|
143
|
+ ${duration_type} = get from dictionary by keys ${data} duration type
|
|
114
|
144
|
|
|
115
|
145
|
fill tender form features
|
|
116
|
|
- [Arguments] ${feature_attributes_array} ${button_add}
|
|
|
146
|
+ [Arguments] ${feature_attributes_array} ${add_btn_locator}
|
|
117
|
147
|
[Documentation] заповнення нецінові крітерії тендеру
|
|
118
|
148
|
|
|
|
149
|
+ click visible element ${add_btn_locator}
|
|
|
150
|
+ wait until popup is visible
|
|
119
|
151
|
:FOR ${feature_attributes} IN @{feature_attributes_array}
|
|
120
|
|
- \ click visible element ${button_add}
|
|
121
|
|
- #${tender_form_features_panel_edit_btn_locator}
|
|
122
|
|
- \ wait until popup is visible
|
|
|
152
|
+ \ click visible element ${tender_form_features_panel_edit_btn_locator}
|
|
|
153
|
+ \ # @todo чекати поки форма не з'явиться
|
|
123
|
154
|
\ fill feature form in opened popup ${feature_attributes}
|
|
124
|
|
- \ submit current visible popup
|
|
|
155
|
+ submit current visible popup
|
|
|
156
|
+
|
|
|
157
|
+fill feature form in opened popup
|
|
|
158
|
+ [Arguments] ${data}
|
|
|
159
|
+ [Documentation] заповнює відкриту форму в активній вкладці згідно вказаних даних
|
|
|
160
|
+
|
|
|
161
|
+ # @todo переписати локатори для прив'язки чисто поточний попап + НК форм. краще у відкритій формі НК видалити відкру форму Опції і
|
|
|
162
|
+ # тоді к циклі додавати опції, візьми підчисть код бо купа коментарів і тяжко розбиратися, можеш додавання опції в окремий кейворд винести
|
|
|
163
|
+ ${title} = get from dictionary by keys ${data} title
|
|
|
164
|
+ run keyword if condition is not none ${title} input text to exist visible input ${tender_form_features_title_locator} ${title}
|
|
|
165
|
+ ${description} = get from dictionary by keys ${data} description
|
|
|
166
|
+ run keyword if condition is not none ${description} input text to exist visible input ${tender_form_features_description_locator} ${description}
|
|
|
167
|
+ ${options} = Get From Dictionary ${data} enum
|
|
|
168
|
+ ${count} = Get Length ${options}
|
|
|
169
|
+ ${ex}= Evaluate ${count} - 1
|
|
|
170
|
+ : FOR ${INDEX} IN RANGE 0 ${count}
|
|
|
171
|
+ \ run keyword if condition is not none ${options[${INDEX}].title} input text to exist visible input ${tender_form_features_enum_title_locator} ${options[${INDEX}].title}
|
|
|
172
|
+ \ Capture Page Screenshot
|
|
|
173
|
+# \ ${description} = get from dictionary by keys ${data} description
|
|
|
174
|
+# \ run keyword if condition is not none ${description} input text to exist visible input ${tender_form_features_description_locator} ${description}
|
|
|
175
|
+ \ Capture Page Screenshot
|
|
|
176
|
+ \ ${value} = convert_float_to_string ${options[${INDEX}].value}
|
|
|
177
|
+ \ ${value} = Convert To Number ${value}
|
|
|
178
|
+ \ ${value} = multiply_hundred ${value}
|
|
|
179
|
+ \ ${value} = convert_float_to_string ${value}
|
|
|
180
|
+ \ run keyword if condition is not none ${options[${INDEX}].value} input text to exist visible input ${tender_form_features_enum_value_locator} ${value}
|
|
|
181
|
+ \ Capture Page Screenshot
|
|
|
182
|
+ \ Continue For Loop If '${INDEX}' == '${ex}'
|
|
|
183
|
+ \ Run Keyword If ${count} != 1 click visible element ${tender_form_features_add-enums_locator}
|
|
125
|
184
|
|
|
126
|
185
|
fill tender form lots
|
|
127
|
186
|
[Arguments] ${lot_attributes_array}
|
|
...
|
...
|
@@ -130,5 +189,46 @@ fill tender form lots |
|
130
|
189
|
:FOR ${lot_attributes} IN @{lot_attributes_array}
|
|
131
|
190
|
\ click visible element ${tender_form_lots_panel_edit_btn_locator}
|
|
132
|
191
|
\ wait until popup is visible
|
|
133
|
|
- \ fill lot form in opened popup ${lot_attributes}
|
|
134
|
|
- \ run keyword and ignore error submit current visible popup |
|
|
192
|
+ \ fill lot form in opened popup ${lot_attributes}
|
|
|
193
|
+ \ submit current visible popup
|
|
|
194
|
+ \ ${features} = get from dictionary by keys ${data} features
|
|
|
195
|
+ \ run keyword if condition is not none ${features} fill tender form features ${features} ${tender_form_lot_panel_add_feature_btn_locator}
|
|
|
196
|
+ \ ${milestones} = get from dictionary by keys ${data} milestones
|
|
|
197
|
+ \ run keyword if condition is not none ${milestones} fill tender form milestones ${milestones}
|
|
|
198
|
+ \ ${items} = get from dictionary by keys ${data} items
|
|
|
199
|
+ \ run keyword if condition is not none ${items} fill tender form items ${items}
|
|
|
200
|
+
|
|
|
201
|
+fill lot form in opened popup
|
|
|
202
|
+ [Arguments] ${data}
|
|
|
203
|
+ [Documentation] заповнює відкриту форму згідно вказаних даних
|
|
|
204
|
+
|
|
|
205
|
+ # @todo переписати локатори для прив'язки чисто поточний попап + лот форм
|
|
|
206
|
+ ${title} = get from dictionary by keys ${data} title
|
|
|
207
|
+ run keyword if condition is not none ${title} input text to visible input ${tender_form_lots_title_locator} ${title}
|
|
|
208
|
+ ${title_en} = get from dictionary by keys ${data} title_en
|
|
|
209
|
+ run keyword if condition is not none ${title_en} input text to exist visible input ${tender_form_lots_title_en_locator} ${title_en}
|
|
|
210
|
+ ${description} = get from dictionary by keys ${data} description
|
|
|
211
|
+ run keyword if condition is not none ${description} input text to visible input ${tender_form_lots_description_locator} ${description}
|
|
|
212
|
+ ${description_en} = get from dictionary by keys ${data} description_en
|
|
|
213
|
+ run keyword if condition is not none ${description_en} input text to exist visible input ${tender_form_lots_description_locator} ${description_en}
|
|
|
214
|
+ capture page screenshot
|
|
|
215
|
+ ${description_ru} = get from dictionary by keys ${data} description_ru
|
|
|
216
|
+ run keyword if condition is not none ${description_ru} input text to exist visible input ${item_form_popup_description_ru_input_locator} ${description_ru}
|
|
|
217
|
+ ${amount} = get from dictionary by keys ${data} value amount
|
|
|
218
|
+ run keyword if condition is not none ${amount} input number to exist visible input ${tender_form_lots_value_amount_input_locator} ${amount}
|
|
|
219
|
+ submit current visible popup
|
|
|
220
|
+# ${currency} = get from dictionary by keys ${data} value currency
|
|
|
221
|
+# run keyword if condition is not none ${currency} select from visible list by value ${tender_form_lots_value_currency_input_locator} ${currency}
|
|
|
222
|
+# ${valueAddedTaxIncluded} = get from dictionary by keys ${data} value valueAddedTaxIncluded
|
|
|
223
|
+# run keyword if condition is not none ${valueAddedTaxIncluded} run keyword if ${valueAddedTaxIncluded} Click Element ${tender_form_lots_value_added_tax_input_locator}
|
|
|
224
|
+ ${min_step_amount} = get from dictionary by keys ${data} minimalStep amount
|
|
|
225
|
+ run keyword if condition is not none ${min_step_amount} input number to exist visible input ${tender_form_lots_minimalStep_amount_input_locator} ${min_step_amount}
|
|
|
226
|
+
|
|
|
227
|
+fill tender required documents
|
|
|
228
|
+ [Documentation] додає документ до усієї закупівлі для успішної валідації форми
|
|
|
229
|
+
|
|
|
230
|
+ ${file_path} ${file_name} ${file_content} = create_fake_doc
|
|
|
231
|
+ click visible element ${tender_form_general_panel_add_document_btn_locator}
|
|
|
232
|
+ choose file xpath=//input[@type='file'] ${file_path} # @todo винести локатор в variables + привязатися до відкритого попапу
|
|
|
233
|
+ # @todo чекати поки документ завантажиться
|
|
|
234
|
+ submit current visible popup |
|
|
\ No newline at end of file |
...
|
...
|
|