|
| 1 | +<?xml version="1.0" encoding="UTF-8"?> |
| 2 | +<!-- |
| 3 | + /** |
| 4 | + * Copyright 2024 Adobe |
| 5 | + * All Rights Reserved. |
| 6 | + */ |
| 7 | +--> |
| 8 | +<sections xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| 9 | + xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd"> |
| 10 | + <section name="AdminStagingSlideOutSection"> |
| 11 | + <element name="scheduleNewUpdateBtn" type="button" selector="#staging_update_new" timeout="30"/> |
| 12 | + <element name="scheduledChanges" selector="div.block-schedule.block" type="block"/> |
| 13 | + <element name="preview" type="button" selector="//a[text()='Preview']"/> |
| 14 | + <element name="viewEdit" type="button" selector="//a[text()='View/Edit']"/> |
| 15 | + <element name="nthPreviewLink" selector="tbody.schedule-item:nth-of-type({{var}}) a:nth-of-type(2)" type="button" parameterized="true" timeout="30"/> |
| 16 | + <element name="editLinkByName" type="button" selector="//div[contains(text(), '{{nameUpdate}}')]/ancestor::tr//a[text()='View/Edit']" parameterized="true" timeout="30"/> |
| 17 | + <element name="previewByName" type="button" selector="//div[contains(text(), '{{nameUpdate}}')]/ancestor::tr//a[text()='Preview']" parameterized="true" timeout="60"/> |
| 18 | + <element name="modalContainer" type="text" selector="[data-role='modal']._show .modal-inner-wrap"/> |
| 19 | + <element name="title" type="text" selector="//span[text()='Schedule Update']"/> |
| 20 | + <element name="editExistingUpdate" type="radio" selector=" input[data-index='staging_save_mode']" timeout="10"/> |
| 21 | + <element name="updateName" type="input" selector="input[name='staging[name]']"/> |
| 22 | + <element name="updateNameDisabled" type="input" selector="input[name='staging[name]']:disabled"/> |
| 23 | + <element name="updateDescription" type="textarea" selector="textarea[name='staging[description]']"/> |
| 24 | + <element name="updateDescriptionDisabled" type="textarea" selector="textarea[name='staging[description]']:disabled"/> |
| 25 | + <element name="startDate" type="input" selector="input[name='staging[start_time]']"/> |
| 26 | + <element name="startDateDisabled" type="input" selector="input[name='staging[start_time]']:disabled"/> |
| 27 | + <element name="endDate" type="input" selector="input[name='staging[end_time]']"/> |
| 28 | + <element name="endDateDisabled" type="input" selector="input[name='staging[end_time]']:disabled"/> |
| 29 | + <element name="contentTab" type="button" selector="//aside[contains(@class,'_show')]//div[@data-role='content']//span[text()='Content']"/> |
| 30 | + <element name="save" type="button" selector=".modals-wrapper button#save" timeout="30"/> |
| 31 | + <element name="changeStoreButton" type="button" selector=".modal-header #store-change-button" timeout="10"/> |
| 32 | + <element name="selectStoreView" type="button" selector="//header[@class='modal-header']//ul[@data-role='stores-list']/li/a[normalize-space(.)='{{var1}}']" timeout="10" parameterized="true"/> |
| 33 | + <element name="scheduleErrorMessage" type="text" selector=".modal-content .message-error"/> |
| 34 | + <element name="contentBlock" type="block" selector=".block-content"/> |
| 35 | + <element name="cmsStagingPageBase" type="text" selector="//aside[contains(@class,'cmsstaging') and contains(@class,'_show')]"/> |
| 36 | + <element name="fieldError" type="text" selector="//input[@name='staging[{{fieldName}}]']/following-sibling::label[@class='admin__field-error']" parameterized="true"/> |
| 37 | + <element name="cancel" type="button" selector=".modals-wrapper button#cancel" timeout="30"/> |
| 38 | + <!-- Product details selectors --> |
| 39 | + <element name="price" type="input" selector="input[name='product[price]']"/> |
| 40 | + <element name="priceInStagingPage" type="input" selector="//aside[@class='modal-slide scheduled-changes-modal-slide catalogstaging_upcoming_form_catalogstaging_upcoming_form_catalogstaging_update_form_modal _show']//input[@name='product[price]']"/> |
| 41 | + <element name="name" type="input" selector=".scheduled-changes-modal-slide input[name='product[name]']"/> |
| 42 | + <element name="nameUseDefaultValue" type="checkbox" selector="//aside//*[@name='product[name]']/..//input[@name='use_default[name]']"/> |
| 43 | + <element name="removeFromUpdate" type="button" selector="#remove" timeout="20"/> |
| 44 | + <element name="anchor" type="checkbox" selector="//aside[contains(@class,'scheduled-changes-modal-slide')]//div[@data-index='status']//label[@class='admin__actions-switch-label']"/> |
| 45 | + <element name="assertAnchor" type="checkbox" selector="//aside[contains(@class,'scheduled-changes-modal-slide')]//div[@data-index='status']//label[@class='admin__actions-switch-label']/../input"/> |
| 46 | + <element name="useDefaultValue" type="button" selector="//*[@id='modal-content-13']/div/div[1]/div/div[2]/div[3]/div/fieldset/div[3]/div[2]/div/label" timeout="20"/> |
| 47 | + <element name="addProductsToGroup" type="button" selector=".scheduled-changes-modal-slide button[data-index='grouped_products_button']" /> |
| 48 | + <element name="customizableOptions" type="select" selector="//span[text()='Customizable Options']"/> |
| 49 | + <element name="checkIfCustomizableOptionsTabOpen" type="text" selector="//aside//strong//span[text()='Customizable Options']/parent::strong/parent::*[@data-state-collapsible='closed']" timeout="30"/> |
| 50 | + <element name="addOption" type="button" selector=".scheduled-changes-modal-slide button[data-index='button_add'] > span"/> |
| 51 | + <element name="optionTitle" type="input" selector=".scheduled-changes-modal-slide input[name='product[options][1][title]']"/> |
| 52 | + <element name="optionTypeDropDown" type="select" selector="//aside//input[@name='product[options][1][title]']/parent::div/parent::div/following-sibling::div//div[@class='admin__action-multiselect-text']"/> |
| 53 | + <element name="optionType" type="select" selector="//aside//input[@name='product[options][1][title]']/parent::div/parent::div/following-sibling::div//li//div//label[text()='{{optionTypeValue}}']" parameterized="true"/> |
| 54 | + <element name="optionDelete" type="button" selector="//tbody//tr//td//div//div//span[text()='{{optionName}}']/../..//div/../button[@class='action-delete']" parameterized="true"/> |
| 55 | + <element name="optionValueDelete" type="button" selector="//aside//tbody//tr//tr//td//div//input[@name='product[options][0][values][0][title]']/parent::div/parent::div/..//following-sibling::td//button[@class='action-delete']"/> |
| 56 | + <element name="addOptionValue" type="button" selector="//aside//tbody//tr//td//div//div//span[text()='{{optionValue}}']/parent::div/..//following-sibling::div//tfoot//span[text()='Add Value']" parameterized="true"/> |
| 57 | + <element name="firstValueTitle" type="input" selector="input[name='product[options][1][values][0][title]']"/> |
| 58 | + <element name="firstValuePrice" type="input" selector="input[name='product[options][1][values][0][price]']"/> |
| 59 | + <element name="secondValueTitle" type="input" selector="input[name='product[options][1][values][1][title]']"/> |
| 60 | + <element name="secondValuePrice" type="input" selector="input[name='product[options][1][values][1][price]']"/> |
| 61 | + <element name="ThirdValueTitle" type="input" selector=".scheduled-changes-modal-slide input[name='product[options][0][values][1][title]']"/> |
| 62 | + <element name="ThirdValuePrice" type="input" selector=".scheduled-changes-modal-slide input[name='product[options][0][values][1][price]']"/> |
| 63 | + |
| 64 | + <!-- Data picker selectors --> |
| 65 | + <element name="datepickerStartDate" type="button" selector="[data-index='staging_save_start_date'] button" timeout="30"/> |
| 66 | + <element name="datepickerEndDate" type="button" selector="[data-index='staging_save_end_time'] button" timeout="30"/> |
| 67 | + <element name="datepickerGoToday" type="button" selector="#ui-datepicker-div button.ui-datepicker-current" timeout="30"/> |
| 68 | + <element name="datepickerClose" type="button" selector="#ui-datepicker-div button.ui-datepicker-close" timeout="30"/> |
| 69 | + <element name="datapickerTime" type="text" selector="#ui-datepicker-div[style*='display: block'] .ui_tpicker_time"/> |
| 70 | + <element name="datapickerCurrentDay" type="select" selector="#ui-datepicker-div[style*='display: block'] .ui-datepicker-current-day > a"/> |
| 71 | + <element name="datapickerMonth" type="select" selector="#ui-datepicker-div[style*='display: block'] select.ui-datepicker-month option[selected]"/> |
| 72 | + <element name="datapickerYear" type="select" selector="#ui-datepicker-div[style*='display: block'] .ui-datepicker-year"/> |
| 73 | + <!-- Page in Websites selectors --> |
| 74 | + <element name="pageInWebsitesTab" type="button" selector="//aside[contains(@class,'_show')]//div[@data-role='content']//span[text()='Page in Websites']"/> |
| 75 | + <element name="selectPageInWebsitesStoreView" type="button" selector="//div[@data-role='content']//select[@name='store_id']//option[contains(text(), '{{var1}}')]" timeout="10" parameterized="true"/> |
| 76 | + <element name="previewModal" type="button" selector=".modals-wrapper button#preview" timeout="30"/> |
| 77 | + <element name="stagingContentTab" type="button" selector="//aside[contains(@class,'_show')]//div[@data-role='content']//span[text()='Content']//ancestor::div[@data-index='content']//div[contains(@class,'admin__fieldset-wrapper-content') and contains(@class,'_show')]"/> |
| 78 | + <element name="saveButton" type="button" selector=".modals-wrapper button#save:nth-of-type({{index}})" timeout="30" parameterized="true"/> |
| 79 | + <element name="activeSaveButton" type="button" selector=".modals-wrapper ._show button#save"/> |
| 80 | + <element name="activeCloseButton" type="button" selector=".modals-wrapper ._show button.action-close"/> |
| 81 | + <element name="closeButtonForNestedDialog" type="button" selector=".modal-slide._show:not(.scheduled-changes-modal-slide) [data-role="closeBtn"]" timeout="30"/> |
| 82 | + <!-- Product in Websites --> |
| 83 | + <element name="productInWebsitesTab" type="button" selector="//aside[contains(@class,'_show')]//div[@data-role='content']//span[text()='Product in Websites']"/> |
| 84 | + <element name="websitesSection" type="block" selector="//div[@class='fieldset-wrapper admin__fieldset-product-websites admin__collapsible-block-wrapper _disabled _show']"/> |
| 85 | + <element name="visibility" type="select" selector=".scheduled-changes-modal-slide select[name='product[visibility]']"/> |
| 86 | + <element name="countryOfManufacture" type="select" selector=".scheduled-changes-modal-slide select[name='product[country_of_manufacture]']"/> |
| 87 | + <element name="removeProduct" type="select" selector="//aside[@role='dialog']//*[contains(text(),'{{productName}}')]//ancestor::tr//td[@data-index='actionDelete']//span" parameterized="true"/> |
| 88 | + <element name="defaultQuantity" type="input" selector="//aside[@role='dialog']//*[contains(text(),'{{productName}}')]//ancestor::tr//td[@data-index='qty']//input" parameterized="true"/> |
| 89 | + <element name="attributeSet" type="select" selector="//aside[contains(@class,'scheduled-changes-modal-slide')]//div[contains(@class, 'admin__field')]//div[@data-index='attribute_set_id']"/> |
| 90 | + <element name="attributeSetFilter" type="input" selector="//aside[contains(@class,'scheduled-changes-modal-slide')]//div[@data-index='attribute_set_id']//div[contains(@class, 'admin__field-control')]//input" timeout="30"/> |
| 91 | + <element name="attributeSetFilterResult" type="input" selector="//aside[contains(@class,'scheduled-changes-modal-slide')]//div[@data-index='attribute_set_id']//div[contains(@class, 'action-menu-item _last')]" timeout="30"/> |
| 92 | + <element name="attributeCodeFilter" type="select" selector="//aside[contains(@class,'scheduled-changes-modal-slide')]//div[@data-index='{{attributeCode}}']//div[contains(@class, 'admin__field-control')]//select" timeout="30" parameterized="true"/> |
| 93 | + <element name="attributeSelectedOption" type="input" selector="//aside[contains(@class,'scheduled-changes-modal-slide')]//div[@data-index='attribute_set_id']//div[contains(@class, 'admin__field-control')]//div[@data-role='selected-option']" timeout="30"/> |
| 94 | + <element name="attributeSelectedCodeFilter" type="select" selector="//aside[contains(@class,'scheduled-changes-modal-slide')]//div[@data-index='{{attributeCode}}']//div[contains(@class, 'admin__field-control')]//select/option[text() = '{{color}}']" timeout="30" parameterized="true"/> |
| 95 | + </section> |
| 96 | +</sections> |
0 commit comments