Commit 372a27219ce7e6179338b641028a0bea17c5f3cf

Authored by Playtenders
2 parents ef407ed9 9a4dc527

Merge branch 'v3-dev' of https://git.4k.com.ua/root/playtender-robot_tests into v3-dev

@@ -97,8 +97,9 @@ Resource playtender_tende @@ -97,8 +97,9 @@ Resource playtender_tende
97 [Arguments] ${username} ${plan_uaid} ${field_name} 97 [Arguments] ${username} ${plan_uaid} ${field_name}
98 [Documentation] Отримати інформацію із плану, користуючись ідентіфікатором плану та назвою поля ${field_name}. 98 [Documentation] Отримати інформацію із плану, користуючись ідентіфікатором плану та назвою поля ${field_name}.
99 99
100 - open plan page by uaid ${plan_uaid}  
101 - ${value} = get plan field value by name ${field_name} 100 + open plan page by uaid ${plan_uaid} ${False}
  101 + ${field_name} = set variable plan.${field_name}.value
  102 + ${value} = get field_value by field_name on opened page ${field_name}
102 [Return] ${value} 103 [Return] ${value}
103 104
104 ######################################################################################################################## 105 ########################################################################################################################
@@ -71,6 +71,34 @@ fill item form in opened popup @@ -71,6 +71,34 @@ fill item form in opened popup
71 ${additional_classifications} = get from dictionary by keys ${data} additionalClassifications 71 ${additional_classifications} = get from dictionary by keys ${data} additionalClassifications
72 run keyword if condition is not none ${additional_classifications} select classification by array of code attributes ${item_form_popup_additional_classification_edit_btn_locator} ${additional_classifications} 72 run keyword if condition is not none ${additional_classifications} select classification by array of code attributes ${item_form_popup_additional_classification_edit_btn_locator} ${additional_classifications}
73 73
  74 +get value by locator on opened page
  75 + [Arguments] ${locator} ${type}=${None}
  76 + [Documentation] отримує значення з відповідного локатору і якщо потрібно перетворює до відповідного типу
  77 +
  78 + __private__set_element_visible_in_browser_area ${locator}
  79 + ${value} = get value by locator ${locator}
  80 + ${value} = convert to specified type ${value} ${type}
  81 + [Return] ${value}
  82 +
  83 +get field_value by field_name on opened page
  84 + [Arguments] ${field_name}
  85 + [Documentation] повертає інформацію з відкритої сторінки, користуючись назвою поля ${field_name}.
  86 + ... для назви поля повинен бути вказаний відповідний локатор (!вкінці змінної повинно бути слово locator),
  87 + ... і якщо потрібно тип поля окремою змінною (!locator замінюється на type) зі значенням [string,integer,float]
  88 +
  89 + ${field_name_prepared} = replace string ${field_name} .[ _
  90 + ${field_name_prepared} = replace string ${field_name_prepared} ]. _
  91 + ${field_name_prepared} = replace string ${field_name_prepared} . _
  92 + ${field_name_prepared} = replace string ${field_name_prepared} [ _
  93 + ${field_name_prepared} = replace string ${field_name_prepared} ] _
  94 + ${field_locator_variable_name} = set variable ${field_name_prepared}_locator
  95 + ${field_type_variable_name} = set variable ${field_name_prepared}_type
  96 + ${field_type_variable_exists} = run keyword and return status variable should exist ${${field_type_variable_name}}
  97 + ${field_type} = set variable if ${field_type_variable_exists} == ${True} ${${field_type_variable_name}} ${None}
  98 + ${field_locator} = set variable ${${field_locator_variable_name}}
  99 + ${field_value} = get value by locator on opened page ${field_locator} ${field_type}
  100 + [Return] ${field_value}
  101 +
74 ######################################################################################################################## 102 ########################################################################################################################
75 #################################################### COMMON HELPERS #################################################### 103 #################################################### COMMON HELPERS ####################################################
76 ######################################################################################################################## 104 ########################################################################################################################
1 *** Settings *** 1 *** Settings ***
2 2
3 Resource playtender_common.robot 3 Resource playtender_common.robot
  4 +Resource playtender_plan_variables.robot
4 5
5 *** Keywords *** 6 *** Keywords ***
6 7
@@ -25,10 +26,12 @@ open plan form by uaid @@ -25,10 +26,12 @@ open plan form by uaid
25 click visible element and wait until page contains element ${plan_edit_btn_locator} ${plan_form_locator} 26 click visible element and wait until page contains element ${plan_edit_btn_locator} ${plan_form_locator}
26 27
27 open plan page by uaid 28 open plan page by uaid
28 - [Arguments] ${uaid} 29 + [Arguments] ${uaid} ${refresh}=${True}
29 [Documentation] відкриває сторінку з планом 30 [Documentation] відкриває сторінку з планом
30 31
31 - open site page and wait content element ${broker_baseurl}/plan/${uaid} 32 + ${current_location} = get location
  33 + ${needed_location} = set variable ${broker_baseurl}/plan/${uaid}
  34 + run keyword if '${current_location}' != '${needed_location}' or ${refresh} == ${True} open site page and wait content element ${needed_location}
32 ${is_plan_found} = get is element exist ${plan_view_checker_element_locator} 35 ${is_plan_found} = get is element exist ${plan_view_checker_element_locator}
33 return from keyword if ${is_plan_found} == ${True} 36 return from keyword if ${is_plan_found} == ${True}
34 ${is_plan_not_found} = get is 404 page 37 ${is_plan_not_found} = get is 404 page
  1 +*** Variables ***
  2 +
  3 +# plan form
  4 +${plan_form_submit_success_msg} = дочекайтесь опублікування на сайті уповноваженого органу
  5 +${plan_form_locator} = id=plan-form
  6 +${plan_form_general_panel_edit_btn_locator} = jquery=#General .panel-heading .js-form-popup-update
  7 +${plan_form_procurement_method_type_input_locator} = id=planform-procurement_method_type
  8 +${plan_form_budget_id_input_locator} = id=planform-budget_id
  9 +${plan_form_project_id_input_locator} = id=planform-project_id
  10 +${plan_form_project_name_input_locator} = id=planform-project_name
  11 +${plan_form_title_input_locator} = id=planform-title
  12 +${plan_form_year_input_locator} = id=planform-year
  13 +${plan_form_tender_start_date_input_locator} = id=planform-tender_start_date
  14 +${plan_form_value_amount_input_locator} = id=planform-value_amount
  15 +${plan_form_value_currency_input_locator} = id=planform-value_currency
  16 +${plan_form_classification_edit_btn_locator} = jquery=.field-planform-classification_id .js-classification-input-wrapper [data-toggle="classification"]
  17 +${plan_form_additional_classification_edit_btn_locator} = jquery=.field-planform-additional_classification_ids .js-additional-classification-input-wrapper [data-toggle="additional-classification"]
  18 +${plan_form_kekv_classification_edit_btn_locator} = jquery=.field-planform-additional_classification_ids_kekv .js-additional-classification-input-wrapper [data-toggle="additional_classification_ids_kekv"]
  19 +${plan_form_add_item_btn_locator} = jquery=#Items .js-form-popup-add
  20 +${plan_form_update_item_btn_locator_tpl} = jquery=#Items .js-form-popup-panel:nth(%index%) .panel-heading .js-form-popup-update
  21 +${plan_form_remove_item_btn_locator_tpl} = jquery=#Items .js-form-popup-panel[data-title*="%title%"] .panel-heading .js-form-popup-remove
  22 +${plan_form_update_buyer_btn_locator} = jquery=#Buyer .js-form-popup-update
  23 +${plan_form_submit_btn_locator} = jquery=#plan-form .js-submit-btn
  24 +${plan_created_checker_element_locator} = id=plan-part-pjax
  25 +
  26 +# plan view
  27 +${plan_view_checker_element_locator} = id=plan-general-info
  28 +${plan_sync_element_locator} = jquery=#aside-part-pjax .status-label .fa-refresh
  29 +${plan_uaid_text_locator} = jquery=#plan-general-info .plan-id .value
  30 +${plan_edit_btn_locator} = jquery=#aside-part-pjax a[href*='plan/update']
  31 +# -- for viewer --
  32 +${plan_tender_procurementMethodType_value_locator} = jquery=#plan-general-info .procurement-method-type.hidden
  33 +${plan_budget_amount_value_locator} = jquery=#plan-general-info .budget-amount.hidden
  34 +${plan_budget_amount_value_type} = float
  35 +${plan_budget_description_value_locator} = jquery=#plan-general-info .budget-description .value
  36 +${plan_budget_currency_value_locator} = jquery=#plan-general-info .budget-currency.hidden
  37 +${plan_budget_id_value_locator} = jquery=#plan-general-info .budget-id .value
  38 +${plan_procuringEntity_name_value_locator} = jquery=#plan-general-info .organization .definitions__list .organization_name.hidden .value
  39 +${plan_procuringEntity_identifier_scheme_value_locator} = jquery=#plan-general-info .organization .definitions__list .identifier_scheme.hidden .value
  40 +${plan_procuringEntity_identifier_id_value_locator} = jquery=#plan-general-info .organization .definitions__list .identifier_code .value
  41 +${plan_procuringEntity_identifier_legalName_value_locator} = jquery=#plan-general-info .organization .definitions__list .identifier_legal_name.hidden .value
  42 +${plan_classification_description_value_locator} = jquery=#plan-general-info .main-classification-description.hidden
  43 +${plan_classification_scheme_value_locator} = jquery=#plan-general-info .main-classification-scheme.hidden
  44 +${plan_classification_id_value_locator} = jquery=#plan-general-info .main-classification-code.hidden
  45 +${plan_tender_tenderPeriod_startDate_value_locator} = jquery=#plan-general-info .tender-start-date-source.hidden
  46 +${plan_items_0_description_value_locator} = jquery=.items-wrapper .pseudo-table .pseudo-table__row:nth(1) .textvalue
  47 +${plan_items_1_description_value_locator} = jquery=.items-wrapper .pseudo-table .pseudo-table__row:nth(2) .textvalue
  48 +
  49 +# plan index + search
  50 +${plan_search_form_locator} = id=plan-filter-form
  51 +${plan_search_form_query_input_locator} = jquery=#plan-filter-form .dynamic-search-query input
  52 +${plan_search_form_result_locator_tpl} = jquery=#plan-list .lots__item .lot__characteristic li:contains(%query%)
1 # -*- coding: utf-8 - 1 # -*- coding: utf-8 -
2 -from robot.libraries.BuiltIn import BuiltIn  
3 -from iso8601 import parse_date  
4 import re 2 import re
5 import dateutil.parser 3 import dateutil.parser
6 4
  5 +from iso8601 import parse_date
  6 +from robot.libraries.BuiltIn import BuiltIn
  7 +
7 8
8 def get_library(): 9 def get_library():
9 return BuiltIn().get_library_instance('Selenium2Library') 10 return BuiltIn().get_library_instance('Selenium2Library')
@@ -84,11 +85,14 @@ def set_element_scroll_into_view(locator): @@ -84,11 +85,14 @@ def set_element_scroll_into_view(locator):
84 ) 85 )
85 86
86 87
87 -# return text from hidden element  
88 -def get_invisible_text(locator): 88 +# return text/value by specified locator
  89 +def get_value_by_locator(locator):
89 element = get_library()._element_find(locator, None, True) 90 element = get_library()._element_find(locator, None, True)
90 text = get_webdriver_instance().execute_script( 91 text = get_webdriver_instance().execute_script(
91 - 'return jQuery(arguments[0]).text();', 92 + 'var $element = jQuery(arguments[0]);'
  93 + 'if($element.is("input[type=checkbox]")) return $element.is(":checked") ? "1":"0";'
  94 + 'if($element.is("input,textarea,select")) return $element.val();'
  95 + 'return $element.text();',
92 element 96 element
93 ) 97 )
94 return text 98 return text
@@ -127,6 +131,16 @@ def convert_float_to_string(number): @@ -127,6 +131,16 @@ def convert_float_to_string(number):
127 return repr(float(number)) 131 return repr(float(number))
128 132
129 133
  134 +# convert any variable to specified type
  135 +def convert_to_specified_type(value, type):
  136 + value = "%s" % (value)
  137 + if type == 'integer':
  138 + value = int(value)
  139 + if type == 'float':
  140 + value = float(value)
  141 + return value
  142 +
  143 +
130 # prepare isodate in needed format 144 # prepare isodate in needed format
131 def isodate_format(isodate, format): 145 def isodate_format(isodate, format):
132 iso_dt = parse_date(isodate) 146 iso_dt = parse_date(isodate)
@@ -57,40 +57,6 @@ ${item_form_popup_delivery_end_date_input_locator} = jquery=.fanc @@ -57,40 +57,6 @@ ${item_form_popup_delivery_end_date_input_locator} = jquery=.fanc
57 ${buyer_form_popup_legal_name_input_locator} = jquery=.fancybox-is-open:last .fancybox-slide--current .fancybox-content [id$='-procuring_entity_name'] 57 ${buyer_form_popup_legal_name_input_locator} = jquery=.fancybox-is-open:last .fancybox-slide--current .fancybox-content [id$='-procuring_entity_name']
58 ${buyer_form_popup_identifier_id_input_locator} = jquery=.fancybox-is-open:last .fancybox-slide--current .fancybox-content [id$='-procuring_entity_identifier_code'] 58 ${buyer_form_popup_identifier_id_input_locator} = jquery=.fancybox-is-open:last .fancybox-slide--current .fancybox-content [id$='-procuring_entity_identifier_code']
59 59
60 -# plan form  
61 -${plan_form_submit_success_msg} = дочекайтесь опублікування на сайті уповноваженого органу  
62 -${plan_form_locator} = id=plan-form  
63 -${plan_form_general_panel_edit_btn_locator} = jquery=#General .panel-heading .js-form-popup-update  
64 -${plan_form_procurement_method_type_input_locator} = id=planform-procurement_method_type  
65 -${plan_form_budget_id_input_locator} = id=planform-budget_id  
66 -${plan_form_project_id_input_locator} = id=planform-project_id  
67 -${plan_form_project_name_input_locator} = id=planform-project_name  
68 -${plan_form_title_input_locator} = id=planform-title  
69 -${plan_form_year_input_locator} = id=planform-year  
70 -${plan_form_tender_start_date_input_locator} = id=planform-tender_start_date  
71 -${plan_form_value_amount_input_locator} = id=planform-value_amount  
72 -${plan_form_value_currency_input_locator} = id=planform-value_currency  
73 -${plan_form_classification_edit_btn_locator} = jquery=.field-planform-classification_id .js-classification-input-wrapper [data-toggle="classification"]  
74 -${plan_form_additional_classification_edit_btn_locator} = jquery=.field-planform-additional_classification_ids .js-additional-classification-input-wrapper [data-toggle="additional-classification"]  
75 -${plan_form_kekv_classification_edit_btn_locator} = jquery=.field-planform-additional_classification_ids_kekv .js-additional-classification-input-wrapper [data-toggle="additional_classification_ids_kekv"]  
76 -${plan_form_add_item_btn_locator} = jquery=#Items .js-form-popup-add  
77 -${plan_form_update_item_btn_locator_tpl} = jquery=#Items .js-form-popup-panel:nth(%index%) .panel-heading .js-form-popup-update  
78 -${plan_form_remove_item_btn_locator_tpl} = jquery=#Items .js-form-popup-panel[data-title*="%title%"] .panel-heading .js-form-popup-remove  
79 -${plan_form_submit_btn_locator} = jquery=#plan-form .js-submit-btn  
80 -${plan_form_update_buyer_btn_locator} = jquery=#Buyer .js-form-popup-update  
81 -${plan_created_checker_element_locator} = id=plan-part-pjax  
82 -  
83 -# plan view  
84 -${plan_view_checker_element_locator} = id=plan-general-info  
85 -${plan_sync_element_locator} = jquery=#aside-part-pjax .status-label .fa-refresh  
86 -${plan_uaid_text_locator} = jquery=#plan-general-info .plan-id .value  
87 -${plan_edit_btn_locator} = jquery=#aside-part-pjax a[href*='plan/update']  
88 -  
89 -# plan index + search  
90 -${plan_search_form_locator} = id=plan-filter-form  
91 -${plan_search_form_query_input_locator} = jquery=#plan-filter-form .dynamic-search-query input  
92 -${plan_search_form_result_locator_tpl} = jquery=#plan-list .lots__item .lot__characteristic li:contains(%query%)  
93 -  
94 # tender form 60 # tender form
95 ${tender_form_submit_success_msg} = дочекайтесь опублікування на сайті уповноваженого органу. 61 ${tender_form_submit_success_msg} = дочекайтесь опублікування на сайті уповноваженого органу.
96 ${tender_form_locator} = id=tender-form 62 ${tender_form_locator} = id=tender-form
Please register or login to post a comment