From 12919685cfeed1bc5e569973fc7a5c2491de6cbc Mon Sep 17 00:00:00 2001
From: "Shevtsov, Dmitry" <dshevtsov@magento.com>
Date: Fri, 2 Feb 2018 16:33:42 +0200
Subject: [PATCH] Updated XML Schemas to be compatible with XSD Diagram parsing
 tool

---
 .../Test/etc/Actions/assertActions.xsd        | 171 +++++-------------
 .../Test/etc/Actions/clickActions.xsd         |  23 +--
 .../Test/etc/Actions/commonAttributes.xsd     |  51 +++---
 .../Test/etc/Actions/customActions.xsd        |  39 +---
 .../Test/etc/Actions/dataActions.xsd          |  20 +-
 .../Test/etc/Actions/dontSeeActions.xsd       |  64 ++-----
 .../Test/etc/Actions/grabActions.xsd          |  28 +--
 .../Test/etc/Actions/seeActions.xsd           |  68 ++-----
 .../Test/etc/Actions/switchToActions.xsd      |  16 +-
 .../Test/etc/Actions/waitActions.xsd          |  40 +---
 .../Test/etc/actionGroupSchema.xsd            |   4 +-
 .../Test/etc/actionTypeTags.xsd               | 166 +++++------------
 .../Test/etc/testSchema.xsd                   |  11 +-
 13 files changed, 198 insertions(+), 503 deletions(-)

diff --git a/src/Magento/FunctionalTestingFramework/Test/etc/Actions/assertActions.xsd b/src/Magento/FunctionalTestingFramework/Test/etc/Actions/assertActions.xsd
index 2bbfbca26..83c22e2c5 100644
--- a/src/Magento/FunctionalTestingFramework/Test/etc/Actions/assertActions.xsd
+++ b/src/Magento/FunctionalTestingFramework/Test/etc/Actions/assertActions.xsd
@@ -11,11 +11,9 @@
 
     <xs:group name="assertTags">
         <xs:choice>
-            <xs:element type="assertElementContainsAttributeType" name="assertElementContainsAttribute" minOccurs="0"
-                        maxOccurs="unbounded"/>
+            <xs:element type="assertElementContainsAttributeType" name="assertElementContainsAttribute" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element type="assertArrayHasKeyType" name="assertArrayHasKey" minOccurs="0" maxOccurs="unbounded"/>
-            <xs:element type="assertArrayNotHasKeyType" name="assertArrayNotHasKey" minOccurs="0"
-                        maxOccurs="unbounded"/>
+            <xs:element type="assertArrayNotHasKeyType" name="assertArrayNotHasKey" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element type="assertArraySubsetType" name="assertArraySubset" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element type="assertContainsType" name="assertContains" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element type="assertCountType" name="assertCount" minOccurs="0" maxOccurs="unbounded"/>
@@ -24,18 +22,15 @@
             <xs:element type="assertFalseType" name="assertFalse" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element type="assertFileExistsType" name="assertFileExists" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element type="assertFileNotExistsType" name="assertFileNotExists" minOccurs="0" maxOccurs="unbounded"/>
-            <xs:element type="assertGreaterOrEqualsType" name="assertGreaterOrEquals" minOccurs="0"
-                        maxOccurs="unbounded"/>
+            <xs:element type="assertGreaterOrEqualsType" name="assertGreaterOrEquals" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element type="assertGreaterThanType" name="assertGreaterThan" minOccurs="0" maxOccurs="unbounded"/>
-            <xs:element type="assertGreaterThanOrEqualType" name="assertGreaterThanOrEqual" minOccurs="0"
-                        maxOccurs="unbounded"/>
+            <xs:element type="assertGreaterThanOrEqualType" name="assertGreaterThanOrEqual" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element type="assertInstanceOfType" name="assertInstanceOf" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element type="assertInternalTypeType" name="assertInternalType" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element type="assertIsEmptyType" name="assertIsEmpty" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element type="assertLessOrEqualsType" name="assertLessOrEquals" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element type="assertLessThanType" name="assertLessThan" minOccurs="0" maxOccurs="unbounded"/>
-            <xs:element type="assertLessThanOrEqualType" name="assertLessThanOrEqual" minOccurs="0"
-                        maxOccurs="unbounded"/>
+            <xs:element type="assertLessThanOrEqualType" name="assertLessThanOrEqual" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element type="assertNotContainsType" name="assertNotContains" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element type="assertNotEmptyType" name="assertNotEmpty" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element type="assertNotEqualsType" name="assertNotEquals" minOccurs="0" maxOccurs="unbounded"/>
@@ -46,10 +41,8 @@
             <xs:element type="assertNullType" name="assertNull" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element type="assertRegExpType" name="assertRegExp" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element type="assertSameType" name="assertSame" minOccurs="0" maxOccurs="unbounded"/>
-            <xs:element type="assertStringStartsNotWithType" name="assertStringStartsNotWith" minOccurs="0"
-                        maxOccurs="unbounded"/>
-            <xs:element type="assertStringStartsWithType" name="assertStringStartsWith" minOccurs="0"
-                        maxOccurs="unbounded"/>
+            <xs:element type="assertStringStartsNotWithType" name="assertStringStartsNotWith" minOccurs="0" maxOccurs="unbounded"/>
+            <xs:element type="assertStringStartsWithType" name="assertStringStartsWith" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element type="assertTrueType" name="assertTrue" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element type="expectExceptionType" name="expectException" minOccurs="0" maxOccurs="unbounded"/>
         </xs:choice>
@@ -104,13 +97,11 @@
         <xs:attribute ref="expected"/>
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
-        <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
+        <xs:attribute type="assertEnum" name="actualType" default="const"/>        
         <xs:attribute ref="message"/>
         <xs:attribute ref="delta"/>
         <xs:attribute ref="strict"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertElementContainsAttributeType">
@@ -129,8 +120,7 @@
                 </xs:documentation>
             </xs:annotation>
         </xs:attribute>
-        <xs:attribute ref="stepKey" use="required"/>
-        <xs:attribute ref="selector" use="required"/>
+        <xs:attribute name="selector" use="required"/>
         <xs:attribute type="xs:string" name="attribute" use="required">
             <xs:annotation>
                 <xs:documentation>
@@ -138,8 +128,7 @@
                 </xs:documentation>
             </xs:annotation>
         </xs:attribute>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertArrayHasKeyType">
@@ -156,10 +145,8 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute ref="message"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertArrayNotHasKeyType">
@@ -176,10 +163,8 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
-        <xs:attribute ref="message"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attribute ref="message"/>        
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertArraySubsetType">
@@ -196,11 +181,9 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute ref="message"/>
         <xs:attribute ref="strict"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertContainsType">
@@ -217,10 +200,8 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute ref="message"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertCountType">
@@ -237,10 +218,8 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute ref="message"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertEmptyType">
@@ -256,10 +235,8 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute ref="message"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertEqualsType">
@@ -275,12 +252,10 @@
         <xs:attribute ref="expected"/>
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
-        <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
+        <xs:attribute type="assertEnum" name="actualType" default="const"/>        
         <xs:attribute ref="delta"/>
         <xs:attribute ref="message"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertFalseType">
@@ -296,10 +271,8 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute ref="message"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertFileExistsType">
@@ -315,10 +288,8 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute ref="message"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertFileNotExistsType">
@@ -334,10 +305,8 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute ref="message"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertGreaterOrEqualsType">
@@ -354,10 +323,8 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute ref="message"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertGreaterThanType">
@@ -374,10 +341,8 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute ref="message"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertGreaterThanOrEqualType">
@@ -394,10 +359,8 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute ref="message"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertInstanceOfType">
@@ -414,10 +377,8 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute ref="message"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertInternalTypeType">
@@ -434,10 +395,8 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute ref="message"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertIsEmptyType">
@@ -453,10 +412,8 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute ref="message"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertLessOrEqualsType">
@@ -473,10 +430,8 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute ref="message"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertLessThanType">
@@ -493,10 +448,8 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute ref="message"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertLessThanOrEqualType">
@@ -513,10 +466,8 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute ref="message"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertNotContainsType">
@@ -533,10 +484,8 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute ref="message"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertNotEmptyType">
@@ -552,10 +501,8 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute ref="message"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertNotEqualsType">
@@ -571,12 +518,10 @@
         <xs:attribute ref="expected"/>
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
-        <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
+        <xs:attribute type="assertEnum" name="actualType" default="const"/>        
         <xs:attribute ref="message"/>
         <xs:attribute ref="delta"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertNotInstanceOfType">
@@ -593,10 +538,8 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute ref="message"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertNotNullType">
@@ -612,10 +555,8 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute ref="message"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertNotRegExpType">
@@ -632,10 +573,8 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute ref="message"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertNotSameType">
@@ -652,10 +591,8 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute ref="message"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertNullType">
@@ -671,10 +608,8 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute ref="message"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertRegExpType">
@@ -691,10 +626,8 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute ref="message"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertSameType">
@@ -711,10 +644,8 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute ref="message"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertStringStartsNotWithType">
@@ -731,10 +662,8 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute ref="message"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertStringStartsWithType">
@@ -751,10 +680,8 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute ref="message"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="assertTrueType">
@@ -770,10 +697,8 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute ref="message"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <xs:complexType name="expectExceptionType">
@@ -790,9 +715,7 @@
         <xs:attribute type="assertEnum" name="expectedType" default="const"/>
         <xs:attribute ref="actual"/>
         <xs:attribute type="assertEnum" name="actualType" default="const"/>
-        <xs:attribute ref="stepKey" use="required"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
     <!-- END ASSERT TYPES -->
diff --git a/src/Magento/FunctionalTestingFramework/Test/etc/Actions/clickActions.xsd b/src/Magento/FunctionalTestingFramework/Test/etc/Actions/clickActions.xsd
index 7b389e70c..af5a0452e 100644
--- a/src/Magento/FunctionalTestingFramework/Test/etc/Actions/clickActions.xsd
+++ b/src/Magento/FunctionalTestingFramework/Test/etc/Actions/clickActions.xsd
@@ -5,8 +5,7 @@
         <xs:choice>
             <xs:element type="clickType" name="click" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element type="clickWithLeftButtonType" name="clickWithLeftButton" minOccurs="0" maxOccurs="unbounded"/>
-            <xs:element type="clickWithRightButtonType" name="clickWithRightButton" minOccurs="0"
-                        maxOccurs="unbounded"/>
+            <xs:element type="clickWithRightButtonType" name="clickWithRightButton" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element type="doubleClickType" name="doubleClick" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element type="conditionalClickType" name="conditionalClick" minOccurs="0" maxOccurs="unbounded"/>
         </xs:choice>
@@ -20,9 +19,7 @@
                 <xs:attribute type="xs:string" name="selector"/>
                 <xs:attribute type="xs:string" name="selectorArray"/>
                 <xs:attribute type="xs:string" name="userInput"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -33,9 +30,7 @@
                 <xs:attribute type="xs:string" name="selectorArray"/>
                 <xs:attribute type="xs:string" name="x"/>
                 <xs:attribute type="xs:string" name="y"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -46,9 +41,7 @@
                 <xs:attribute type="xs:string" name="selectorArray"/>
                 <xs:attribute type="xs:string" name="x"/>
                 <xs:attribute type="xs:string" name="y"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -58,9 +51,7 @@
                 <xs:attribute type="xs:string" name="selector" use="required"/>
                 <xs:attribute type="xs:string" name="dependentSelector" use="required"/>
                 <xs:attribute type="xs:boolean" name="visible" use="required"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -68,9 +59,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="selector" use="required"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
diff --git a/src/Magento/FunctionalTestingFramework/Test/etc/Actions/commonAttributes.xsd b/src/Magento/FunctionalTestingFramework/Test/etc/Actions/commonAttributes.xsd
index 0a53cc78f..4c181a798 100644
--- a/src/Magento/FunctionalTestingFramework/Test/etc/Actions/commonAttributes.xsd
+++ b/src/Magento/FunctionalTestingFramework/Test/etc/Actions/commonAttributes.xsd
@@ -1,30 +1,25 @@
 <xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
-    <xs:attribute type="xs:string" name="stepKey" id="stepKey">
-        <xs:annotation>
-            <xs:documentation>
-                Test action's unique identifier.
-            </xs:documentation>
-        </xs:annotation>
-    </xs:attribute>
-    <xs:attribute type="xs:string" name="before" id="before">
-        <xs:annotation>
-            <xs:documentation>
-                stepKey of action that must be executed next.
-            </xs:documentation>
-        </xs:annotation>
-    </xs:attribute>
-    <xs:attribute type="xs:string" name="after" id="after">
-        <xs:annotation>
-            <xs:documentation>
-                stepKey of preceding action.
-            </xs:documentation>
-        </xs:annotation>
-    </xs:attribute>
-    <xs:attribute type="xs:string" name="selector" id="selector">
-        <xs:annotation>
-            <xs:documentation>
-                Selector to be used in test action.
-            </xs:documentation>
-        </xs:annotation>
-    </xs:attribute>
+    <xs:attributeGroup name="commonActionAttributes">
+        <xs:attribute type="xs:string" name="stepKey" use="required">
+            <xs:annotation>
+                <xs:documentation>
+                    Test action's unique identifier.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="before">
+            <xs:annotation>
+                <xs:documentation>
+                    stepKey of action that must be executed next.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="after">
+            <xs:annotation>
+                <xs:documentation>
+                    stepKey of preceding action.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+    </xs:attributeGroup>
 </xs:schema>
\ No newline at end of file
diff --git a/src/Magento/FunctionalTestingFramework/Test/etc/Actions/customActions.xsd b/src/Magento/FunctionalTestingFramework/Test/etc/Actions/customActions.xsd
index b7295f68f..896ffa3b9 100644
--- a/src/Magento/FunctionalTestingFramework/Test/etc/Actions/customActions.xsd
+++ b/src/Magento/FunctionalTestingFramework/Test/etc/Actions/customActions.xsd
@@ -5,8 +5,7 @@
         <xs:choice>
             <xs:element type="magentoCLIType" name="magentoCLI" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element type="closeAdminNotificationType" name="closeAdminNotification" minOccurs="0" maxOccurs="unbounded"/>
-            <xs:element type="searchAndMultiSelectOptionType" name="searchAndMultiSelectOption" minOccurs="0"
-                        maxOccurs="unbounded"/>
+            <xs:element type="searchAndMultiSelectOptionType" name="searchAndMultiSelectOption" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element type="formatMoneyType" name="formatMoney" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element type="parseFloatType" name="parseFloat" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element type="mSetLocaleType" name="mSetLocale" minOccurs="0" maxOccurs="unbounded"/>
@@ -24,18 +23,14 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="command"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:complexType name="closeAdminNotificationType">
         <xs:simpleContent>
             <xs:extension base="xs:string">
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -45,9 +40,7 @@
                 <xs:attribute type="xs:string" name="selector" use="required"/>
                 <xs:attribute type="xs:string" name="parameterArray" use="required"/>
                 <xs:attribute type="xs:string" name="requiredAction"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -56,9 +49,7 @@
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="userInput"/>
                 <xs:attribute type="xs:string" name="locale"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -66,9 +57,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="userInput"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -77,27 +66,21 @@
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="userInput"/>
                 <xs:attribute type="xs:string" name="locale" use="required"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:complexType name="mResetLocaleType">
         <xs:simpleContent>
             <xs:extension base="xs:string">
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:complexType name="scrollToTopOfPageType">
         <xs:simpleContent>
             <xs:extension base="xs:string">
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -105,9 +88,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="selector" use="required"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
diff --git a/src/Magento/FunctionalTestingFramework/Test/etc/Actions/dataActions.xsd b/src/Magento/FunctionalTestingFramework/Test/etc/Actions/dataActions.xsd
index 16c88be2f..78feb9001 100644
--- a/src/Magento/FunctionalTestingFramework/Test/etc/Actions/dataActions.xsd
+++ b/src/Magento/FunctionalTestingFramework/Test/etc/Actions/dataActions.xsd
@@ -52,9 +52,7 @@
             <xs:element type="requiredEntityType" name="requiredEntity" minOccurs="0" maxOccurs="unbounded"/>
         </xs:choice>
         <xs:attribute ref="entity" use="required"/>
-        <xs:attribute ref="stepKey" use="required"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
         <xs:attribute ref="storeCode"/>
     </xs:complexType>
 
@@ -66,10 +64,8 @@
             <xs:element type="requiredEntityType" name="requiredEntity" minOccurs="0" maxOccurs="unbounded"/>
         </xs:choice>
         <xs:attribute ref="entity" use="required"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute ref="createDataKey" use="required"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
         <xs:attribute ref="storeCode"/>
     </xs:complexType>
 
@@ -80,9 +76,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute ref="createDataKey" use="required"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
                 <xs:attribute ref="storeCode"/>
             </xs:extension>
         </xs:simpleContent>
@@ -96,7 +90,6 @@
             <xs:element type="requiredEntityType" name="requiredEntity" minOccurs="0" maxOccurs="unbounded"/>
         </xs:choice>
         <xs:attribute ref="entity" use="required"/>
-        <xs:attribute ref="stepKey" use="required"/>
         <xs:attribute type="xs:integer" name="index">
             <xs:annotation>
                 <xs:documentation>
@@ -104,8 +97,7 @@
                 </xs:documentation>
             </xs:annotation>
         </xs:attribute>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
         <xs:attribute ref="storeCode"/>
     </xs:complexType>
 
@@ -116,8 +108,8 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute ref="createDataKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attribute name="before"/>
+                <xs:attribute name="after"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
diff --git a/src/Magento/FunctionalTestingFramework/Test/etc/Actions/dontSeeActions.xsd b/src/Magento/FunctionalTestingFramework/Test/etc/Actions/dontSeeActions.xsd
index 6d9044f78..c78e226ae 100644
--- a/src/Magento/FunctionalTestingFramework/Test/etc/Actions/dontSeeActions.xsd
+++ b/src/Magento/FunctionalTestingFramework/Test/etc/Actions/dontSeeActions.xsd
@@ -34,9 +34,7 @@
                 <xs:attribute type="xs:string" name="userInput"/>
                 <xs:attribute type="xs:string" name="selector"/>
                 <xs:attribute type="xs:string" name="selectorArray"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -44,9 +42,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="selector" use="required"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -55,9 +51,7 @@
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="userInput"/>
                 <xs:attribute type="xs:string" name="parameterArray"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -65,9 +59,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="url"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -75,9 +67,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="regex"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -86,9 +76,7 @@
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="selector" use="required"/>
                 <xs:attribute type="xs:string" name="parameterArray"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -97,9 +85,7 @@
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="selector" use="required"/>
                 <xs:attribute type="xs:string" name="parameterArray"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -107,9 +93,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="url"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -120,9 +104,7 @@
                 <xs:attribute type="xs:string" name="selectorArray"/>
                 <xs:attribute type="xs:string" name="userInput"/>
 
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -131,9 +113,7 @@
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="selector" use="required"/>
                 <xs:attribute type="xs:string" name="parameterArray"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -142,9 +122,7 @@
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="userInput"/>
 
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -152,9 +130,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="html" use="required"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -163,18 +139,14 @@
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="userInput"/>
 
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:complexType name="dontSeeJsErrorType">
         <xs:simpleContent>
             <xs:extension base="xs:string">
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -183,9 +155,7 @@
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="userInput"/>
                 <xs:attribute type="xs:string" name="url"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -194,9 +164,7 @@
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="selector" use="required"/>
                 <xs:attribute type="xs:string" name="userInput"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
diff --git a/src/Magento/FunctionalTestingFramework/Test/etc/Actions/grabActions.xsd b/src/Magento/FunctionalTestingFramework/Test/etc/Actions/grabActions.xsd
index 7baefec82..429d53b3b 100644
--- a/src/Magento/FunctionalTestingFramework/Test/etc/Actions/grabActions.xsd
+++ b/src/Magento/FunctionalTestingFramework/Test/etc/Actions/grabActions.xsd
@@ -20,9 +20,7 @@
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="selector" use="required"/>
                 <xs:attribute type="xs:string" name="userInput"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -31,9 +29,7 @@
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="userInput"/>
                 <xs:attribute type="xs:string" name="parameterArray"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -41,9 +37,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="regex"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -52,9 +46,7 @@
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="selector" use="required"/>
                 <xs:attribute type="xs:string" name="userInput"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -62,9 +54,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
 
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -72,9 +62,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="selector" use="required"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -83,9 +71,7 @@
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="selector"/>
                 <xs:attribute type="xs:string" name="selectorArray"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
diff --git a/src/Magento/FunctionalTestingFramework/Test/etc/Actions/seeActions.xsd b/src/Magento/FunctionalTestingFramework/Test/etc/Actions/seeActions.xsd
index d1fdb8608..d87cbc2e5 100644
--- a/src/Magento/FunctionalTestingFramework/Test/etc/Actions/seeActions.xsd
+++ b/src/Magento/FunctionalTestingFramework/Test/etc/Actions/seeActions.xsd
@@ -32,9 +32,7 @@
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="selector" use="required"/>
                 <xs:attribute type="xs:string" name="userInput"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -44,9 +42,7 @@
                 <xs:attribute type="xs:string" name="userInput"/>
                 <xs:attribute type="xs:string" name="selector"/>
                 <xs:attribute type="xs:string" name="selectorArray"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -54,9 +50,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="selector" use="required"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -65,9 +59,7 @@
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="userInput"/>
                 <xs:attribute type="xs:string" name="parameterArray"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -75,9 +67,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="url"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -85,9 +75,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="regex"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -97,9 +85,7 @@
                 <xs:attribute type="xs:string" name="selector"/>
                 <xs:attribute type="xs:string" name="selectorArray"/>
                 <xs:attribute type="xs:string" name="parameterArray"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -108,9 +94,7 @@
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="selector" use="required"/>
                 <xs:attribute type="xs:string" name="parameterArray"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -118,9 +102,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="url"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -130,9 +112,7 @@
                 <xs:attribute type="xs:string" name="selector"/>
                 <xs:attribute type="xs:string" name="selectorArray"/>
                 <xs:attribute type="xs:string" name="userInput"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -141,9 +121,7 @@
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="selector" use="required"/>
                 <xs:attribute type="xs:string" name="parameterArray" use="required"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -151,9 +129,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="html" use="required"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -161,9 +137,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="userInput"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -171,9 +145,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="html" use="required"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -181,9 +153,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="userInput"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -192,9 +162,7 @@
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="userInput"/>
                 <xs:attribute type="xs:string" name="url"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -204,9 +172,7 @@
                 <xs:attribute type="xs:string" name="selector" use="required"/>
                 <xs:attribute type="xs:string" name="userInput"/>
                 <xs:attribute type="xs:string" name="parameterArray"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
diff --git a/src/Magento/FunctionalTestingFramework/Test/etc/Actions/switchToActions.xsd b/src/Magento/FunctionalTestingFramework/Test/etc/Actions/switchToActions.xsd
index 8f118633f..ab3fc4a0d 100644
--- a/src/Magento/FunctionalTestingFramework/Test/etc/Actions/switchToActions.xsd
+++ b/src/Magento/FunctionalTestingFramework/Test/etc/Actions/switchToActions.xsd
@@ -17,9 +17,7 @@
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="selector"/>
                 <xs:attribute type="xs:string" name="userInput"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -27,9 +25,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="userInput"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -37,9 +33,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="userInput"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -47,9 +41,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="userInput"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
diff --git a/src/Magento/FunctionalTestingFramework/Test/etc/Actions/waitActions.xsd b/src/Magento/FunctionalTestingFramework/Test/etc/Actions/waitActions.xsd
index 6de7d6fe4..e0a86c4da 100644
--- a/src/Magento/FunctionalTestingFramework/Test/etc/Actions/waitActions.xsd
+++ b/src/Magento/FunctionalTestingFramework/Test/etc/Actions/waitActions.xsd
@@ -27,9 +27,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="time"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -37,9 +35,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="time"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -49,9 +45,7 @@
                 <xs:attribute type="xs:string" name="selector" use="required"/>
                 <xs:attribute type="xs:string" name="function" use="required"/>
                 <xs:attribute type="xs:string" name="time"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -60,9 +54,7 @@
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="selector" use="required"/>
                 <xs:attribute type="xs:string" name="time"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -71,9 +63,7 @@
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="selector" use="required"/>
                 <xs:attribute type="xs:string" name="time"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -82,9 +72,7 @@
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="selector" use="required"/>
                 <xs:attribute type="xs:string" name="time"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -93,18 +81,14 @@
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="function" use="required"/>
                 <xs:attribute type="xs:string" name="time"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:complexType name="waitForLoadingMaskToDisappearType">
         <xs:simpleContent>
             <xs:extension base="xs:string">
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -112,9 +96,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="time"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -124,9 +106,7 @@
                 <xs:attribute type="xs:string" name="userInput"/>
                 <xs:attribute type="xs:string" name="time"/>
                 <xs:attribute type="xs:string" name="selector"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
diff --git a/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd b/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd
index 09b8a14a9..865d51958 100644
--- a/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd
+++ b/src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd
@@ -6,7 +6,7 @@
   */
 -->
 
-<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
     <xs:include schemaLocation="../../Test/etc/testSchema.xsd"/>
     <xs:element name="actionGroups" type="actionGroupType"/>
     <xs:complexType name="actionGroupType">
@@ -17,7 +17,7 @@
     <xs:complexType name="actionsRefType">
         <xs:choice minOccurs="0" maxOccurs="unbounded">
             <xs:group ref="actionTypeTags"/>
-            <xs:element name="arguments" maxOccurs="1">
+            <xs:element name="arguments">
                 <xs:complexType>
                     <xs:sequence>
                         <xs:element name="argument" maxOccurs="unbounded" minOccurs="0">
diff --git a/src/Magento/FunctionalTestingFramework/Test/etc/actionTypeTags.xsd b/src/Magento/FunctionalTestingFramework/Test/etc/actionTypeTags.xsd
index cdb24f3aa..3675d4243 100644
--- a/src/Magento/FunctionalTestingFramework/Test/etc/actionTypeTags.xsd
+++ b/src/Magento/FunctionalTestingFramework/Test/etc/actionTypeTags.xsd
@@ -14,15 +14,6 @@
 
     <xs:group name="actionTypeTags">
         <xs:choice>
-            <xs:group ref="dataOperationTags"/>
-            <xs:group ref="assertTags"/>
-            <xs:group ref="clickTags"/>
-            <xs:group ref="waitTags"/>
-            <xs:group ref="seeTags"/>
-            <xs:group ref="dontSeeTags"/>
-            <xs:group ref="grabTags"/>
-            <xs:group ref="switchToTags"/>
-            <xs:group ref="customTags"/>
             <xs:element type="removeActionType" name="remove" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element type="failType" name="fail" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element type="acceptPopupType" name="acceptPopup" minOccurs="0" maxOccurs="unbounded"/>
@@ -60,7 +51,17 @@
             <xs:element type="typeInPopupType" name="typeInPopup" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element type="uncheckOptionType" name="uncheckOption" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element type="unselectOptionType" name="unselectOption" minOccurs="0" maxOccurs="unbounded"/>
+            <xs:group ref="assertTags"/>
+            <xs:group ref="clickTags"/>
+            <xs:group ref="customTags"/>
+            <xs:group ref="dataOperationTags"/>
+            <xs:group ref="dontSeeTags"/>
+            <xs:group ref="grabTags"/>
+            <xs:group ref="seeTags"/>
+            <xs:group ref="switchToTags"/>
+            <xs:group ref="waitTags"/>
         </xs:choice>
+
     </xs:group>
 
     <!-- Complex Types -->
@@ -69,9 +70,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="message" use="required"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -85,39 +84,28 @@
     <xs:complexType name="acceptPopupType">
         <xs:simpleContent>
             <xs:extension base="xs:string">
-                <xs:attribute type="xs:string" name="stepKey"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:complexType name="amOnPageType">
         <xs:simpleContent>
             <xs:extension base="xs:string">
-                <xs:attribute type="xs:string" name="url"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:complexType name="amOnSubdomainType">
         <xs:simpleContent>
             <xs:extension base="xs:string">
-                <xs:attribute type="xs:string" name="url"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:complexType name="amOnUrlType">
         <xs:simpleContent>
             <xs:extension base="xs:string">
-                <xs:attribute type="xs:string" name="url"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -126,9 +114,7 @@
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="selector" use="required"/>
                 <xs:attribute type="xs:string" name="userInput"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -137,18 +123,14 @@
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="selector" use="required"/>
                 <xs:attribute type="xs:string" name="userInput"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:complexType name="cancelPopupType">
         <xs:simpleContent>
             <xs:extension base="xs:string">
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -156,18 +138,14 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="selector" use="required"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:complexType name="closeTabType">
         <xs:simpleContent>
             <xs:extension base="xs:string">
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -175,9 +153,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="userInput" use="required"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -186,9 +162,7 @@
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="selector1" use="required"/>
                 <xs:attribute type="xs:string" name="selector2" use="required"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -196,9 +170,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="function" use="required"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -206,9 +178,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="function" use="required"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -218,9 +188,7 @@
                 <xs:attribute type="xs:string" name="selector"/>
                 <xs:attribute type="xs:string" name="selectorArray"/>
                 <xs:attribute type="xs:string" name="userInput"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -228,9 +196,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="userInput"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -238,36 +204,28 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="userInput"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:complexType name="maximizeWindowType">
         <xs:simpleContent>
             <xs:extension base="xs:string">
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:complexType name="moveBackType">
         <xs:simpleContent>
             <xs:extension base="xs:string">
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:complexType name="moveForwardType">
         <xs:simpleContent>
             <xs:extension base="xs:string">
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -278,27 +236,21 @@
                 <xs:attribute type="xs:string" name="selectorArray"/>
                 <xs:attribute type="xs:string" name="x"/>
                 <xs:attribute type="xs:string" name="y"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:complexType name="openNewTabType">
         <xs:simpleContent>
             <xs:extension base="xs:string">
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:complexType name="pauseExecutionType">
         <xs:simpleContent>
             <xs:extension base="xs:string">
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -307,9 +259,7 @@
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="selector" use="required"/>
                 <xs:attribute type="xs:string" name="function" use="required"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -319,18 +269,14 @@
                 <xs:attribute type="xs:string" name="selector" use="required"/>
                 <xs:attribute type="xs:string" name="userInput"/>
                 <xs:attribute type="xs:string" name="parameterArray"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:complexType name="reloadPageType">
         <xs:simpleContent>
             <xs:extension base="xs:string">
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -339,9 +285,7 @@
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="userInput"/>
                 <xs:attribute type="xs:string" name="parameterArray"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -350,9 +294,7 @@
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="width" use="required"/>
                 <xs:attribute type="xs:string" name="height" use="required"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -360,9 +302,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="userInput"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -373,9 +313,7 @@
                 <xs:attribute type="xs:string" name="selectorArray"/>
                 <xs:attribute type="xs:string" name="x"/>
                 <xs:attribute type="xs:string" name="y"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -385,9 +323,7 @@
                 <xs:attribute type="xs:string" name="selector" use="required"/>
                 <xs:attribute type="xs:string" name="userInput"/>
                 <xs:attribute type="xs:string" name="parameterArray"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -397,9 +333,7 @@
                 <xs:attribute type="xs:string" name="userInput" use="required"/>
                 <xs:attribute type="xs:string" name="parameterArray"/>
                 <xs:attribute type="xs:string" name="value" use="required"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -409,9 +343,7 @@
                 <xs:attribute type="xs:string" name="selector" use="required"/>
                 <xs:attribute type="xs:string" name="parameterArray" use="required"/>
                 <xs:attribute type="xs:string" name="button"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -419,9 +351,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="userInput"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -429,9 +359,7 @@
         <xs:simpleContent>
             <xs:extension base="xs:string">
                 <xs:attribute type="xs:string" name="selector" use="required"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
@@ -441,9 +369,7 @@
                 <xs:attribute type="xs:string" name="selector" use="required"/>
                 <xs:attribute type="xs:string" name="userInput"/>
                 <xs:attribute type="xs:string" name="parameterArray"/>
-                <xs:attribute ref="stepKey" use="required"/>
-                <xs:attribute ref="before"/>
-                <xs:attribute ref="after"/>
+                <xs:attributeGroup ref="commonActionAttributes"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
diff --git a/src/Magento/FunctionalTestingFramework/Test/etc/testSchema.xsd b/src/Magento/FunctionalTestingFramework/Test/etc/testSchema.xsd
index 6bc4ca682..6de656355 100644
--- a/src/Magento/FunctionalTestingFramework/Test/etc/testSchema.xsd
+++ b/src/Magento/FunctionalTestingFramework/Test/etc/testSchema.xsd
@@ -9,7 +9,6 @@
 <xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
 
     <xs:include schemaLocation="actionTypeTags.xsd"/>
-
     <!-- Container types -->
 
     <xs:element name="tests" type="configType"/>
@@ -49,9 +48,9 @@
     <xs:complexType name="testType">
         <xs:choice minOccurs="0" maxOccurs="unbounded">
             <xs:group ref="testTypeTags"/>
-            <xs:element type="hookType" name="before" minOccurs="0" maxOccurs="1"/>
-            <xs:element type="hookType" name="after" minOccurs="0" maxOccurs="1"/>
-            <xs:element type="annotationsType" name="annotations" minOccurs="0" maxOccurs="1"/>
+            <xs:element type="hookType" name="before" minOccurs="0"/>
+            <xs:element type="hookType" name="after" minOccurs="0"/>
+            <xs:element type="annotationsType" name="annotations" minOccurs="0"/>
         </xs:choice>
         <xs:attribute type="xs:string" name="name"/>
         <xs:attribute type="xs:boolean" name="remove" default="false"/>
@@ -75,9 +74,7 @@
             </xs:element>
         </xs:sequence>
         <xs:attribute type="xs:string" name="ref" use="required"/>
-        <xs:attribute ref="stepKey" use="required"/>
-        <xs:attribute ref="before"/>
-        <xs:attribute ref="after"/>
+        <xs:attributeGroup ref="commonActionAttributes"/>
     </xs:complexType>
 
 </xs:schema>