Commit a03804985c59105c0e6a78cb1d231a036a0a4c39

Authored by Oleksandr Iskryzhytskyi
1 parent edd76b4f

plan

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