oro_behat_extension:
  elements:
    ProductNameField:
      selector: "input[name='oro_product[names][values][default]']"
    ProductPrimaryUnitField:
      selector: "select[name='oro_product[primaryUnitPrecision][unit]']"
    ProductAdditionalUnitField:
      selector: "select[name='oro_product[additionalUnitPrecisions][0][unit]']"
    ProductAdditionalPrecisionField:
      selector: "input[name='oro_product[additionalUnitPrecisions][0][precision]']"
    ProductAdditionalSellField:
      selector: "input[name='oro_product[additionalUnitPrecisions][0][sell]']"
    ProductUnitLabel:
      selector: "[data-role='unit-label']"
    ProductUnitSelect:
      selector: 'select[name="oro_product_frontend_line_item[unit]"]'
    OptionCollection:
      class: Oro\Bundle\ProductBundle\Tests\Behat\Element\OptionCollection
    InStockInventoryStatus:
        selector: "span.product-inventory-status-in_stock"
    OutOfStockInventoryStatus:
        selector: "span.product-inventory-status-out_of_stock"
    Configurable Attributes:
      class: Oro\Bundle\ProductBundle\Tests\Behat\Element\ProductCustomVariantFieldsCollection
      selector: 'div[id^="oro_product_variantFields"]'
    Brand hamburger:
      selector:
        locator: '//label[text()="Brand"]/../..//button[contains(@class,"entity-select-btn")]'
        type: xpath
    ProductViewRelatedItemQuickEdit:
      selector:
          type: xpath
          locator: '//h4[text()[contains(.,"Related Items")]]/parent::div//a[contains(@class, "quick-editable")]'

    Products Grid:
      selector: 'div[data-page-component-name="products-grid"]'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid

    SelectProductsGrid:
      selector: 'div[data-page-component-name="products-select-grid"]'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid

    Products GridFiltersButton:
      selector: 'div[data-page-component-name="products-grid"] div.filter-container > button.select-filter-widget'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\GridFiltersButton

    Products GridFilterManagerButton:
      selector: 'div[data-page-component-name="products-grid"] button.select-filter-widget'

    Products GridFilterManager:
      selector: 'div[data-page-component-name="products-grid"] div.filter-container>div.dropdown-menu'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\GridFilterManager

    ### Related Items ###
    ## Related Products ##
    SelectRelatedProductsGrid:
      selector: 'div[data-page-component-name="products-related-products-select"]'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid

    RelatedProductsEditGrid:
      selector: 'div[data-page-component-name="products-related-products-edit"]'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid

    RelatedProductsViewGrid:
      selector: 'div[data-page-component-name="products-related-products-view"]'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid

    RelatedProductsViewGridFilters:
      selector: 'div[data-page-component-name="products-related-products-view"] div.filter-box'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\GridFilters

    RelatedProductsViewGridToolbarActions:
      selector: 'div[data-page-component-name="products-related-products-view"] div.toolbar div.actions-panel'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\GridToolbarActions

    RelatedProductsViewGridFiltersState:
      selector: 'div[data-page-component-name="products-related-products-view"] .filters-state'

    RelatedProductsViewGridFilterItem:
      selector: 'div[data-page-component-name="products-related-products-view"] div.filter-item'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\GridFilterItem

    RelatedProductsViewGridFilterStringItem:
      selector: 'div[data-page-component-name="products-related-products-view"] div.filter-item'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\GridFilterStringItem

    RelatedProductsGridSettings:
      selector: 'div[data-page-component-name="products-related-products-view"] div.datagrid-settings > a.dropdown-toggle'

    SelectRelatedProductsGridFilters:
      selector: 'div[data-page-component-name="products-related-products-select"] div.filter-box'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\GridFilters

    SelectRelatedProductsGridToolbarActions:
        selector: 'div[data-page-component-name="products-related-products-select"] div.toolbar div.actions-panel'
        class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\GridToolbarActions

    SelectRelatedProductsGridFiltersState:
        selector: 'div[data-page-component-name="products-related-products-select"] .filters-state'

    SelectRelatedProductsGridFilterItem:
      selector: 'div[data-page-component-name="products-related-products-select"] div.filter-item'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\GridFilterItem

    SelectRelatedProductsGridFilterStringItem:
      selector: 'div[data-page-component-name="products-related-products-select"] div.filter-item'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\GridFilterStringItem

    RelatedProductsEditGridFilters:
      selector: 'div[data-page-component-name="products-related-products-edit"] div.filter-box'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\GridFilters

    RelatedProductsEditGridToolbarActions:
        selector: 'div[data-page-component-name="products-related-products-edit"] div.toolbar div.actions-panel'
        class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\GridToolbarActions

    RelatedProductsEditGridFiltersState:
        selector: 'div[data-page-component-name="products-related-products-edit"] .filters-state'

    RelatedProductsEditGridFilterItem:
      selector: 'div[data-page-component-name="products-related-products-edit"] div.filter-item'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\GridFilterItem

    RelatedProductsEditGridFilterStringItem:
      selector: 'div[data-page-component-name="products-related-products-edit"] div.filter-item'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\GridFilterStringItem

    ## Tax Code ##
    SelectTaxCodeGrid:
      selector: 'div[data-page-component-name="products-tax-code-select-grid"] div.oro-datagrid'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid

    ## Upsell Products ##
    SelectUpsellProductsGrid:
      selector: 'div[data-page-component-name="products-upsell-products-select"]'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid

    UpsellProductsEditGrid:
      selector: 'div[data-page-component-name="products-upsell-products-edit"]'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid

    UpsellProductsViewGrid:
      selector: 'div[data-page-component-name="products-upsell-products-view"]'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid

    SelectUpsellProductsGridFilters:
      selector: 'div[data-page-component-name="products-upsell-products-select"] div.filter-box'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\GridFilters

    SelectUpsellProductsGridToolbarActions:
        selector: 'div[data-page-component-name="products-upsell-products-select"] div.toolbar div.actions-panel'
        class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\GridToolbarActions

    SelectUpsellProductsGridFiltersState:
        selector: 'div[data-page-component-name="products-upsell-products-select"] .filters-state'

    SelectUpsellProductsGridFilterItem:
      selector: 'div[data-page-component-name="products-upsell-products-select"] div.filter-item'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\GridFilterItem

    SelectUpsellProductsGridFilterStringItem:
      selector: 'div[data-page-component-name="products-upsell-products-select"] div.filter-item'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\GridFilterStringItem

    UpsellProductsEditGridFilters:
      selector: 'div[data-page-component-name="products-upsell-products-edit"] div.filter-box'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\GridFilters

    UpsellProductsEditGridToolbarActions:
        selector: 'div[data-page-component-name="products-upsell-products-edit"] div.toolbar div.actions-panel'
        class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\GridToolbarActions

    UpsellProductsEditGridFiltersState:
        selector: 'div[data-page-component-name="products-upsell-products-edit"] .filters-state'

    UpsellProductsEditGridFilterItem:
      selector: 'div[data-page-component-name="products-upsell-products-edit"] div.filter-item'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\GridFilterItem

    UpsellProductsEditGridFilterStringItem:
      selector: 'div[data-page-component-name="products-upsell-products-edit"] div.filter-item'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\GridFilterStringItem

    Upsell Products View Tab:
      selector:
        type: xpath
        locator: '//div[contains(@class, "oro-tabs")]/div/ul/li/a[contains(text(), "Up-sell Products")]'

    ProductForm Step One:
      selector: 'form[name="oro_product_step_one"]'
      class: Oro\Bundle\TestFrameworkBundle\Behat\Element\Form
      options:
        mapping:
          Type: 'oro_product_step_one[type]'
          Attribute Family: 'oro_product_step_one[attributeFamily]'

    Product Attribute Frontend Options:
      selector:
        type: xpath
        locator: '//div[contains(@class, "responsive-section")]//h4[contains(., "Frontend options")]/..'

    Product Option Form:
      selector: 'form[name="product_options"]'
      class: Oro\Bundle\TestFrameworkBundle\Behat\Element\Form
      options:
        mapping:
          Manage Inventory Default: 'product_options[oro_inventory___manage_inventory][use_parent_scope_value]'
          Inventory Threshold Default: 'product_options[oro_inventory___inventory_threshold][use_parent_scope_value]'
          Backorders Default: 'product_options[oro_inventory___backorders][use_parent_scope_value]'
          Decrement Inventory Default: 'product_options[oro_inventory___decrement_inventory][use_parent_scope_value]'
          Low Inventory Threshold Default: 'product_options[oro_inventory___low_inventory_threshold][use_parent_scope_value]'
          Highlight Low Inventory: 'product_options[oro_inventory___highlight_low_inventory][value]'
          Highlight Low Inventory Default: 'product_options[oro_inventory___highlight_low_inventory][use_parent_scope_value]'

    ProductForm:
      selector: 'form[name="oro_product"]'
      class: Oro\Bundle\TestFrameworkBundle\Behat\Element\Form
      options:
        mapping:
          SKU: 'oro_product[sku]'
          Name: 'oro_product[names][values][default]'
          Name German:
            type: 'xpath'
            locator: '//div[contains(@class, "control-group-oro_redirect_localized_slug_with_redirect")]//div[contains(concat(" ",normalize-space(@class)," ")," fallback-item ") and .//div[contains(@class, "fallback-item-label") and contains(text(), "German_Loc")]]//input[contains(@class, "fallback-item-value-input")]'
          Name German Use Default:
            type: 'xpath'
            locator: '//div[contains(@class, "control-group-oro_redirect_localized_slug_with_redirect")]//div[contains(text(), "German_Loc")]/following-sibling::div//input[@type="checkbox"]'
          URL Slug: 'oro_product[slugPrototypesWithRedirect][slugPrototypes][values][default]'
          Description:
            type: 'css'
            locator: '[name="oro_product[descriptions][values][default][wysiwyg]"]'
            element: WysiwygField
          Short Description: 'oro_product[shortDescriptions][values][default]'
          Name English (United States) value:
            type: 'xpath'
            locator: '//label[text() = "Name"]/ancestor::div[contains(@class, "control-group")]//div[text() = "English (United States)"]/following-sibling::div//input[contains(@class, "fallback-item-value-input")]'
          Name English (United States) use fallback:
            type: 'xpath'
            locator: '//label[text() = "Name"]/ancestor::div[contains(@class, "control-group")]//div[text() = "English (United States)"]/following-sibling::div//input[@type="checkbox"]'
          Name English (United States) fallback:
            type: 'xpath'
            locator: '//label[text() = "Name"]/ancestor::div[contains(@class, "control-group")]//div[text() = "English (United States)"]/following-sibling::div//select]'
          Name Dutch value:
            type: 'xpath'
            locator: '//label[text() = "Name"]/ancestor::div[contains(@class, "control-group")]//div[text() = "Dutch"]/following-sibling::div//input[contains(@class, "fallback-item-value-input")]'
          Name Dutch use fallback:
            type: 'xpath'
            locator: '//label[text() = "Name"]/ancestor::div[contains(@class, "control-group")]//div[text() = "Dutch"]/following-sibling::div//input[@type="checkbox"]'
          Name Dutch fallback:
            type: 'xpath'
            locator: '//label[text() = "Name"]/ancestor::div[contains(@class, "control-group")]//div[text() = "Dutch"]/following-sibling::div//select]'
          Name French value:
            type: 'xpath'
            locator: '//label[text() = "Name"]/ancestor::div[contains(@class, "control-group")]//div[text() = "French"]/following-sibling::div//input[contains(@class, "fallback-item-value-input")]'
          Name French use fallback:
            type: 'xpath'
            locator: '//label[text() = "Name"]/ancestor::div[contains(@class, "control-group")]//div[text() = "French"]/following-sibling::div//input[@type="checkbox"]'
          Name French fallback:
            type: 'xpath'
            locator: '//label[text() = "Name"]/ancestor::div[contains(@class, "control-group")]//div[text() = "French"]/following-sibling::div//select]'
          Short Description English (United States): 'oro_product[shortDescriptions][values][localizations][1][value]'
          Short Description English (United States) fallback selector: 'oro_product[shortDescriptions][values][localizations][1][fallback]'
          Description English (United States): 'oro_product[descriptions][values][localizations][1][value][wysiwyg]'
          Description English (United States) fallback selector: 'oro_product[descriptions][values][localizations][1][fallback]'
          Description Localization 2: 'oro_product[descriptions][values][localizations][2][value][wysiwyg]'
          Description Localization 2 fallback selector: 'oro_product[descriptions][values][localizations][2][fallback]'
          Description Localization 3: 'oro_product[descriptions][values][localizations][3][value][wysiwyg]'
          Description Localization 3 fallback selector: 'oro_product[descriptions][values][localizations][3][fallback]'
          Status: 'oro_product[status]'
          PrimaryUnit: 'oro_product[primaryUnitPrecision][unit]'
          PrimaryPrecision: 'oro_product[primaryUnitPrecision][precision]'
          AdditionalUnit: 'oro_product[additionalUnitPrecisions][0][unit]'
          AdditionalPrecision: 'oro_product[additionalUnitPrecisions][0][precision]'
          Page Template: 'oro_product[pageTemplate][scalarValue]'
          Page Template Use Fallback: 'oro_product[pageTemplate][useFallback]'
          Managed Inventory Use Fallback: 'oro_product[manageInventory][useFallback]'
          Highlight Low Inventory Use Fallback: 'oro_product[highlightLowInventory][useFallback]'
          Inventory Threshold Use Fallback: 'oro_product[inventoryThreshold][useFallback]'
          Inventory Threshold: 'oro_product[inventoryThreshold][scalarValue]'
          Low Inventory Threshold Use Fallback: 'oro_product[lowInventoryThreshold][useFallback]'
          Low Inventory Threshold: 'oro_product[lowInventoryThreshold][scalarValue]'
          Backorders Use Fallback: 'oro_product[backOrder][useFallback]'
          Decrement Inventory Use Fallback: 'oro_product[decrementQuantity][useFallback]'
          Is Upcoming Use Fallback: 'oro_product[isUpcoming][useFallback]'
          Minimum Quantity To Order Use Fallback: 'oro_product[minimumQuantityToOrder][useFallback]'
          Minimum Quantity To Order: 'oro_product[minimumQuantityToOrder][scalarValue]'
          Maximum Quantity To Order Use Fallback: 'oro_product[maximumQuantityToOrder][useFallback]'
          Maximum Quantity To Order: 'oro_product[maximumQuantityToOrder][scalarValue]'
          Price Quantity 1: 'oro_product[prices][0][quantity]'
          Price Value 1: 'oro_product[prices][0][price][value]'
          Price Unit 1: 'oro_product[prices][0][unit]'
          Shipping Option Weight Value 1: 'oro_product[product_shipping_options][0][weight][value]'
          Shipping Option Weight Unit 1: 'oro_product[product_shipping_options][0][weight][unit]'
          Shipping Option Dimensions Length Value 1: 'oro_product[product_shipping_options][0][dimensions][value][length]'
          Shipping Option Dimensions Width Value 1: 'oro_product[product_shipping_options][0][dimensions][value][width]'
          Shipping Option Dimensions Height Value 1: 'oro_product[product_shipping_options][0][dimensions][value][height]'
          Shipping Option Dimensions Unit 1: 'oro_product[product_shipping_options][0][dimensions][unit]'
          Shipping Option Freight Class Value 1: 'oro_product[product_shipping_options][0][freightClass]'
          Product WYSIWYG_video Attribute Content:
            type: 'css'
            locator: 'textarea[id^="oro_product_WYSIWYG_video"]'
            element: WysiwygField
          Product WYSIWYG_embed Field Content:
            type: 'css'
            locator: 'textarea[id^="oro_product_WYSIWYG_embed"]'
            element: WysiwygField
          Configurable Attributes:
            type: 'xpath'
            locator: '//div[@id[starts-with(.,"oro_product_variantFields-uid")]]'
            element: Configurable Attributes
          Name Default Slug: 'oro_product[slugPrototypesWithRedirect][slugPrototypes][values][default]'
          Name First Slug: 'oro_product[slugPrototypesWithRedirect][slugPrototypes][values][localizations][1][value]'
          Name First Slug Use Default: 'oro_product[slugPrototypesWithRedirect][slugPrototypes][values][localizations][1][use_fallback]'
        # for testing product attributes
          Color:
            type: 'css'
            locator: '[id^="oro_product_Color"]'
          Size:
            type: 'css'
            locator: '[id^="oro_product_Size"]'
          StringField:
            type: 'css'
            locator: '[id^="oro_product_StringField"]'
          BigIntField:
            type: 'css'
            locator: '[id^="oro_product_BigIntField"]'
          SmallIntField:
            type: 'css'
            locator: '[id^="oro_product_SmallIntField"]'
          BooleanField:
            type: 'css'
            locator: '[id^="oro_product_BooleanField"]'
          DecimalField:
            type: 'css'
            locator: '[id^="oro_product_DecimalField"]'
          FloatField:
            type: 'css'
            locator: '[id^="oro_product_FloatField"]'
          PercentField:
            type: 'css'
            locator: '[id^="oro_product_PercentField"]'
          CurrencyField:
            type: 'css'
            locator: '[id^="oro_product_CurrencyField"]'
          DateField:
            type: 'css'
            locator: 'input[name^="oro_product_DateField"]'
          DateTimeField:
            type: 'css'
            locator: '[data-ftid^="oro_product_DateTimeField"]'
          SelectField:
            type: 'css'
            locator: '[id^="oro_product_SelectField"]'
            element: Select2Offscreen
          TextField:
            type: 'css'
            locator: '[id^="oro_product_TextField"]'
          ColorField:
            type: 'css'
            locator: '[id^="oro_product_ColorField"]'
          BooleanAttr:
            type: 'css'
            locator: '[id^="oro_product_BooleanAttr"]'
          ManyToOneField:
            type: 'css'
            locator: '[id^="oro_product_ManyToOneField"]'
            element: Select2Entity
          TagField:
            type: 'css'
            locator: '[id^="oro_product_TagField"]'
            element: Select2Entity
          MultiColor:
            type: 'css'
            locator: '[id^="oro_product_MultiColor"]'
            element: GroupChoiceField
          MultiSelectField1:
            type: 'css'
            locator: '[id^="oro_product_multi_select_attribute_1"]'
            element: GroupChoiceField
          MultiSelectField2:
            type: 'css'
            locator: '[id^="oro_product_multi_select_attribute_2"]'
            element: GroupChoiceField
          Owner:
            locator: '//*[@name="oro_product[owner]"]'
            type: xpath
            element: Select2Entity
          MultipleFiles 1:
            locator: '//input[starts-with(@name, "oro_product[MultipleFiles") and contains(@name, "[file][file]")]'
            type: xpath
          MultipleImages 1:
            locator: '//input[starts-with(@name, "oro_product[MultipleImages") and contains(@name, "[file][file]")]'
            type: xpath
          MultiFileField9_Excluded: 'oro_product[MultiFileField9_Excluded][0][file][file]'
          MultiFileField 1:
            locator: '//input[starts-with(@name, "oro_product[MultiFileField") and contains(@name, "[file][file]")]'
            type: xpath
          MultiImageField 1:
            locator: '//input[starts-with(@name, "oro_product[MultiImageField") and contains(@name, "[file][file]")]'
            type: xpath
          Product WYSIWYG Attribute Field:
            type: 'css'
            locator: 'textarea[id^="oro_product_field_wysiwyg"]'
            element: WysiwygField

          Multiple Files Attribute:
            type: xpath
            locator: '//input[contains(@name,"multiple_files_attribute") and contains(@type,"file")]'
          Multiple Images Attribute:
            type: xpath
            locator: '//input[contains(@name,"multiple_images_attribute") and contains(@type,"file")]'
          Multiple Files Field:
            type: xpath
            locator: '//input[contains(@name,"multiple_files_field") and contains(@type,"file")]'
          Multiple Images Field:
            type: xpath
            locator: '//input[contains(@name,"multiple_images_field") and contains(@type,"file")]'

    Multiple Files DAM Attribute:
      selector:
        type: xpath
        locator: '//div[contains(@id, "multiple_files_dam_attribute")]//tr[contains(@data-content, "[0]")]//a[contains(text(), "Choose File")]'
    Multiple Images DAM Attribute:
      selector:
        type: xpath
        locator: '//div[contains(@id, "multiple_images_dam_attribute")]//tr[contains(@data-content, "[0]")]//a[contains(text(), "Choose Image")]'
    Multiple Files DAM Field:
      selector:
        type: xpath
        locator: '//div[contains(@id, "multiple_files_dam_field")]//tr[contains(@data-content, "[0]")]//a[contains(text(), "Choose File")]'
    Multiple Images DAM Field:
      selector:
        type: xpath
        locator: '//div[contains(@id, "multiple_images_dam_field")]//tr[contains(@data-content, "[0]")]//a[contains(text(), "Choose Image")]'

    Multiple Files Attribute Label:
      selector:
        type: xpath
        locator: '//div[contains(@class, "responsive-cell")]/div[contains(@class, "dynamic-field") and .//div[contains(., "Multiple files attribute")]]'

    Multiple Files DAM Attribute Label:
      selector:
        type: xpath
        locator: '//div[contains(@class, "responsive-cell")]/div[contains(@class, "dynamic-field") and .//div[contains(., "Multiple files dam attribute")]]'

    Multiple Images Attribute Label:
      selector:
        type: xpath
        locator: '//div[contains(@class, "responsive-cell")]/div[contains(@class, "dynamic-field") and .//div[contains(., "Multiple images attribute")]]'

    Multiple Images DAM Attribute Label:
      selector:
        type: xpath
        locator: '//div[contains(@class, "responsive-cell")]/div[contains(@class, "dynamic-field") and .//div[contains(., "Multiple images dam attribute")]]'

    Multiple Files Field Label:
      selector:
        type: xpath
        locator: '//div[contains(@class, "responsive-cell")]/div[contains(@class, "dynamic-field") and .//div[contains(., "Multiple files field")]]'

    Multiple Files DAM Field Label:
      selector:
        type: xpath
        locator: '//div[contains(@class, "responsive-cell")]/div[contains(@class, "dynamic-field") and .//div[contains(., "Multiple files dam field")]]'

    Multiple Images Field Label:
      selector:
        type: xpath
        locator: '//div[contains(@class, "responsive-cell")]/div[contains(@class, "dynamic-field") and .//div[contains(., "Multiple images field")]]'

    Multiple Images DAM Field Label:
      selector:
        type: xpath
        locator: '//div[contains(@class, "responsive-cell")]/div[contains(@class, "dynamic-field") and .//div[contains(., "Multiple images dam field")]]'

    Multiple Files Attribute Grid:
      selector:
        type: 'xpath'
        locator: '//div[contains(@data-page-component-name,"attachment-files-grid:multiple_files_attribute")]'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid
    Multiple Images Attribute Grid:
      selector:
        type: 'xpath'
        locator: '//div[contains(@data-page-component-name,"attachment-images-grid:multiple_images_attribute")]'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid
    Multiple Files Field Grid:
      selector:
        type: 'xpath'
        locator: '//div[contains(@data-page-component-name,"attachment-files-grid:multiple_files_field")]'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid
    Multiple Images Field Grid:
      selector:
        type: 'xpath'
        locator: '//div[contains(@data-page-component-name,"attachment-images-grid:multiple_images_field")]'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid
    Multiple Files DAM Attribute Grid:
      selector:
        type: 'xpath'
        locator: '//div[contains(@data-page-component-name,"attachment-files-grid:multiple_files_dam_attribute")]'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid
    Multiple Images DAM Attribute Grid:
      selector:
        type: 'xpath'
        locator: '//div[contains(@data-page-component-name,"attachment-images-grid:multiple_images_dam_attribute")]'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid
    Multiple Files DAM Field Grid:
      selector:
        type: 'xpath'
        locator: '//div[contains(@data-page-component-name,"attachment-files-grid:multiple_files_dam_field")]'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid
    Multiple Images DAM Field Grid:
      selector:
        type: 'xpath'
        locator: '//div[contains(@data-page-component-name,"attachment-images-grid:multiple_images_dam_field")]'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid

    NameEnglishUnitedStatesValue:
      selector:
        type: 'xpath'
        locator: '//label[text() = "Name"]/ancestor::div[contains(@class, "control-group")]//div[text() = "English (United States)"]/following-sibling::div//input[contains(@class, "fallback-item-value-input")]'
    NameEnglishUnitedStatesFallback:
      selector:
        type: 'xpath'
        locator: '//label[text() = "Name"]/ancestor::div[contains(@class, "control-group")]//div[text() = "English (United States)"]/following-sibling::div//select/option[@selected]'
    NameDutchValue:
      selector:
        type: 'xpath'
        locator: '//label[text() = "Name"]/ancestor::div[contains(@class, "control-group")]//div[text() = "Dutch"]/following-sibling::div//input[contains(@class, "fallback-item-value-input")]'
    NameDutchFallback:
      selector:
        type: 'xpath'
        locator: '//label[text() = "Name"]/ancestor::div[contains(@class, "control-group")]//div[text() = "Dutch"]/following-sibling::div//select/option[@selected]'
    NameFrenchValue:
      selector:
        type: 'xpath'
        locator: '//label[text() = "Name"]/ancestor::div[contains(@class, "control-group")]//div[text() = "French"]/following-sibling::div//input[contains(@class, "fallback-item-value-input")]'
    NameFrenchFallback:
      selector:
        type: 'xpath'
        locator: '//label[text() = "Name"]/ancestor::div[contains(@class, "control-group")]//div[text() = "French"]/following-sibling::div//select/option[@selected]'

    URLSlugEnglishValue:
      selector:
        type: 'xpath'
        locator: '//label[contains(text(), "URL Slug")]/ancestor::div[contains(@class, "control-group")]//div[contains(@class, "fallback-item-value--first")]//input'
    URLSlugEnglishUnitedStatesValue:
      selector:
        type: 'xpath'
        locator: '//label[contains(text(), "URL Slug")]/ancestor::div[contains(@class, "control-group")]//div[text() = "English (United States)"]/following-sibling::div//input[contains(@class, "fallback-item-value-input")]'
    URLSlugEnglishUnitedStatesFallback:
      selector:
        type: 'xpath'
        locator: '//label[contains(text(), "URL Slug")]/ancestor::div[contains(@class, "control-group")]//div[text() = "English (United States)"]/following-sibling::div//input[@type="checkbox"]'

    RelatedProductsConfig:
      selector: 'form[name="related_items"]'
      class: Oro\Bundle\TestFrameworkBundle\Behat\Element\Form
      options:
        mapping:
          Maximum Number Of Assigned Items Use Default: 'related_items[oro_product___max_number_of_related_products][use_parent_scope_value]'
          Maximum Number Of Assigned Items: 'related_items[oro_product___max_number_of_related_products][value]'
          Enable Related Products Use Default: 'related_items[oro_product___related_products_enabled][use_parent_scope_value]'
          Enable Related Products: 'related_items[oro_product___related_products_enabled][value]'
          Maximum Items Use Default: 'related_items[oro_product___related_products_max_items][use_parent_scope_value]'
          Maximum Items: 'related_items[oro_product___related_products_max_items][value]'
          Minimum Items Use Default: 'related_items[oro_product___related_products_min_items][use_parent_scope_value]'
          Minimum Items: 'related_items[oro_product___related_products_min_items][value]'
          Assign in Both Directions Use Default: 'related_items[oro_product___related_products_bidirectional][use_parent_scope_value]'
          Assign in Both Directions: 'related_items[oro_product___related_products_bidirectional][value]'
          Show Add Button Use Default: 'related_items[oro_product___related_products_show_add_button][use_parent_scope_value]'
          Show Add Button: 'related_items[oro_product___related_products_show_add_button][value]'
          Use Slider On Mobile Use Default: 'related_items[oro_product___related_products_use_slider_on_mobile][use_parent_scope_value]'
          Use Slider On Mobile: 'related_items[oro_product___related_products_use_slider_on_mobile][value]'

    UpsellProductsConfig:
      selector: 'form[name="related_items"]'
      class: Oro\Bundle\TestFrameworkBundle\Behat\Element\Form
      options:
        mapping:
          Maximum Number Of Assigned Items Use Default: 'related_items[oro_product___max_number_of_upsell_products][use_parent_scope_value]'
          Maximum Number Of Assigned Items: 'related_items[oro_product___max_number_of_upsell_products][value]'
          Enable Up-sell Products Use Default: 'related_items[oro_product___upsell_products_enabled][use_parent_scope_value]'
          Enable Up-sell Products: 'related_items[oro_product___upsell_products_enabled][value]'
          Maximum Items Use Default: 'related_items[oro_product___upsell_products_max_items][use_parent_scope_value]'
          Maximum Items: 'related_items[oro_product___upsell_products_max_items][value]'
          Minimum Items Use Default: 'related_items[oro_product___upsell_products_min_items][use_parent_scope_value]'
          Minimum Items: 'related_items[oro_product___upsell_products_min_items][value]'
          Show Add Button Use Default: 'related_items[oro_product___upsell_products_show_add_button][use_parent_scope_value]'
          Show Add Button: 'related_items[oro_product___upsell_products_show_add_button][value]'
          Use Slider On Mobile Use Default: 'related_items[oro_product___upsell_products_use_slider_on_mobile][use_parent_scope_value]'
          Use Slider On Mobile: 'related_items[oro_product___upsell_products_use_slider_on_mobile][value]'

    Product Family Form:
      selector: 'form[name="oro_attribute_family"]'
      class: Oro\Bundle\TestFrameworkBundle\Behat\Element\Form
      options:
        mapping:
          Label: 'oro_attribute_family[labels][values][default]'
          Attribute Groups Attributes SEO:
            type: 'xpath'
            locator: '//div[@id[starts-with(.,"s2id_oro_attribute_family_attributeGroups_seo_attributeRelations-uid")]]//input'
            element: Select2EntitiesOrdered
          Attribute Groups Visible SEO: 'oro_attribute_family[attributeGroups][seo][isVisible]'
          General Attributes:
            type: 'xpath'
            locator: '//div[@id[starts-with(.,"s2id_oro_attribute_family_attributeGroups_general_attributeRelations-uid")]]//input'
            element: Select2EntitiesOrdered

    Quick Order Form:
      selector: "form[name='oro_product_quick_add']"
      class: Oro\Bundle\TestFrameworkBundle\Behat\Element\Form
      options:
        mapping:
          SKU1:
            type: 'css'
            locator: 'input[name="oro_product_quick_add[products][0][product]"]'
            element: ProductAutocomplete
          SKU2:
            type: 'css'
            locator: "input[name='oro_product_quick_add[products][1][product]']"
            element: ProductAutocomplete
          SKU3:
            type: 'css'
            locator: "input[name='oro_product_quick_add[products][2][product]']"
            element: ProductAutocomplete
          SKU4:
            type: 'css'
            locator: "input[name='oro_product_quick_add[products][3][product]']"
            element: ProductAutocomplete
          QTY1:
            type: 'css'
            locator: "input[name='oro_product_quick_add[products][0][quantity]']"
          QTY2:
            type: 'css'
            locator: "input[name='oro_product_quick_add[products][1][quantity]']"
          QTY3:
            type: 'css'
            locator: "input[name='oro_product_quick_add[products][2][quantity]']"
          QTY4:
            type: 'css'
            locator: "input[name='oro_product_quick_add[products][3][quantity]']"
          UNIT1:
            type: 'css'
            locator: 'select[name="oro_product_quick_add[products][0][unit]"]'
            element: Select
          UNIT2:
            type: 'css'
            locator: 'select[name="oro_product_quick_add[products][1][unit]"]'
            element: Select
          UNIT3:
            type: 'css'
            locator: 'select[name="oro_product_quick_add[products][2][unit]"]'
            element: Select
          UNIT4:
            type: 'css'
            locator: 'select[name="oro_product_quick_add[products][3][unit]"]'
            element: Select
          SUBTOTAL1:
            type: 'css'
            locator: 'div[data-ftid="oro_product_quick_add_products_0"] input[data-name="field__product-subtotal"]'
          SUBTOTAL2:
            type: 'css'
            locator: 'div[data-ftid="oro_product_quick_add_products_1"] input[data-name="field__product-subtotal"]'

    Quick Order Form > DeleteRow1:
      selector: '[data-content="oro_product_quick_add[products][0]"] button[data-role="row-remove"]'

    Quick Order Form > DeleteRow2:
      selector: '[data-content="oro_product_quick_add[products][1]"] button[data-role="row-remove"]'

    Quick Order Form > QTY1:
      selector:
        type: 'css'
        locator: "input[name='oro_product_quick_add[products][0][quantity]']"

    Quick Add Price Field:
      selector:
        type: 'xpath'
        locator: '//input[@data-name="field__product-subtotal"]'

    Quick Add Sku Field:
      selector:
        type: 'xpath'
        locator: '//input[@data-name="field__sku"]'

    Quick Add Form Validation:
      selector:
        type: 'xpath'
        locator: "//form[@name='oro_product_quick_add']//span[@class='validation-failed']//span[2]"

    Quick Add Copy Paste Form:
      selector: "form[name='oro_product_quick_add_copy_paste']"
      class: Oro\Bundle\TestFrameworkBundle\Behat\Element\Form
      options:
        mapping:
          Paste your order:
            type: 'css'
            locator: "textarea[name='oro_product_quick_add_copy_paste[copyPaste]']"
            element: Textarea

    Quick Add Copy Paste Validation:
      selector:
        type: 'xpath'
        locator: "//form[@name='oro_product_quick_add_copy_paste']//span[@class='validation-failed']/span/span[2]"

    Clear All:
      selector: ".quick-order-add__clear-button"

    Quick Order Import File Field:
      selector: "input[name='oro_product_quick_add_import_from_file[file]']"

    Add More Rows:
      selector: ".add-list-item"

    Create Order From Quick Order:
      selector: "a[id^='transition-b2b_flow_checkout-start_from_quickorderform']"

    ProductPriceCollection:
      class: 'Oro\Bundle\ProductBundle\Tests\Behat\Element\ProductPriceCollection'

    AdditionalUnitCollection:
      class: 'Oro\Bundle\ProductBundle\Tests\Behat\Element\AdditionalUnitCollection'

    Show Variants Dropdown:
      selector: ".content-variant-add-btn-container .dropdown-toggle"

    Product Collection Preview Grid:
      selector: 'div[id*="grid-product-collection-content-variant-grid-"]'

    AdvancedFilter:
      selector: '.btn .fa-filter'

    Enable Related Products:
      selector: '[name="related_items[oro_product___related_products_enabled][value]"]'

    Field Condition:
      selector:
        type: xpath
        locator: '//li[@data-criteria="condition-item" and contains(., "Field Condition")]'

    Data audit:
      selector:
        type: xpath
        locator: '//li[@data-criteria="condition-data-audit" and contains(., "Data audit")]'

    Drop condition here:
      selector: ".condition-container"

    Choose a field..:
      selector: "#select2-drop-mask"

    AllAddedCounter:
      selector: 'a[data-role="tab-filtered"] span[data-role="counter"]'

    ExcludedCounter:
      selector: 'a[data-role="tab-excluded"] span[data-role="counter"]'

    ManuallyAddedCounter:
      selector: 'a[data-role="tab-included"] span[data-role="counter"]'

    ActiveGridFilters:
      selector: 'div.tab-pane.active div.filter-box'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\GridFilters

    PreviewResults:
      selector:
        type: xpath
        locator: '//a[contains(@class, "btn") and contains(., "Preview Results")]'

    SegmentName:
      selector: 'div.control-group:contains("Segment name") input[type="text"]'

    SegmentNameWithPlaceholder:
      selector: 'div.control-group:contains("Segment name") input[placeholder="Will be autogenerated"]'

    SegmentNameWithoutPlaceholder:
      selector: 'div.control-group:contains("Segment name") input:not([placeholder])'

    AddButton:
      selector: 'div.tab-pane.active a:contains("Add")'

    ActiveGrid:
      selector: 'div.tab-pane.active div.oro-datagrid'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid

    Add Products Popup:
      selector: 'div.ui-dialog div.oro-datagrid'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid

    AddProductsPopupFilters:
      selector: 'div.ui-dialog div.filter-box'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\GridFilters

    Reset:
      selector: "a.btn.filter-reset"

    SKU:
      selector:
        type: xpath
        locator: '//div[contains(@class, "select2-result-label") and contains(., "SKU")]'

    Product Owner:
      selector:
        type: xpath
        locator: '//*[starts-with(@id, "s2id_oro_product_owner")]/a/span[1]'

    Inventory Status:
      selector:
        type: xpath
        locator: '//div[contains(@class, "select2-result-label") and contains(., "Inventory Status")]'

    Id:
      selector:
        type: xpath
        locator: '//div[contains(@class, "select2-result-label") and contains(., "Id")]'

    Content Node Form Slug Fallbacks:
      selector:
        type: xpath
        locator: '//label[text()="URL Slug"]/../..//button[contains(@class, "fallback-status")]'

    Content Node Form:
      selector: 'form[name="oro_web_catalog_content_node"]'
      class: Oro\Bundle\TestFrameworkBundle\Behat\Element\Form
      options:
        mapping:
          Titles: 'oro_web_catalog_content_node[titles][values][default]'
          Url Slug: 'oro_web_catalog_content_node[slugPrototypesWithRedirect][slugPrototypes][values][default]'
          First Url Slug: 'oro_web_catalog_content_node[slugPrototypesWithRedirect][slugPrototypes][values][localizations][1][value]'
          First Url Slug Use Default: 'oro_web_catalog_content_node[slugPrototypesWithRedirect][slugPrototypes][values][localizations][1][use_fallback]'
          Second Url Slug: 'oro_web_catalog_content_node[slugPrototypesWithRedirect][slugPrototypes][values][localizations][2][value]'
          Second Url Slug Use Default: 'oro_web_catalog_content_node[slugPrototypesWithRedirect][slugPrototypes][values][localizations][2][use_fallback]'
          Meta Title: 'oro_web_catalog_content_node[metaTitles][values][default]'
          Meta Description: 'oro_web_catalog_content_node[metaDescriptions][values][default]'
          Meta Keywords: 'oro_web_catalog_content_node[metaKeywords][values][default]'
          Default Product Collection Segment Name:
            type: css
            locator: '.content-variant-item.content-variant-item-default [id*="productCollectionSegment_name"]'
          Product Collection Segment Name:
            type: css
            locator: '.content-variant-item:not([class*="content-variant-item-default"]) [id*="productCollectionSegment_name"]'
          First System Page Customer Group:
            type: css
            locator: 'div.content-variant-item:first-child input[data-name="field__customer-group"]'
            element: Select2Entity
          First Content Variant Restrictions Customer:
            type: css
            locator: 'div.content-variant-item:first-child .scope-collection input[data-name="field__customer"]'
            element: Select2Entity
          Content Node Restrictions Customer:
            type: css
            locator: 'div[data-ftid="oro_web_catalog_content_node_scopes"] input[data-name="field__customer"]'
            element: Select2Entity
          Landing Page:
            type: css
            locator: 'div.content-variant-item:first-child input[data-name="field__cms-page"]'
            element: Select2Entity
          Product:
            type: css
            locator: 'div.content-variant-item:first-child input[data-name="field__product-page-product"]'
            element: Select2Entity

    RemoveFilterButton:
      selector: '.conditions-group .condition .btn-close'

    Page Templates Form:
      selector: 'form[name="theme"]'
      class: Oro\Bundle\TestFrameworkBundle\Behat\Element\Form
      options:
        mapping:
          Use Default: 'theme[oro_frontend___page_templates][use_parent_scope_value]'
          Product Page: 'theme[oro_frontend___page_templates][value][oro_product_frontend_product_view]'

    Remove Variant Button:
      selector: 'button.btn-remove-variant'

    Remove First Product Collection Variant Button:
      selector: 'button.btn-remove-variant[data-related="oro_web_catalog_content_node[contentVariants][0]"]'

    Search Button:
      selector: 'button[name="oro_website_search_search_button"]'

    Search Widget Input:
      selector: '.search-widget__input'

    Search Autocomplete:
      selector: '.search-autocomplete'

    Search Autocomplete Item:
      selector: '.search-autocomplete .search-autocomplete__item'

    Search Autocomplete Item Selected:
      selector: '.search-autocomplete [aria-selected="true"]'

    Search Autocomplete Product:
      selector: '.search-autocomplete .search-autocomplete-product'

    Search Autocomplete Product Image:
      selector: '.search-autocomplete .search-autocomplete-product__image img'

    Search Autocomplete Product Picture:
      selector: '.search-autocomplete .search-autocomplete-product__image picture'

    Search Autocomplete Product Price:
      selector: '.search-autocomplete .search-autocomplete-product__price'

    Search Autocomplete Inventory Status:
      selector: '.search-autocomplete .search-autocomplete-product__status'

    Search Autocomplete Category Image:
      selector: '.search-autocomplete .search-autocomplete-category__image'

    Search Autocomplete Category Head:
      selector: '.search-autocomplete .search-autocomplete-category__head'

    Search Autocomplete Category Body:
      selector: '.search-autocomplete .search-autocomplete-category__body'

    Search Autocomplete Highlight:
      selector: '.search-autocomplete .search-autocomplete__highlight'

    Search Autocomplete Submit:
      selector: '.search-autocomplete .search-autocomplete__submit'

    Search Autocomplete No Found:
      selector: '.search-autocomplete .search-autocomplete__no-found'

    # front products grid
    ProductFrontendGrid:
      selector: 'div[data-page-component-name="frontend-catalog-allproducts-grid"], div[data-page-component-name="frontend-product-search-grid"], div[data-page-component-name="order-products-previously-purchased-grid"]'
      class: Oro\Bundle\ProductBundle\Tests\Behat\Element\FrontendProductGrid

    ProductFrontendGridFilters:
      selector: 'div[data-page-component-name="frontend-product-search-grid"] div.filter-box'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\GridFilters

    ProductFrontendGridFiltersState:
      selector: 'div[data-page-component-name="frontend-product-search-grid"] .filters-state'

    ProductFrontendGridToolbarActions:
      selector: 'div[data-page-component-name="frontend-product-search-grid"] div.toolbar div.actions-panel'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\GridToolbarActions

    ProductFrontendGridFilterItem:
      selector: 'span.filter-criteria-hint-item'
      class: Oro\Bundle\FrontendBundle\Tests\Behat\Element\GridFilterItem

    ProductFrontendGridFiltersBlock:
      selector: 'div.filter-container'

    ProductFrontendGridFiltersButton:
      selector: 'div.filter-container > button.select-filter-widget'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\GridFiltersButton

    ProductFrontendGridFilterManager:
      selector: 'div.oro-datagrid'
      class: Oro\Bundle\ProductBundle\Tests\Behat\Element\FrontendProductGrid

    ProductFrontendGridTable:
      selector: 'div.grid-main-container.table'
      class: Oro\Bundle\TestFrameworkBundle\Behat\Element\Table

    ProductFrontendMassActionHeadCheckbox:
      selector: 'div.datagrid-massaction button'

    ProductFrontendMassActionHeadButtonTablet:
      selector: '.product-action-area .product-action > .btn'

    ProductFrontendMassActionButton:
      selector: '.datagrid-massaction button.dropdown-toggle'

    ProductFrontendGridMassActionMenu:
      selector: 'div.datagrid-massaction__dropdown-menu'

    ProductFrontendSelectRowCell:
      selector: '[data-role="select-row-cell"]'

    ProductFrontendGridMassActionSearch:
      selector: '[data-role="search-container"] .input'

    ProductFrontendGridMassActionSearchInDropdown:
      selector: '[data-sticky-name="bottom-sticky-panel"] .datagrid-massaction .dropdown-menu [data-role="search-container"] .input'

    ProductFrontendGridMassActionSearchInDialog:
      selector: '[role="dialog"] [data-role="search-container"] .input'

    ProductFrontendGridMassActionItem:
      selector: '.dropdown-item'

    ProductFrontendGridMassActionDefaultItem:
      selector: '.dropdown-item[data-label]:first-child'

    ProductFrontendMassAddPanelInBottomSticky:
      selector: '[data-sticky-name="bottom-sticky-panel"] .dropup .action'

    ProductFrontendMassOpenInDropdown:
      selector: '[data-sticky-name="bottom-sticky-panel"] .dropdown-toggle'

    ProductFrontendMassOpenInDialog:
      selector: '[data-sticky-name="bottom-sticky-panel"] [data-fullscreen-trigger]'

    ProductFrontendMassClosePanel:
      selector: '[data-sticky-name="bottom-sticky-panel"] [data-undo-selection]'

    ProductFrontendMassPanelInBottomSticky:
      selector: '[data-sticky-name="bottom-sticky-panel"] .datagrid-massaction'

    ProductFrontendMassMenuInBottomSticky:
      selector: '[data-sticky-name="bottom-sticky-panel"] .datagrid-massaction .dropdown-menu'

    ProductFrontendGridRow:
      selector: '.grid-row'
      class: Oro\Bundle\ProductBundle\Tests\Behat\Element\FrontendProductGridRow

    Frontend Product Grid Export Button:
      selector: 'button.export-button'

    ProductRelatedProducts:
      selector: '.product-view__related-products .embedded-list__item'

    ProductUpsellProducts:
      selector: '.product-view__upsell-products .embedded-list__item'

    Related Products Slider:
      selector: '.product-view__related-products .embedded-list-slider'

    Up-sell Products Slider:
      selector: '.product-view__upsell-products .embedded-list-slider'

    ProductRelatedItem:
      selector: '.product-item'

    ProductFrontendRow:
      selector: '.product-list .product-item.grid-row'

    ProductFrontendRowSku:
      selector: '.product-item__primary-content .product-item__sku-value'

    Galery View Button:
      selector:
        type: xpath
        locator: '//a[contains (@data-catalog-view-trigger,"gallery-view")]'
    NoImage View Button:
      selector:
        type: xpath
        locator: '//a[contains (@data-catalog-view-trigger,"no-image-view")]'
    List View Button:
      selector:
        type: xpath
        locator: '//a[contains (@data-catalog-view-trigger,"list-view")]'

    NewArrivalSticker:
      selector: '.product-sticker--icon-new_arrival'

    NewArrivalText:
      selector: '.product-sticker--text-new_arrival'

    ViewDetails:
      selector: 'a.view-product'

    ProductItem:
      selector: 'div.product-item'

    ProductAutocomplete:
      class: Oro\Bundle\ProductBundle\Tests\Behat\Element\ProductAutocomplete

    ProductLineItem:
      selector: 'table tr.grid-row'

    Product Shopping List Form:
      class: 'Oro\Bundle\TestFrameworkBundle\Behat\Element\Form'
      selector:
        locator: '//form[@name="oro_product_frontend_line_item"]'
        type: xpath
      options:
        mapping:
          Quantity: 'oro_product_frontend_line_item[quantity]'
          Unit: 'oro_product_frontend_line_item[unit]'

    Product Shopping List Dropdown:
      selector:
        locator: '//form[@name="oro_product_frontend_line_item"]//div[contains(@class,"dropdown-menu")]'
        type: 'xpath'

    Request A Quote Button:
      selector:
        locator: '//a[@data-url="oro_rfp_frontend_request_create"]'
        type: 'xpath'

    Product Collection Variant Label:
      selector:
        type: 'xpath'
        locator: '//label[contains(@class,"content-variant-item-title") and contains(., "Product Collection")]'

    Edit within Web Catalog:
      selector: 'a.operation-button:contains("Edit within Web Catalog")'

    AttributeGroupCollection:
      class: Oro\Bundle\ProductBundle\Tests\Behat\Element\AttributeGroupCollection

    T_shirt attribute group:
      selector: "select[name='oro_attribute_family[attributeGroups][t_shirt_group][attributeRelations][]']"

    General Group Attributes:
      selector: "select[name='oro_attribute_family[attributeGroups][general][attributeRelations][]']"

    ImageCollection:
      class: Oro\Bundle\ProductBundle\Tests\Behat\Element\ImagesCollection

    ImageCollectionRow:
      selector:
        type: 'xpath'
        locator: '//tr[contains(@data-content,"images")]'

    ImageCollectionFileField:
      selector:
        type: 'xpath'
        locator: '//input[contains(@id,"image_file")]'
      class: Oro\Bundle\TestFrameworkBundle\Behat\Element\FileField

    Line Item Form:
      selector: 'div.line-item-form'
      class: Oro\Bundle\ProductBundle\Tests\Behat\Element\LineItemForm

    Default Page:
      selector: '.product-view__attributes-container'
      class: Oro\Bundle\ProductBundle\Tests\Behat\Element\DefaultTemplate

    Short Page:
      selector: '.product-view.short-theme'
      class: Oro\Bundle\ProductBundle\Tests\Behat\Element\ShortTemplate

    List Page:
      selector: '.product-view__additional'
      class: Oro\Bundle\ProductBundle\Tests\Behat\Element\ListTemplate

    Two Columns Page:
      selector: '.product-view__attribute-box-wrapper'
      class: Oro\Bundle\ProductBundle\Tests\Behat\Element\TwoColumnsTemplate

    Default Page Prices:
      selector: '.product-prices__table'

    Product General Information:
      selector: '.product-view__main'

    Short Page Prices:
      selector: '.product-view__content .product-price'

    List Page Prices:
      selector: '.product-view__content .product-price'

    Two Columns Page Prices:
      selector: '.product-view__content .product-price'

    Color Product Attribute:
      selector:
        type: 'xpath'
        locator: '//*[contains(@id, "oro_product_variantFields_Color") and @data-name="field__is-selected"]'

    Size Product Attribute:
      selector:
        type: 'xpath'
        locator: '//*[contains(@id, "oro_product_variantFields_Size") and @data-name="field__is-selected"]'

    Promotions Form:
      selector: 'form[name="product_promotions"]'
      class: Oro\Bundle\TestFrameworkBundle\Behat\Element\Form
      options:
        mapping:
          Product Segment Default: 'product_promotions[oro_product___new_arrivals_products_segment_id][use_parent_scope_value]'
          Product Segment: 'product_promotions[oro_product___new_arrivals_products_segment_id][value]'
          Maximum Items Default: 'product_promotions[oro_product___new_arrivals_max_items][use_parent_scope_value]'
          Maximum Items: 'product_promotions[oro_product___new_arrivals_max_items][value]'
          Minimum Items Default: 'product_promotions[oro_product___new_arrivals_min_items][use_parent_scope_value]'
          Minimum Items: 'product_promotions[oro_product___new_arrivals_min_items][value]'
          Show On Product View Default: 'product_promotions[oro_product___product_promotion_show_on_product_view][use_parent_scope_value]'
          Show On Product View: 'product_promotions[oro_product___product_promotion_show_on_product_view][value]'

    Featured Products Form:
      selector: 'form[name="featured_products"]'
      class: Oro\Bundle\TestFrameworkBundle\Behat\Element\Form
      options:
        mapping:
          Product Segment Default: 'featured_products[oro_product___featured_products_segment_id][use_parent_scope_value]'
          Product Segment: 'featured_products[oro_product___featured_products_segment_id][value]'

    Product Images Form:
      selector: 'form[name="product_images"]'
      class: Oro\Bundle\TestFrameworkBundle\Behat\Element\Form
      options:
        mapping:
          Product Images Default: 'product_images[oro_product___image_preview_on_product_listing_enabled][use_parent_scope_value]'
          Product Images: 'product_images[oro_product___image_preview_on_product_listing_enabled][value]'
          Popup Gallery Default: 'product_images[oro_product___popup_gallery_on_product_view][use_parent_scope_value]'
          Popup Gallery On Product View: 'product_images[oro_product___popup_gallery_on_product_view][value]'

    RequestAQuoteProducts:
      selector: '.page-content .request-form [data-role="product-container"]'

    RequestAQuoteProductLine:
      selector: '[data-role="line-item"]'

    RequestAQuoteProductLineName:
      selector: '.request-form-product__item--link .request-form-link'

    RequestAQuoteProductLineQuantity:
      selector: '.request-form-product__item--quantity .request-form-quantity__total'

    RequestAQuoteProductLineUnit:
      selector: '.request-form-product__item--quantity .request-form-quantity__units'

    ProductQuantityField:
      selector: '.product-item__qty__current-grid input'

    ProductLineItemForm:
      selector: '[name="oro_product_frontend_line_item"]'
      class: Oro\Bundle\TestFrameworkBundle\Behat\Element\Form
      options:
        mapping:
          Quantity: 'oro_product_frontend_line_item[quantity]'
          Unit: 'oro_product_frontend_line_item[unit]'

    FrontendProductViewQuantityField:
      selector: '[name="oro_product_frontend_line_item[quantity]"]'

    New Arrivals Block:
      selector:
        type: xpath
        locator: '//div[contains(concat(" ", @class, " "), " embedded-list ")]/h2/span[text()="New Arrivals"]/../../div'

    Featured Products Block:
      selector:
        type: xpath
        locator: '//div[contains(concat(" ", @class, " "), " embedded-list ")]/h2/span[text()="Featured Products"]/../../div'

    Top Selling Items Block:
      selector:
        type: xpath
        locator: '//div[contains(concat(" ", @class, " "), " embedded-list ")]/h2/span[text()="Top Selling Items"]/../../div'

    Related Products Block:
      selector:
        type: xpath
        locator: '//div[contains(concat(" ", @class, " "), " embedded-list ")]/h2/span[text()="Related Products"]/../../div'

    Upsell Products Block:
      selector:
        type: xpath
        locator: '//div[contains(concat(" ", @class, " "), " embedded-list ")]/h2/span[text()="Up-sell Products"]/../../div'

    EmbeddedProduct:
      selector: 'div.product-item'

    MassActionLimit:
      selector: 'input[id*="mass_action_limitation_value"]'

    GridPagination:
      selector: 'div.tab-pane.active div.toolbar div.pagination input'

    Clear Brand:
          selector:
            type: xpath
            locator: '//div[contains(@id,"s2id_oro_product_brand-uid")]//abbr[@class="select2-search-choice-close"]'

    Brand Form Name Fallbacks:
      selector:
        type: xpath
        locator: '//label[text()="Name"]/ancestor::div[contains(@class, "control-group-oro_locale_localized_fallback_value_collection")]//button[contains(@class, "fallback-status")]'

    Brand Select Grid:
      selector: 'div[data-page-component-name="brand-select-grid"] div.oro-datagrid'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid

    Brand Form:
      selector: 'form[name="oro_product_brand"]'
      class: Oro\Bundle\TestFrameworkBundle\Behat\Element\Form
      options:
        mapping:
          Name: 'oro_product_brand[names][values][default]'
          Name English: 'oro_product_brand[names][values][localizations][1][value]'
          Name Zulu: 'oro_product_brand[names][values][localizations][2][value]'
          Name English Use Default: 'oro_product_brand[names][values][localizations][1][use_fallback]'
          Name Zulu Use Default: 'oro_product_brand[names][values][localizations][2][use_fallback]'
          Short Description: 'oro_product_brand[shortDescriptions][values][default]'
          Short Description English: 'oro_product_brand[shortDescriptions][values][localizations][1][value]'
          Short Description English Use Default: 'oro_product_brand[shortDescriptions][values][localizations][1][fallback]'
          Meta Title: 'oro_product_brand[metaTitles][values][default]'
          Meta Description: 'oro_product_brand[metaDescriptions][values][default]'
          Meta Keywords: 'oro_product_brand[metaKeywords][values][default]'
          Description:
            type: 'css'
            locator: '[name="oro_product_brand[descriptions][values][default][wysiwyg]"]'
            class: Oro\Bundle\CMSBundle\Tests\Behat\Element\WysiwygField
          Description English:
            type: 'css'
            locator: '[name="oro_product_brand[descriptions][values][localizations][1][value][wysiwyg]"]'
            class: Oro\Bundle\CMSBundle\Tests\Behat\Element\WysiwygField
          Description English Use Default: 'oro_product_brand[descriptions][values][localizations][1][fallback]'

    Brand Filter:
      selector:
        type: xpath
        locator: '//div[contains(@class,"filter-item")]/*[contains(@class,"filter-select")]/span[contains(text(),"Filter By Brand")]/..'

    Brand Filter Toggle Icon:
      selector:
        type: xpath
        locator: '//div[contains(@class,"filter-item")]/*[contains(@class,"filter-select")]/span[contains(text(),"Filter By Brand")]/../*[contains(@class,"filter-criteria-selector-icon-wrap")]'

    Product Collection Grid Form:
      selector: 'form[name="oro_web_catalog_content_node"]'
      class: Oro\Bundle\TestFrameworkBundle\Behat\Element\Form
      options:
        mapping:
          PSKU1:
            locator: '//tbody/tr[.//td[contains(text(), "PSKU1")]]//input[contains (@name,"sortOrder_")]'
            type: xpath
          PSKU2:
            locator: '//tbody/tr[.//td[contains(text(), "PSKU2")]]//input[contains (@name,"sortOrder_")]'
            type: xpath
          PSKU3:
            locator: '//tbody/tr[.//td[contains(text(), "PSKU3")]]//input[contains (@name,"sortOrder_")]'
            type: xpath
          PSKU4:
            locator: '//tbody/tr[.//td[contains(text(), "PSKU4")]]//input[contains (@name,"sortOrder_")]'
            type: xpath
          PSKU5:
            locator: '//tbody/tr[.//td[contains(text(), "PSKU5")]]//input[contains (@name,"sortOrder_")]'
            type: xpath

    Product Collection Grid PSKU4 input:
      selector:
        locator: '//tbody/tr[.//td[contains(text(), "PSKU4")]]//input[contains (@name,"sortOrder_")]'
        type: xpath

    Product Item Preview:
      selector: '.product-item .product-item__preview'

    Product Item Gallery Trigger:
      selector: '.product-item [data-trigger-gallery-open],div.product-item__image-holder--tiny [data-role^="data-trigger-gallery-open-product"]'

    Product Form Slug Fallbacks:
      selector:
        type: xpath
        locator: '//label[text()="URL Slug"]/ancestor::div[contains(@class, "control-group-oro_redirect_localized_slug_with_redirect")]//button[contains(@class, "fallback-status")]'

    Product Names Fallbacks:
      selector:
        type: xpath
        locator: '//label[text()="Name"]/ancestor::div[contains(@class, "control-group-oro_locale_localized_fallback_value_collection")]//button[contains(@class, "fallback-status")]'

    Content Node Titles Localization Form Fallbacks:
      selector:
        type: xpath
        locator: '//label[text()="Titles"]/ancestor::div[contains(@class, "control-group-oro_locale_localized_fallback_value_collection")]//button[contains(@class, "fallback-status")]'

    Content Node Titles Localization Form:
      selector: 'form[name="oro_web_catalog_content_node"]'
      class: Oro\Bundle\TestFrameworkBundle\Behat\Element\Form
      options:
        mapping:
          Default Value: 'oro_web_catalog_content_node[titles][values][default]'
          Use Default: 'oro_web_catalog_content_node[titles][values][localizations][1][use_fallback]'
          English (United States): 'oro_web_catalog_content_node[titles][values][localizations][1][value]'
          French Default: 'oro_web_catalog_content_node[titles][values][localizations][2][use_fallback]'
          French: 'oro_web_catalog_content_node[titles][values][localizations][2][value]'

    Create Product Plus Button:
      selector: '.content-variant-item-default .entity-create-btn'

    Product Slider:
      selector: '.product-view-media-container .product-view-media-slider'

    Product View Gallery Trigger:
      selector: '.product-view-media-container [data-trigger-gallery-open]'

    Product Main Image:
      selector: '.product-view-media-wrapper .product-view-media-gallery__image'

    Product Main Image In Tab:
      selector: '.tab-content__wrapper .product-view-media-gallery__image'

    Zoom Container:
      selector: '.zoomWindowContainer'

    Navbar:
      selector: '.navbar'

    Product navbar:
      selector: '#product-edit.navbar'

    Additional Units Form Section:
      selector:
        type: xpath
        locator: '//label[contains(., "Additional Units")]/ancestor::div[contains(@class, "control-group")]'

    Brand field:
      selector:
        type: xpath
        locator: '//label[text()="Brand"]/../..//div[contains(@id, "s2id_oro_product_brand-uid")]'

    Brand humburger button:
      selector:
        type: xpath
        locator: '//label[text()="Brand"]/../..//button[contains(@class, "entity-select-btn")]'

    Tax code humburger button:
      selector:
        type: xpath
        locator: '//label[text()="Tax Code"]/../..//button[contains(@class, "entity-select-btn")]'

    Frontend Product Grid MultipleChoice:
      selector: 'div.filter-item'
      class: Oro\Bundle\ProductBundle\Tests\Behat\Element\MultipleChoice

    Frontend Product Grid Sorter:
      selector: 'div.datagrid-tool div[data-grid-sorting] select'
      class: Oro\Bundle\FormBundle\Tests\Behat\Element\Select

    Frontend Product Grid Sorter Action:
      selector: 'div.datagrid-tool div[data-grid-sorting] .select2-choice'

    Shirt_101 Matrix Grid Order Form:
      selector: 'form[name="matrix_collection"]'
      class: Oro\Bundle\TestFrameworkBundle\Behat\Element\Form
      options:
        mapping:
          Green Yes Quantity: 'matrix_collection[rows][0][columns][1][quantity]'

    Product Image Placeholder Config:
      selector: 'form[name="theme"]'
      class: Oro\Bundle\TestFrameworkBundle\Behat\Element\Form
      options:
        mapping:
          Image: 'theme[oro_product___product_image_placeholder][value][file]'

    Display Simple Variations Form:
          selector: 'form[name="configurable_products"]'
          class: Oro\Bundle\TestFrameworkBundle\Behat\Element\Form
          options:
            mapping:
              Display Simple Variations Default: 'configurable_products[oro_product___display_simple_variations][use_parent_scope_value]'
              Display Simple Variations: 'configurable_products[oro_product___display_simple_variations][value]'

    Uploaded Product Image:
      selector:
        type: xpath
        locator: '//img[contains (@src,"/media/cache/attachment")]'

    Empty Product Image:
      selector:
       type: xpath
       locator: '//img[contains (@src,"no_image.png")]'

    Unit Of Quantity:
      selector:
        type: xpath
        locator: '//select[@name="oro_product[primaryUnitPrecision][unit]"]'

    Price Unit:
      selector: 'div[id*="uniform-oro_product_prices_0_unit-"]'

    Add Product Price:
      selector:
        type: 'xpath'
        locator: '//div[contains (@id,"oro_product_prices-uid")]/../a'

    Remove Product Price Button:
      selector:
        type: 'xpath'
        locator: '//div[contains (@id,"oro_product_prices-uid")]//button[contains(@class,"removeRow")]'

    Product Preview Image:
      selector:
        type: xpath
        locator: '//img[contains(@class, "product-item__preview-image")]'

    Product Preview Picture:
      selector:
        type: xpath
        locator: '//picture[contains(@class, "product-item__preview-picture")]'

    Product View Picture:
      selector:
        type: xpath
        locator: '//picture'

    Grid Settings SelectField:
      selector:
        type: xpath
        locator: '//label[contains(., "SelectField")]/ancestor::td[contains(@class, "title-cell")]'

    FrontendProductGridFilters:
      selector: 'div[data-bound-component="oroproduct/js/app/datagrid/backend-datagrid-component"] div.filter-box'
      class: Oro\Bundle\ProductBundle\Tests\Behat\Element\FrontendProductGridFilters

    Shopping list line item:
      selector: '.grid-row'

    Remove Additional Unit Precision 1:
        selector: 'tr[data-content="oro_product[additionalUnitPrecisions][0]"] .removeLineItem'

    Remove Image 1:
        selector: 'tr[data-content="oro_product[images][0]"] .removeRow'

    Product Image Watermark Config:
      selector: 'form[name="product_images"]'
      class: Oro\Bundle\TestFrameworkBundle\Behat\Element\Form
      options:
        mapping:
          File: 'product_images[oro_product___product_image_watermark_file][value][file]'
          Use Default: 'product_images[oro_product___product_image_watermark_file][use_parent_scope_value]'

    Product Form Images Section:
      class: Oro\Bundle\TestFrameworkBundle\Behat\Element\Element
      selector:
        type:    'xpath'
        locator: '//h4[contains(.,"Images")]/..'

    Product General Section:
      class: Oro\Bundle\TestFrameworkBundle\Behat\Element\Element
      selector:
        type: 'xpath'
        locator: '//h4[contains(.,"General")]/parent::*'

    Add Product Templates Button:
      selector: 'div[id^="oro_product_productTemplates-uid"] button'

    Product Families Grid:
      selector: 'div[data-page-component-name="attribute-family-grid"]'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid

    Product Images Table:
      class: Oro\Bundle\OrderBundle\Tests\Behat\Element\CollectionTable
      selector: 'div.image-collection > table'

    Active Slide:
      class: Oro\Bundle\TestFrameworkBundle\Behat\Element\Element
      selector: '.slick-slide.slick-current.slick-active'

    Product WYSIWYGField Attribute Content:
      selector: "textarea[id^='oro_product_WYSIWYGField']"

    Digital Asset Choose:
      selector: 'a[data-role="digital-asset-choose"]:not([class*="hide"])'

    Digital Asset Choose Another:
      selector: 'a[data-role="digital-asset-update"]:not([class*="hide"])'

    Short Description With Strong Tag:
      selector:
        type: 'xpath'
        locator: '//div[contains(@class, "product__description-content")]//strong'

    Drawing Field:
      selector:
        type: xpath
        locator: '//div[contains(@class, "responsive-cell")]/div[contains(@class, "control-group") and .//label[contains(., "Drawing")]]'

    Document Field:
      selector:
        type: xpath
        locator: '//div[contains(@class, "responsive-cell")]/div[contains(@class, "control-group") and .//label[contains(., "Document")]]'

    Drawing Backoffice Field:
      selector:
        type: xpath
        locator: '//div[contains(@class, "responsive-cell")]/div[contains(@class, "attribute-item") and .//label[contains(., "Drawing")]]'

    Document Backoffice Field:
      selector:
        type: xpath
        locator: '//div[contains(@class, "responsive-cell")]/div[contains(@class, "attribute-item") and .//label[contains(., "Document")]]'

    MultipleFiles Field:
      selector:
        type: xpath
        locator: '//div[contains(@class, "responsive-cell")]/div[contains(@class, "control-group") and .//label[contains(., "MultipleFiles")]]'

    MultipleFiles Backoffice Field:
      selector:
        type: xpath
        locator: '//div[contains(@class, "responsive-cell")]/div[contains(@class, "dynamic-field") and .//div[contains(., "MultipleFiles")]]'

    MultipleImages Field:
      selector:
        type: xpath
        locator: '//div[contains(@class, "responsive-cell")]/div[contains(@class, "control-group") and .//label[contains(., "MultipleImages")]]'

    MultipleImages Backoffice Field:
      selector:
        type: xpath
        locator: '//div[contains(@class, "responsive-cell")]/div[contains(@class, "dynamic-field") and .//div[contains(., "MultipleImages")]]'

    Drawing Storefront Field:
      selector:
        type: xpath
        locator: '//span[contains(@class, "product-view-attribute") and contains(., "Drawing")]/parent::div/parent::div'

    Document Storefront Field:
      selector:
        type: xpath
        locator: '//span[contains(@class, "product-view-attribute") and contains(., "Document")]/parent::div'

    MultipleImages Storefront Field:
      selector:
        type: xpath
        locator: '//div[contains(@class, "product-view-attribute") and contains(., "MultipleImages")]/parent::div'

    MultipleFiles Storefront Field:
      selector:
        type: xpath
        locator: '//div[contains(@class, "product-view-attribute") and contains(., "MultipleFiles")]/parent::div'

    Product Segment Content Widget Slider Next:
      selector: 'div[data-page-component-name="segment-product-list-0"] button.slick-next'

    Import Choose File Link:
      selector: ".import-widget-content .tab-pane.active .input-widget-file"

    Import Choose File:
      selector: ".import-widget-content .tab-pane.active input[id^='oro_importexport_import_file']"
      class: Oro\Bundle\TestFrameworkBundle\Behat\Element\FileField

    Multi File Grid:
      selector:
        type: 'xpath'
        locator: '//div[contains(@data-page-component-name,"attachment-files-grid:MultiFileField2")]'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid

    DAM Multi File Grid:
      selector:
        type: 'xpath'
        locator: '//div[contains(@data-page-component-name,"attachment-files-grid:DamMultiFileField3")]'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid

    cat1 wysiwyg file:
      selector:
        type: 'xpath'
        locator: '//a[contains(@title,"cat1_wysiwyg_file")]'

    cat1 wysiwyg image:
      selector:
        type: 'xpath'
        locator: '//img[contains(@alt,"cat1_wysiwyg_image")]'

    cat2 wysiwyg image:
      selector:
        type: 'xpath'
        locator: '//img[contains(@alt,"cat2_wysiwyg_image")]'

    More Link:
      selector: 'a.collapse-toggle'

    Filters In Sidebar:
      selector: '.page-sidebar .product-filters-sidebar .filter-box'

    Toggle Sidebar Button:
      selector: '.toggle-sidebar-btn[title="Expand Filters"]'

    Toggle Sidebar Button Expanded:
      selector: '.toggle-sidebar-btn[title="Collapse Filters"]'

    Apply Filters Button:
      selector: '.product-filters-sidebar .filter-box [data-role="apply"]'

    Catalog Sidebar Hints Container:
      selector: '[data-hint-container="frontend-product-search-grid"]'
      class: Oro\Bundle\ProductBundle\Tests\Behat\Element\FrontendProductGridFilters

    ImageField Image:
      selector:
        type: 'xpath'
        locator: '//div[contains(@class,"product-view__imagefield")]//img'

    ImageField Gallery Trigger:
      selector: 'div[class*="product-view__imagefield"] [data-trigger-gallery-open]'

    MultiImageField 1 Image:
      selector:
        type: 'xpath'
        locator: '//div[contains(@class,"product-view__multiimagefield")]//img'

    MultiImageField 1 Gallery Trigger:
      selector: 'div[class*="product-view__multiimagefield"] [data-trigger-gallery-open]'

    Drawing Gallery Trigger:
      selector: 'div[class*="product-view__drawing"] [data-trigger-gallery-open]'

    Multi Images Gallery Trigger:
      selector: 'div[class*="product-view__multipleimages"] [data-trigger-gallery-open]'

    Product View Media Gallery:
      selector: 'div.product-view-media-gallery'

    MSRP Product Price Attributes Grid:
      selector: '.product-price-attributes-grid'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid

    Product Type Microdata Declaration:
      selector: '[itemtype="http://schema.org/Product"]'

    Product Item View:
      selector: 'div.product-view'

    SchemaOrg Brand Name:
      selector: 'span[itemprop="brand"] meta[itemprop="name"]'

    SchemaOrg Description:
      selector: 'meta[itemprop="description"]'

    Draggable Product1 Row:
      selector:
        type: xpath
        locator: '//div[contains(@class, "drag-n-drop-enable")]//tbody[contains(@class, "ui-sortable")]/tr/td[@data-column-label="SKU"][contains(., "PSKU1")]/..'

    Draggable Product2 Row:
      selector:
        type: xpath
        locator: '//div[contains(@class, "drag-n-drop-enable")]//tbody[contains(@class, "ui-sortable")]/tr/td[@data-column-label="SKU"][contains(., "PSKU2")]/..'

    Draggable Product3 Row:
      selector:
        type: xpath
        locator: '//div[contains(@class, "drag-n-drop-enable")]//tbody[contains(@class, "ui-sortable")]/tr/td[@data-column-label="SKU"][contains(., "PSKU3")]/..'

    Draggable Product4 Row:
      selector:
        type: xpath
        locator: '//div[contains(@class, "drag-n-drop-enable")]//tbody[contains(@class, "ui-sortable")]/tr/td[@data-column-label="SKU"][contains(., "PSKU4")]/..'

    Draggable Product5 Row:
      selector:
        type: xpath
        locator: '//div[contains(@class, "drag-n-drop-enable")]//tbody[contains(@class, "ui-sortable")]/tr/td[@data-column-label="SKU"][contains(., "PSKU5")]/..'

    Draggable Separator Row:
      selector:
        type: xpath
        locator: '//div[contains(@class, "drag-n-drop-enable")]//tbody[contains(@class, "ui-sortable")]/tr[contains(@class, "draggable-separator")]'

    Drop Zone Move to Top:
      selector: '.drop-zones-menu [data-zone="toTop"]'

    Drop Zone Move to Bottom:
      selector: '.drop-zones-menu [data-zone="toBottom"]'

    Drop Zone Remove from Sorted:
      selector: '.drop-zones-menu [data-zone="removeSortOrder"]'

    Drop Zone Exclude from Collection:
      selector: '.drop-zones-menu [data-zone="excludeFromCollection"]'

    Remove Product Shipping Options 1:
      selector: '.product-shipping-options-collection tr:first-child .removeRow'

    Add Kit Item:
      selector: '.product-kit-control-group .add-list-item'

    KitItemProductsAddGrid:
      selector: 'div[data-page-component-name="kit-item-products-add-grid"]'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid

    Kit Item 1 Products Edit Grid:
      selector:
        type: 'xpath'
        locator: '//*[contains(concat(" ",normalize-space(@class)," ")," oro-collection-item ")][contains(@data-content,"[0]")]//div[contains(@data-page-component-name,"kit-item-products-edit-grid")]'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid

    Kit Item 2 Products Edit Grid:
      selector:
        type: 'xpath'
        locator: '//*[contains(concat(" ",normalize-space(@class)," ")," oro-collection-item ")][contains(@data-content,"[1]")]//div[contains(@data-page-component-name,"kit-item-products-edit-grid")]'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid

    Kit Item 3 Products Edit Grid:
      selector:
        type: 'xpath'
        locator: '//*[contains(concat(" ",normalize-space(@class)," ")," oro-collection-item ")][contains(@data-content,"[2]")]//div[contains(@data-page-component-name,"kit-item-products-edit-grid")]'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid

    Kit Item 1 Products Grid:
      selector: '.content-variant-item:nth-of-type(1) div[data-page-component-name^="kit-item-products-view-grid"]'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid

    Kit Item 2 Products Grid:
      selector: '.content-variant-item:nth-of-type(2) div[data-page-component-name^="kit-item-products-view-grid"]'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid

    Kit Item 3 Products Grid:
      selector: '.content-variant-item:nth-of-type(3) div[data-page-component-name^="kit-item-products-view-grid"]'
      class: Oro\Bundle\DataGridBundle\Tests\Behat\Element\Grid

    Product Kit Add Product Button:
      selector: '.product-kit-item__add-product-button'

    Product Kit Item 1:
      selector:
        type: 'xpath'
        locator: './/*[contains(concat(" ",normalize-space(@class)," ")," oro-collection-item ")][contains(@data-content,"0")]|.//*[contains(concat(" ",normalize-space(@class)," ")," product-kit-view ")]/*[contains(concat(" ",normalize-space(@class)," ")," content-variant-item ")][1]'

    Product Kit Item 2:
      selector:
        type: 'xpath'
        locator: './/*[contains(concat(" ",normalize-space(@class)," ")," oro-collection-item ")][contains(@data-content,"1")]|.//*[contains(concat(" ",normalize-space(@class)," ")," product-kit-view ")]/*[contains(concat(" ",normalize-space(@class)," ")," content-variant-item ")][2]'

    Product Kit Item 3:
      selector:
        type: 'xpath'
        locator: './/*[contains(concat(" ",normalize-space(@class)," ")," oro-collection-item ")][contains(@data-content,"2")]|.//*[contains(concat(" ",normalize-space(@class)," ")," product-kit-view ")]/*[contains(concat(" ",normalize-space(@class)," ")," content-variant-item ")][3]'

    Product Kit Item Sortable 1:
      selector:
        type: 'xpath'
        locator: './/*[contains(concat(" ",normalize-space(@class)," ")," oro-collection-item ")][contains(@data-content,"0")]//*[@data-name="sortable-handle"]'

    Product Kit Item Sortable 2:
      selector:
        type: 'xpath'
        locator: './/*[contains(concat(" ",normalize-space(@class)," ")," oro-collection-item ")][contains(@data-content,"1")]//*[@data-name="sortable-handle"]'

    Product Kit Item Sortable 3:
      selector:
        type: 'xpath'
        locator: './/*[contains(concat(" ",normalize-space(@class)," ")," oro-collection-item ")][contains(@data-content,"2")]//*[@data-name="sortable-handle"]'

    Product Kit Collection:
      selector: '.product-kit-control-group'

    ProductKitForm:
      selector: 'form[name="oro_product"]'
      class: Oro\Bundle\TestFrameworkBundle\Behat\Element\Form
      options:
        mapping:
          Kit Item 1 Label: 'oro_product[kitItems][0][labels][values][default]'
          Kit Item 1 Sort Order: 'oro_product[kitItems][0][sortOrder]'
          Kit Item 1 Optional: 'oro_product[kitItems][0][optional]'
          Kit Item 1 Minimum Quantity: 'oro_product[kitItems][0][minimumQuantity]'
          Kit Item 1 Maximum Quantity: 'oro_product[kitItems][0][maximumQuantity]'
          Kit Item 1 Product Unit: 'oro_product[kitItems][0][productUnit]'
          Kit Item 1 Products:
            type: 'xpath'
            locator: '//*[@name="oro_product[kitItems][0][kitItemProducts]"]'
          Kit Item 2 Label: 'oro_product[kitItems][1][labels][values][default]'
          Kit Item 2 Sort Order: 'oro_product[kitItems][1][sortOrder]'
          Kit Item 2 Optional: 'oro_product[kitItems][1][optional]'
          Kit Item 2 Minimum Quantity: 'oro_product[kitItems][1][minimumQuantity]'
          Kit Item 2 Maximum Quantity: 'oro_product[kitItems][1][maximumQuantity]'
          Kit Item 2 Product Unit: 'oro_product[kitItems][1][productUnit]'
          Kit Item 2 Products:
            type: 'xpath'
            locator: '//*[@name="oro_product[kitItems][1][kitItemProducts]"]'
          Kit Item 3 Label: 'oro_product[kitItems][2][labels][values][default]'
          Kit Item 3 Sort Order: 'oro_product[kitItems][2][sortOrder]'
          Kit Item 3 Optional: 'oro_product[kitItems][2][optional]'
          Kit Item 3 Minimum Quantity: 'oro_product[kitItems][2][minimumQuantity]'
          Kit Item 3 Maximum Quantity: 'oro_product[kitItems][2][maximumQuantity]'
          Kit Item 3 Product Unit: 'oro_product[kitItems][2][productUnit]'
          Kit Item 3 Products:
            type: 'xpath'
            locator: '//*[@name="oro_product[kitItems][2][kitItemProducts]"]'
          Kit Items:
            type: 'xpath'
            locator: '//*[@name="validate_oro_product[kitItems]"]'

    Kit Item 1 Toggler:
      selector:
        type: 'xpath'
        locator: './/*[contains(concat(" ",normalize-space(@class)," ")," oro-collection-item ")][1]//*[@data-toggle="collapse"]|.//*[contains(concat(" ",normalize-space(@class)," ")," content-variant-item ")][1]//*[@data-toggle="collapse"]'

    Kit Item 2 Toggler:
      selector:
        type: 'xpath'
        locator: './/*[contains(concat(" ",normalize-space(@class)," ")," oro-collection-item ")][2]//*[@data-toggle="collapse"]|.//*[contains(concat(" ",normalize-space(@class)," ")," content-variant-item ")][2]//*[@data-toggle="collapse"]'

    Kit Item 3 Toggler:
      selector:
        type: 'xpath'
        locator: './/*[contains(concat(" ",normalize-space(@class)," ")," oro-collection-item ")][3]//*[@data-toggle="collapse"]|.//*[contains(concat(" ",normalize-space(@class)," ")," content-variant-item ")][3]//*[@data-toggle="collapse"]'

    Kit Item 1 Remove Button:
      selector:
        type: 'xpath'
        locator: './/*[contains(concat(" ",normalize-space(@class)," ")," oro-collection-item ")][contains(@data-content,"0")]//*[contains(concat(" ",normalize-space(@class)," ")," removeRow ")]'

    Kit Item 2 Remove Button:
      selector:
        type: 'xpath'
        locator: './/*[contains(concat(" ",normalize-space(@class)," ")," oro-collection-item ")][contains(@data-content,"1")]//*[contains(concat(" ",normalize-space(@class)," ")," removeRow ")]'

    Kit Item 3 Remove Button:
      selector:
        type: 'xpath'
        locator: './/*[contains(concat(" ",normalize-space(@class)," ")," oro-collection-item ")][contains(@data-content,"2")]//*[contains(concat(" ",normalize-space(@class)," ")," removeRow ")]'

    Kit Item 1 Title:
      selector:
        type: xpath
        locator: './/*[contains(concat(" ",normalize-space(@class)," ")," oro-collection-item ")][contains(@data-content,"0")]//*[contains(concat(" ",normalize-space(@class)," ")," product-kit-item__title ")]'

    Kit Item 1 Product Unit:
      selector:
        type: xpath
        locator: '//select[@name="oro_product[kitItems][0][productUnit]"]'

    Product Tab Link:
      selector:
        locator: '//div[contains(@class,"navbar navbar-static")]/nav/a'
        type: xpath

    Search Term With Target Product Form:
      class: Oro\Bundle\TestFrameworkBundle\Behat\Element\Form
      selector: 'form[name="search_term"]'
      options:
        mapping:
          Product:
            type: 'xpath'
            locator: '//input[@name="search_term[redirectProduct]"]'
            element: Select2Entity
          Restriction 1 Website:
            type: 'css'
            locator: 'div[id^="s2id_search_term_scopes_0_website-uid-"]'
            element: Select2Entity
          Restriction 2 Website:
            type: 'css'
            locator: 'div[id^="s2id_search_term_scopes_1_website-uid-"]'
            element: Select2Entity

    Search Term With Product Collection Form:
      class: Oro\Bundle\TestFrameworkBundle\Behat\Element\Form
      selector: 'form[name="search_term"]'
      options:
        mapping:
          Product Collection:
            type: 'xpath'
            locator: '//select[@name="search_term[productCollectionSegment]"]'
            element: Select2Entity
          Restriction 1 Website:
            type: 'css'
            locator: 'div[id^="s2id_search_term_scopes_0_website-uid-"]'
            element: Select2Entity
          Restriction 2 Website:
            type: 'css'
            locator: 'div[id^="s2id_search_term_scopes_1_website-uid-"]'
            element: Select2Entity

  pages:
    Product View:
      class: Oro\Bundle\ProductBundle\Tests\Behat\Page\ProductView
      route: 'oro_product_view'

  suites:
    # Revert by OPI-52
    OroProductBundle:
      contexts:
        - Oro\Bundle\TestFrameworkBundle\Tests\Behat\Context\BrowserTabContext
        - Oro\Bundle\ApplicationBundle\Tests\Behat\Context\CommerceMainContext
        - Oro\Bundle\DataGridBundle\Tests\Behat\Context\GridContext
        - Oro\Bundle\CheckoutBundle\Tests\Behat\Context\FeatureContext
        - Oro\Bundle\CustomerBundle\Tests\Behat\Context\FrontendGridContext
        - Oro\Bundle\EmailBundle\Tests\Behat\Context\EmailContext
        - Oro\Bundle\FormBundle\Tests\Behat\Context\FormContext
        - Oro\Bundle\FormBundle\Tests\Behat\Context\WysiwygContext
        - Oro\Bundle\ProductBundle\Tests\Behat\Context\FeatureContext
        - Oro\Bundle\ProductBundle\Tests\Behat\Context\ProductImportExportContext
        - Oro\Bundle\ProductBundle\Tests\Behat\Context\QuickOrderFormContext
        - Oro\Bundle\RedirectBundle\Tests\Behat\Context\SlugPrototypesContext
        - Oro\Bundle\SecurityBundle\Tests\Behat\Context\ACLContext
        - Oro\Bundle\SEOBundle\Tests\Behat\Context\FeatureContext
        - Oro\Bundle\TestFrameworkBundle\Tests\Behat\Context\OroMainContext
        - Oro\Bundle\WebCatalogBundle\Tests\Behat\Context\FeatureContext
        - Oro\Bundle\ConfigBundle\Tests\Behat\Context\FeatureContext
        - Oro\Bundle\UserBundle\Tests\Behat\Context\FeatureContext
        - Oro\Bundle\ImportExportBundle\Tests\Behat\Context\ImportExportContext
        - Oro\Bundle\NavigationBundle\Tests\Behat\Context\FeatureContext
        - Oro\Bundle\NavigationBundle\Tests\Behat\Context\PinbarContext
        - Oro\Bundle\NavigationBundle\Tests\Behat\Context\ScrollspyContext
        - Oro\Bundle\QueryDesignerBundle\Tests\Behat\Context\QueryDesignerContext
        - Oro\Bundle\LocaleBundle\Tests\Behat\Context\LocalizationContext
        - Oro\Bundle\WorkflowBundle\Tests\Behat\Context\FeatureContext
        - Oro\Bundle\FrontendLocalizationBundle\Tests\Behat\Context\LocalizationSwitcherContext
        - Oro\Bundle\ShoppingListBundle\Tests\Behat\Context\ShoppingListContext
        - Oro\Bundle\ShoppingListBundle\Tests\Behat\Context\FeatureContext
        - Oro\Bundle\ShippingBundle\Tests\Behat\Context\SingleCurrencyContext
        - Oro\Bundle\OrderBundle\Tests\Behat\Context\OrderContext
        - Oro\Bundle\ProductBundle\Tests\Behat\Context\FrontendProductGridContext
        - Oro\Bundle\CMSBundle\Tests\Behat\Context\FeatureContext
        - Oro\Bundle\AttachmentBundle\Tests\Behat\Context\AttachmentImageContext
        - Oro\Bundle\EntityExtendBundle\Tests\Behat\Context\FeatureContext
        - Oro\Bundle\UIBundle\Tests\Behat\Context\BreadcrumbContext
        - Oro\Bundle\TestFrameworkBundle\Tests\Behat\Context\ConsoleContext
        - Oro\Bundle\SearchBundle\Tests\Behat\Context\SearchContext
      paths:
        - '@OroProductBundle/Tests/Behat/Features/product-collection'
        - '@OroProductBundle/Tests/Behat/Features/product'
        - '@OroProductBundle/Tests/Behat/Features/product-search'
        - '@OroProductBundle/Tests/Behat/Features/product-attributes'
        - '@OroProductBundle/Tests/Behat/Features/frontend-product-export'
        - '@OroProductBundle/Tests/Behat/Features/product-kit'
        - '@OroProductBundle/Tests/Behat/Features/search-terms'
    OroProductBundleRelatedItems:
      contexts:
        - Oro\Bundle\ApplicationBundle\Tests\Behat\Context\CommerceMainContext
        - Oro\Bundle\DataGridBundle\Tests\Behat\Context\GridContext
        - Oro\Bundle\FormBundle\Tests\Behat\Context\FormContext
        - Oro\Bundle\ProductBundle\Tests\Behat\Context\FeatureContext
        - Oro\Bundle\SecurityBundle\Tests\Behat\Context\ACLContext
        - Oro\Bundle\TestFrameworkBundle\Tests\Behat\Context\OroMainContext
        - Oro\Bundle\ConfigBundle\Tests\Behat\Context\FeatureContext
        - Oro\Bundle\UserBundle\Tests\Behat\Context\FeatureContext
        - Oro\Bundle\NavigationBundle\Tests\Behat\Context\FeatureContext
        - Oro\Bundle\NavigationBundle\Tests\Behat\Context\PinbarContext
        - Oro\Bundle\LocaleBundle\Tests\Behat\Context\LocalizationContext
        - Oro\Bundle\FrontendLocalizationBundle\Tests\Behat\Context\LocalizationSwitcherContext
        - Oro\Bundle\EmailBundle\Tests\Behat\Context\EmailContext
        - Oro\Bundle\ImportExportBundle\Tests\Behat\Context\ImportExportContext
        - Oro\Bundle\AttachmentBundle\Tests\Behat\Context\AttachmentImageContext
      paths:
        - '@OroProductBundle/Tests/Behat/Features/related-items'
    OroProductBundleOther:
      contexts:
        - Oro\Bundle\ApplicationBundle\Tests\Behat\Context\CommerceMainContext
        - Oro\Bundle\DataGridBundle\Tests\Behat\Context\GridContext
        - Oro\Bundle\FormBundle\Tests\Behat\Context\FormContext
        - Oro\Bundle\FormBundle\Tests\Behat\Context\WysiwygContext
        - Oro\Bundle\ProductBundle\Tests\Behat\Context\FeatureContext
        - Oro\Bundle\ProductBundle\Tests\Behat\Context\QuickOrderFormContext
        - Oro\Bundle\RedirectBundle\Tests\Behat\Context\SlugPrototypesContext
        - Oro\Bundle\RedirectBundle\Tests\Behat\Context\FeatureContext
        - Oro\Bundle\SecurityBundle\Tests\Behat\Context\ACLContext
        - Oro\Bundle\SEOBundle\Tests\Behat\Context\FeatureContext
        - Oro\Bundle\TestFrameworkBundle\Tests\Behat\Context\OroMainContext
        - Oro\Bundle\WebCatalogBundle\Tests\Behat\Context\FeatureContext
        - Oro\Bundle\ConfigBundle\Tests\Behat\Context\FeatureContext
        - Oro\Bundle\UserBundle\Tests\Behat\Context\FeatureContext
        - Oro\Bundle\UIBundle\Tests\Behat\Context\DragAndDropContext
        - Oro\Bundle\CheckoutBundle\Tests\Behat\Context\FeatureContext
        - Oro\Bundle\ShoppingListBundle\Tests\Behat\Context\ShoppingListContext
        - Oro\Bundle\ShoppingListBundle\Tests\Behat\Context\FeatureContext
        - Oro\Bundle\ShippingBundle\Tests\Behat\Context\FeatureContext
        - Oro\Bundle\LocaleBundle\Tests\Behat\Context\LocalizationContext
        - Oro\Bundle\FrontendLocalizationBundle\Tests\Behat\Context\LocalizationSwitcherContext
        - Oro\Bundle\EntityExtendBundle\Tests\Behat\Context\FeatureContext
        - Oro\Bundle\PromotionBundle\Tests\Behat\Context\PromotionContext
        - Oro\Bundle\WebsiteSearchBundle\Tests\Behat\Context\SearchIndexContext
        - Oro\Bundle\QueryDesignerBundle\Tests\Behat\Context\QueryDesignerContext
        - Oro\Bundle\EmailBundle\Tests\Behat\Context\EmailContext
        - Oro\Bundle\ImportExportBundle\Tests\Behat\Context\ImportExportContext
        - Oro\Bundle\NavigationBundle\Tests\Behat\Context\FeatureContext
        - Oro\Bundle\CMSBundle\Tests\Behat\Context\FeatureContext
        - Oro\Bundle\ProductBundle\Tests\Behat\Context\FrontendProductGridContext
        - Oro\Bundle\AttachmentBundle\Tests\Behat\Context\AttachmentImageContext
      paths:
        - '@OroProductBundle/Tests/Behat/Features/other'

  optional_listeners:
    required_for_fixtures:
      - 'oro_product.event_listener.search_product_kit'
      - 'oro_product.event_listener.website_search_reindex_product_kit'
      - 'oro_product.event_listener.website_search_product_preloading_index'
