${LINK_LINK_ID_LABEL} link {link-id}
${BRANCH_ID_LABEL} branch-
${MODULE_DETAIL_BRANCH} ${MODULE_DETAIL_ACTIVE_TAB_CONTENT}//md-list-item[contains(@id, "${BRANCH_ID_LABEL}")]
+${MODULE_DETAIL_BRANCH_BUTTON} ${MODULE_DETAIL_BRANCH}/button
${MODULE_DETAIL_BRANCH_LABEL} ${MODULE_DETAIL_BRANCH}//span[contains(@class, "indented tree-label ng-binding flex") and contains(text(), "${BRANCH_LABEL}")]
#History Tab Left Panel
+${HISTORY_SEARCH_INPUT} //input[@id="search-history"]
+${SAVE_HISTORY_REQUEST_TO_COLLECTION_BUTTON} //button[@id="history-save-requests"]
+${DELETE_HISTORY_REQUEST_MENU} //button[@id="history-delete-menu"]
+${DELETE_SELECTED_HISTORY_REQUEST_BUTTON} //button[@id="history-delete-selected"]
+${DELETE_ALL_HISTORY_REQUESTS_BUTTON} //button[@id="history-delete-all"]
+${SELECT_HISTORY_REQUEST_MENU} //button[@id="history-select-menu"]
+${SELECT_ALL_HISTORY_REQUESTS_BUTTON} //button[@id="history-select-all"]
+${DESELECT_ALL_HISTORY_REQUESTS_BUTTON} //button[@id="history-deselect-all"]
#Collections Tab Left Panel
+${COLLECTIONS_SEARCH_INPUT} //input[@id="search-collections"]
+${SAVE_SELECTED_REQUEST_TO_COLLECTION_BUTTON} //button[@id="collections-save-selected"]
+${IMPORT_COLLECTION_BUTTON} //button[@id="importCollection"]
+${DELETE_HISTORY_REQUEST_MENU} //button[@id="history-delete-menu"]
+${DELETE_SELECTED_HISTORY_REQUEST_BUTTON} //button[@id="history-delete-selected"]
+${DELETE_ALL_HISTORY_REQUESTS_BUTTON} //button[@id="history-delete-all"]
+${SELECT_HISTORY_REQUEST_MENU} //button[@id="history-select-menu"]
+${SELECT_ALL_HISTORY_REQUESTS_BUTTON} //button[@id="history-select-all"]
+${DESELECT_ALL_HISTORY_REQUESTS_BUTTON} //button[@id="history-deselect-all"]
#Right Panel Header
${OPERATION_NAME} EMPTY
${OPERATION_SELECT_INPUT} //md-select[@id="request-selected-operation"]
${MILLISECONDS_LABEL} ms
${STATUS_LABEL} //span[contains(text(), "Status:")]
${STATUS_VALUE} //span[@id="info-request-status"]
+${THREE_DOTS_DEFAULT_STATUS_AND_TIME} ...
+${20X_REQUEST_CODE_REGEX} .*([2][0][0-6]).*
+${40X_REQUEST_CODE_REGEX} .*([4][0-1][0-9]).*
+${20X_OR_40X_REQUEST_CODE_REGEX} .*([24][0-1][0-9]).*
${TIME_LABEL} //span[contains(text(), "Time:")]
${TIME_VALUE} //span[@id="info-request-execution-time"]
+${API_PATH} //section[contains(@class, "yangmanModule__right-panel__header")]//section[@class="layout-wrap layout-row flex"]
+${HEADER_LINEAR_PROGRESSION_BAR_HIDDEN} //section[contains(@class, "yangmanModule__right-panel__header")]/md-progress-linear[@aria-hidden="true"]
#Right Panel Json Content
${SENT_DATA_CODE_MIRROR_DISPLAYED} //div[@id="sentData" and @aria-hidden="false"]
+${SENT_DATA_CODE_MIRROR_CODE} ${SENT_DATA_CODE_MIRROR_DISPLAYED}//div[@class="CodeMirror-code"]
${SENT_DATA_LABEL} ${SENT_DATA_CODE_MIRROR_DISPLAYED}//h5[contains(text(), Sent data)]
${SENT_DATA_ENLARGE_FONT_SIZE_BUTTON} ${SENT_DATA_CODE_MIRROR_DISPLAYED}//button[contains(@aria-label, arrow_drop_up)]
${SENT_DATA_REDUCE_FONT_SIZE_BUTTON} ${SENT_DATA_CODE_MIRROR_DISPLAYED}//button[contains(@aria-label, arrow_drop_down)]
${RECEIVED_DATA_CODE_MIRROR_DISPLAYED} //div[@id="ReceiveData" and @aria-hidden="false"]
+${RECEIVED_DATA_CODE_MIRROR_CODE} ${RECEIVED_DATA_CODE_MIRROR_DISPLAYED}//div[@class="CodeMirror-code"]
${RECEIVED_DATA_LABEL} ${RECEIVED_DATA_CODE_MIRROR_DISPLAYED}//h5[contains(text(), Received data)]
${RECEIVED_DATA_ENLARGE_FONT_SIZE_BUTTON} ${RECEIVED_DATA_CODE_MIRROR_DISPLAYED}//button[contains(@aria-label, arrow_drop_up)]
${RECEIVED_DATA_REDUCE_FONT_SIZE_BUTTON} ${RECEIVED_DATA_CODE_MIRROR_DISPLAYED}//button[contains(@aria-label, arrow_drop_down)]
+${JSON_ERROR_MESSAGE_INPUT_IS_MISSING} Error parsing input: Input is missing some of the keys of
+${JSON_ERROR_MESSAGE_CONTENT_DOES_NOT_EXIST} Request could not be completed because the relevant data model content does not exist
+${JSON_ERROR_MESSAGE_DATA_DOES_NOT_EXIST_FOR_PATH} Data does not exist for path
+${JSON_ERROR_MESSAGE_INPUT_IS_REQUIRED} Input is required.
# Right Panel Form Content
+${TOPOLOGY_ID_LABEL} topology-id
+${FORM_ERROR_MESSAGE} ${EMPTY}
${FORM_CONTENT} //section[contains(@class, "yangmanModule__right-panel__form bottom-content ng-scope") and contains(@aria-hidden, "false")]
+${ERROR_MESSAGE_IDENTIFIERS_IN_PATH_REQUIRED} Identifiers in path are required. Please fill empty identifiers for successful request execution.
+${FORM_ERROR_MESSAGE_XPATH} //p[contains(@id, "form-error-message") and contains (text(), "${FORM_ERROR_MESSAGE}")]
${FORM_TOP_ELEMENT_CONTAINER} ${FORM_CONTENT}//div[contains(@class, "yangmanModule__right-panel__form__element-container ng-scope")]
${FORM_TOP_ELEMENT_POINTER} ${FORM_TOP_ELEMENT_CONTAINER}//p[contains(@class, "top-element pointer")]
${FORM_TOP_ELEMENT_LABEL_XPATH} ${FORM_TOP_ELEMENT_POINTER}//span[contains(@class, "ng-binding ng-scope")]
${FORM_TOP_ELEMENT_LIST_ITEM_ROW} ${FORM_TOP_ELEMENT_CONTAINER}//section[@class="yangmanModule__right-panel__form__list__paginator ng-scope layout-column flex"]
${FORM_TOP_ELEMENT_LIST_ITEM} ${FORM_TOP_ELEMENT_LIST_ITEM_ROW}//md-tab-item[contains(@class, "md-tab ng-scope ng-isolate-scope md-ink-ripple")]
${FORM_TOP_ELEMENT_LIST_ITEM_LABEL} ${FORM_TOP_ELEMENT_LIST_ITEM}/span
+${YANGMENU_ADD_LIST_ITEM_BUTTON} ${FORM_CONTENT}//yang-form-menu//button[@ng-click="addListItemFunc(); closeMenu();"]
+${YANGMENU_SHOW_ALL_LIST_ITEMS} ${FORM_CONTENT}//yang-form-menu//button[@ng-click="switchSection('items'); setItemList();"]
+${YANGMENU_AUGMENTATIONS_BUTTON} ${FORM_CONTENT}//yang-form-menu//button[ng-click="switchSection('augmentations')"]
+${FORM_SHOW_PREVIOUS_ITEM_ARROW} //md-prev-button[@aria-label="Previous Page"]
+${FORM_SHOW_NEXT_ITEM_ARROW} //md-next-button[@aria-label="Next Page"]