doc-detective-common 1.11.0-dev.2 → 1.11.0-dev.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "doc-detective-common",
3
- "version": "1.11.0-dev.2",
3
+ "version": "1.11.0-dev.3",
4
4
  "description": "Shared components for Doc Detective projects. ",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -30,7 +30,6 @@
30
30
  "description": "Text that the element should contain. If the element doesn't contain the text, the step fails."
31
31
  },
32
32
  "moveTo": {
33
- "type": "boolean",
34
33
  "description": "Move to the element. If the element isn't visible, it's scrolled into view. Only runs the if the test is being recorded.",
35
34
  "oneOf": [
36
35
  {
@@ -78,11 +77,13 @@
78
77
  }
79
78
  }
80
79
  }
81
- ]
80
+ ],
81
+ "default": false
82
82
  },
83
83
  "click": {
84
84
  "type": "boolean",
85
- "description": "Click the element."
85
+ "description": "Click the element.",
86
+ "default": false
86
87
  },
87
88
  "typeKeys": {
88
89
  "description": "Type keys after finding the element. Either a string or an object with a `keys` field as defined in [`typeKeys`](/reference/schemas/typeKeys).<br><br>To type in the element, make the element active with the `click` parameter.",
@@ -111,6 +112,11 @@
111
112
  }
112
113
  }
113
114
  ]
115
+ },
116
+ "delay": {
117
+ "type": "number",
118
+ "description": "Delay in milliseconds between each key press. Only valid during a recording.",
119
+ "default": 100
114
120
  }
115
121
  }
116
122
  }
@@ -138,6 +144,41 @@
138
144
  "moveTo": true,
139
145
  "click": true,
140
146
  "typeKeys": "shorthair cat"
147
+ },
148
+ {
149
+ "action": "find",
150
+ "selector": "[title=Search]",
151
+ "timeout": 10000,
152
+ "matchText": "Search",
153
+ "moveTo": true,
154
+ "click": true,
155
+ "typeKeys": {
156
+ "keys": [
157
+ "shorthair cat"
158
+ ],
159
+ "delay": 100
160
+ }
161
+ },
162
+ {
163
+ "action": "find",
164
+ "selector": "[title=Search]",
165
+ "timeout": 10000,
166
+ "matchText": "Search",
167
+ "moveTo": {
168
+ "alignment": "top",
169
+ "offset": {
170
+ "x": -1,
171
+ "y": 1
172
+ },
173
+ "duration": 1000
174
+ },
175
+ "click": true,
176
+ "typeKeys": {
177
+ "keys": [
178
+ "shorthair cat"
179
+ ],
180
+ "delay": 100
181
+ }
141
182
  }
142
183
  ]
143
184
  }
@@ -23,7 +23,7 @@
23
23
  },
24
24
  "directory": {
25
25
  "type": "string",
26
- "description": "Directory of the PNG file. Attempts to creatr the directory if it doesn't exist. If not specified, the directory is your media directory."
26
+ "description": "Directory of the PNG file. Attempts to create the directory if it doesn't exist. If not specified, the directory is your media directory."
27
27
  },
28
28
  "maxVariation": {
29
29
  "type": "number",
@@ -708,7 +708,7 @@
708
708
  },
709
709
  "directory": {
710
710
  "type": "string",
711
- "description": "Directory of the PNG file. Attempts to creatr the directory if it doesn't exist. If not specified, the directory is your media directory."
711
+ "description": "Directory of the PNG file. Attempts to create the directory if it doesn't exist. If not specified, the directory is your media directory."
712
712
  },
713
713
  "maxVariation": {
714
714
  "type": "number",
@@ -815,12 +815,16 @@
815
815
  "path": {
816
816
  "type": "string",
817
817
  "description": "File path of the recording. Supports the `.mp4`, `.webm`, and `.gif` extensions. If not specified, the file path is your media directory, the file name is the ID of the step, and the extension is `.mp4`.",
818
- "pattern": "([A-Za-z0-9_-]*\\.(mp4|MP4|webm|WEBM|gif|GIF)$|\\$[A-Za-z0-9_]+)"
818
+ "pattern": "([A-Za-z0-9_-]*\\.(mp4|webm|gif)$|\\$[A-Za-z0-9_]+)"
819
819
  },
820
- "fps": {
821
- "type": "integer",
822
- "description": "Target frames-per-second for the recording.",
823
- "default": 30
820
+ "directory": {
821
+ "type": "string",
822
+ "description": "Directory of the file. Attempts to create the directory if it doesn't exist. If not specified, the directory is your media directory."
823
+ },
824
+ "overwrite": {
825
+ "type": "boolean",
826
+ "description": "If `true`, overwrites the existing file at `path` if it exists.",
827
+ "default": false
824
828
  }
825
829
  },
826
830
  "dynamicDefaults": {
@@ -834,10 +838,15 @@
834
838
  {
835
839
  "action": "startRecording"
836
840
  },
841
+ {
842
+ "action": "startRecording",
843
+ "path": "results.mp4"
844
+ },
837
845
  {
838
846
  "action": "startRecording",
839
847
  "path": "results.mp4",
840
- "fps": 30
848
+ "directory": "static/media",
849
+ "overwrite": true
841
850
  }
842
851
  ]
843
852
  },
@@ -908,6 +917,11 @@
908
917
  }
909
918
  }
910
919
  ]
920
+ },
921
+ "delay": {
922
+ "type": "number",
923
+ "description": "Delay in milliseconds between each key press. Only valid during a recording.",
924
+ "default": 100
911
925
  }
912
926
  },
913
927
  "dynamicDefaults": {
@@ -928,6 +942,14 @@
928
942
  "keys": [
929
943
  "$ENTER$"
930
944
  ]
945
+ },
946
+ {
947
+ "action": "typeKeys",
948
+ "keys": [
949
+ "kittens",
950
+ "$ENTER$"
951
+ ],
952
+ "delay": 500
931
953
  }
932
954
  ]
933
955
  },
@@ -963,7 +985,6 @@
963
985
  "description": "Text that the element should contain. If the element doesn't contain the text, the step fails."
964
986
  },
965
987
  "moveTo": {
966
- "type": "boolean",
967
988
  "description": "Move to the element. If the element isn't visible, it's scrolled into view. Only runs the if the test is being recorded.",
968
989
  "oneOf": [
969
990
  {
@@ -1011,11 +1032,13 @@
1011
1032
  }
1012
1033
  }
1013
1034
  }
1014
- ]
1035
+ ],
1036
+ "default": false
1015
1037
  },
1016
1038
  "click": {
1017
1039
  "type": "boolean",
1018
- "description": "Click the element."
1040
+ "description": "Click the element.",
1041
+ "default": false
1019
1042
  },
1020
1043
  "typeKeys": {
1021
1044
  "description": "Type keys after finding the element. Either a string or an object with a `keys` field as defined in [`typeKeys`](/reference/schemas/typeKeys).<br><br>To type in the element, make the element active with the `click` parameter.",
@@ -1044,6 +1067,11 @@
1044
1067
  }
1045
1068
  }
1046
1069
  ]
1070
+ },
1071
+ "delay": {
1072
+ "type": "number",
1073
+ "description": "Delay in milliseconds between each key press. Only valid during a recording.",
1074
+ "default": 100
1047
1075
  }
1048
1076
  }
1049
1077
  }
@@ -1071,6 +1099,41 @@
1071
1099
  "moveTo": true,
1072
1100
  "click": true,
1073
1101
  "typeKeys": "shorthair cat"
1102
+ },
1103
+ {
1104
+ "action": "find",
1105
+ "selector": "[title=Search]",
1106
+ "timeout": 10000,
1107
+ "matchText": "Search",
1108
+ "moveTo": true,
1109
+ "click": true,
1110
+ "typeKeys": {
1111
+ "keys": [
1112
+ "shorthair cat"
1113
+ ],
1114
+ "delay": 100
1115
+ }
1116
+ },
1117
+ {
1118
+ "action": "find",
1119
+ "selector": "[title=Search]",
1120
+ "timeout": 10000,
1121
+ "matchText": "Search",
1122
+ "moveTo": {
1123
+ "alignment": "top",
1124
+ "offset": {
1125
+ "x": -1,
1126
+ "y": 1
1127
+ },
1128
+ "duration": 1000
1129
+ },
1130
+ "click": true,
1131
+ "typeKeys": {
1132
+ "keys": [
1133
+ "shorthair cat"
1134
+ ],
1135
+ "delay": 100
1136
+ }
1074
1137
  }
1075
1138
  ]
1076
1139
  },
@@ -19,12 +19,16 @@
19
19
  "path": {
20
20
  "type": "string",
21
21
  "description": "File path of the recording. Supports the `.mp4`, `.webm`, and `.gif` extensions. If not specified, the file path is your media directory, the file name is the ID of the step, and the extension is `.mp4`.",
22
- "pattern": "([A-Za-z0-9_-]*\\.(mp4|MP4|webm|WEBM|gif|GIF)$|\\$[A-Za-z0-9_]+)"
22
+ "pattern": "([A-Za-z0-9_-]*\\.(mp4|webm|gif)$|\\$[A-Za-z0-9_]+)"
23
23
  },
24
- "fps": {
25
- "type": "integer",
26
- "description": "Target frames-per-second for the recording.",
27
- "default": 30
24
+ "directory": {
25
+ "type": "string",
26
+ "description": "Directory of the file. Attempts to create the directory if it doesn't exist. If not specified, the directory is your media directory."
27
+ },
28
+ "overwrite": {
29
+ "type": "boolean",
30
+ "description": "If `true`, overwrites the existing file at `path` if it exists.",
31
+ "default": false
28
32
  }
29
33
  },
30
34
  "dynamicDefaults": {
@@ -38,10 +42,15 @@
38
42
  {
39
43
  "action": "startRecording"
40
44
  },
45
+ {
46
+ "action": "startRecording",
47
+ "path": "results.mp4"
48
+ },
41
49
  {
42
50
  "action": "startRecording",
43
51
  "path": "results.mp4",
44
- "fps": 30
52
+ "directory": "static/media",
53
+ "overwrite": true
45
54
  }
46
55
  ]
47
56
  }
@@ -569,7 +569,7 @@
569
569
  },
570
570
  "directory": {
571
571
  "type": "string",
572
- "description": "Directory of the PNG file. Attempts to creatr the directory if it doesn't exist. If not specified, the directory is your media directory."
572
+ "description": "Directory of the PNG file. Attempts to create the directory if it doesn't exist. If not specified, the directory is your media directory."
573
573
  },
574
574
  "maxVariation": {
575
575
  "type": "number",
@@ -676,12 +676,16 @@
676
676
  "path": {
677
677
  "type": "string",
678
678
  "description": "File path of the recording. Supports the `.mp4`, `.webm`, and `.gif` extensions. If not specified, the file path is your media directory, the file name is the ID of the step, and the extension is `.mp4`.",
679
- "pattern": "([A-Za-z0-9_-]*\\.(mp4|MP4|webm|WEBM|gif|GIF)$|\\$[A-Za-z0-9_]+)"
679
+ "pattern": "([A-Za-z0-9_-]*\\.(mp4|webm|gif)$|\\$[A-Za-z0-9_]+)"
680
680
  },
681
- "fps": {
682
- "type": "integer",
683
- "description": "Target frames-per-second for the recording.",
684
- "default": 30
681
+ "directory": {
682
+ "type": "string",
683
+ "description": "Directory of the file. Attempts to create the directory if it doesn't exist. If not specified, the directory is your media directory."
684
+ },
685
+ "overwrite": {
686
+ "type": "boolean",
687
+ "description": "If `true`, overwrites the existing file at `path` if it exists.",
688
+ "default": false
685
689
  }
686
690
  },
687
691
  "dynamicDefaults": {
@@ -695,10 +699,15 @@
695
699
  {
696
700
  "action": "startRecording"
697
701
  },
702
+ {
703
+ "action": "startRecording",
704
+ "path": "results.mp4"
705
+ },
698
706
  {
699
707
  "action": "startRecording",
700
708
  "path": "results.mp4",
701
- "fps": 30
709
+ "directory": "static/media",
710
+ "overwrite": true
702
711
  }
703
712
  ]
704
713
  },
@@ -769,6 +778,11 @@
769
778
  }
770
779
  }
771
780
  ]
781
+ },
782
+ "delay": {
783
+ "type": "number",
784
+ "description": "Delay in milliseconds between each key press. Only valid during a recording.",
785
+ "default": 100
772
786
  }
773
787
  },
774
788
  "dynamicDefaults": {
@@ -789,6 +803,14 @@
789
803
  "keys": [
790
804
  "$ENTER$"
791
805
  ]
806
+ },
807
+ {
808
+ "action": "typeKeys",
809
+ "keys": [
810
+ "kittens",
811
+ "$ENTER$"
812
+ ],
813
+ "delay": 500
792
814
  }
793
815
  ]
794
816
  },
@@ -824,7 +846,6 @@
824
846
  "description": "Text that the element should contain. If the element doesn't contain the text, the step fails."
825
847
  },
826
848
  "moveTo": {
827
- "type": "boolean",
828
849
  "description": "Move to the element. If the element isn't visible, it's scrolled into view. Only runs the if the test is being recorded.",
829
850
  "oneOf": [
830
851
  {
@@ -872,11 +893,13 @@
872
893
  }
873
894
  }
874
895
  }
875
- ]
896
+ ],
897
+ "default": false
876
898
  },
877
899
  "click": {
878
900
  "type": "boolean",
879
- "description": "Click the element."
901
+ "description": "Click the element.",
902
+ "default": false
880
903
  },
881
904
  "typeKeys": {
882
905
  "description": "Type keys after finding the element. Either a string or an object with a `keys` field as defined in [`typeKeys`](/reference/schemas/typeKeys).<br><br>To type in the element, make the element active with the `click` parameter.",
@@ -905,6 +928,11 @@
905
928
  }
906
929
  }
907
930
  ]
931
+ },
932
+ "delay": {
933
+ "type": "number",
934
+ "description": "Delay in milliseconds between each key press. Only valid during a recording.",
935
+ "default": 100
908
936
  }
909
937
  }
910
938
  }
@@ -932,6 +960,41 @@
932
960
  "moveTo": true,
933
961
  "click": true,
934
962
  "typeKeys": "shorthair cat"
963
+ },
964
+ {
965
+ "action": "find",
966
+ "selector": "[title=Search]",
967
+ "timeout": 10000,
968
+ "matchText": "Search",
969
+ "moveTo": true,
970
+ "click": true,
971
+ "typeKeys": {
972
+ "keys": [
973
+ "shorthair cat"
974
+ ],
975
+ "delay": 100
976
+ }
977
+ },
978
+ {
979
+ "action": "find",
980
+ "selector": "[title=Search]",
981
+ "timeout": 10000,
982
+ "matchText": "Search",
983
+ "moveTo": {
984
+ "alignment": "top",
985
+ "offset": {
986
+ "x": -1,
987
+ "y": 1
988
+ },
989
+ "duration": 1000
990
+ },
991
+ "click": true,
992
+ "typeKeys": {
993
+ "keys": [
994
+ "shorthair cat"
995
+ ],
996
+ "delay": 100
997
+ }
935
998
  }
936
999
  ]
937
1000
  },
@@ -33,6 +33,11 @@
33
33
  }
34
34
  }
35
35
  ]
36
+ },
37
+ "delay": {
38
+ "type": "number",
39
+ "description": "Delay in milliseconds between each key press. Only valid during a recording.",
40
+ "default": 100
36
41
  }
37
42
  },
38
43
  "dynamicDefaults": {
@@ -53,6 +58,14 @@
53
58
  "keys": [
54
59
  "$ENTER$"
55
60
  ]
61
+ },
62
+ {
63
+ "action": "typeKeys",
64
+ "keys": [
65
+ "kittens",
66
+ "$ENTER$"
67
+ ],
68
+ "delay": 500
56
69
  }
57
70
  ]
58
71
  }
@@ -1413,7 +1413,6 @@
1413
1413
  "description": "Text that the element should contain. If the element doesn't contain the text, the step fails."
1414
1414
  },
1415
1415
  "moveTo": {
1416
- "type": "boolean",
1417
1416
  "description": "Move to the element. If the element isn't visible, it's scrolled into view. Only runs the if the test is being recorded.",
1418
1417
  "oneOf": [
1419
1418
  {
@@ -1461,11 +1460,13 @@
1461
1460
  }
1462
1461
  }
1463
1462
  }
1464
- ]
1463
+ ],
1464
+ "default": false
1465
1465
  },
1466
1466
  "click": {
1467
1467
  "type": "boolean",
1468
- "description": "Click the element."
1468
+ "description": "Click the element.",
1469
+ "default": false
1469
1470
  },
1470
1471
  "typeKeys": {
1471
1472
  "description": "Type keys after finding the element. Either a string or an object with a `keys` field as defined in [`typeKeys`](/reference/schemas/typeKeys).<br><br>To type in the element, make the element active with the `click` parameter.",
@@ -1494,6 +1495,11 @@
1494
1495
  }
1495
1496
  }
1496
1497
  ]
1498
+ },
1499
+ "delay": {
1500
+ "type": "number",
1501
+ "description": "Delay in milliseconds between each key press. Only valid during a recording.",
1502
+ "default": 100
1497
1503
  }
1498
1504
  }
1499
1505
  }
@@ -1521,6 +1527,41 @@
1521
1527
  "moveTo": true,
1522
1528
  "click": true,
1523
1529
  "typeKeys": "shorthair cat"
1530
+ },
1531
+ {
1532
+ "action": "find",
1533
+ "selector": "[title=Search]",
1534
+ "timeout": 10000,
1535
+ "matchText": "Search",
1536
+ "moveTo": true,
1537
+ "click": true,
1538
+ "typeKeys": {
1539
+ "keys": [
1540
+ "shorthair cat"
1541
+ ],
1542
+ "delay": 100
1543
+ }
1544
+ },
1545
+ {
1546
+ "action": "find",
1547
+ "selector": "[title=Search]",
1548
+ "timeout": 10000,
1549
+ "matchText": "Search",
1550
+ "moveTo": {
1551
+ "alignment": "top",
1552
+ "offset": {
1553
+ "x": -1,
1554
+ "y": 1
1555
+ },
1556
+ "duration": 1000
1557
+ },
1558
+ "click": true,
1559
+ "typeKeys": {
1560
+ "keys": [
1561
+ "shorthair cat"
1562
+ ],
1563
+ "delay": 100
1564
+ }
1524
1565
  }
1525
1566
  ]
1526
1567
  },
@@ -1961,7 +2002,7 @@
1961
2002
  },
1962
2003
  "directory": {
1963
2004
  "type": "string",
1964
- "description": "Directory of the PNG file. Attempts to creatr the directory if it doesn't exist. If not specified, the directory is your media directory."
2005
+ "description": "Directory of the PNG file. Attempts to create the directory if it doesn't exist. If not specified, the directory is your media directory."
1965
2006
  },
1966
2007
  "maxVariation": {
1967
2008
  "type": "number",
@@ -2068,12 +2109,16 @@
2068
2109
  "path": {
2069
2110
  "type": "string",
2070
2111
  "description": "File path of the recording. Supports the `.mp4`, `.webm`, and `.gif` extensions. If not specified, the file path is your media directory, the file name is the ID of the step, and the extension is `.mp4`.",
2071
- "pattern": "([A-Za-z0-9_-]*\\.(mp4|MP4|webm|WEBM|gif|GIF)$|\\$[A-Za-z0-9_]+)"
2112
+ "pattern": "([A-Za-z0-9_-]*\\.(mp4|webm|gif)$|\\$[A-Za-z0-9_]+)"
2072
2113
  },
2073
- "fps": {
2074
- "type": "integer",
2075
- "description": "Target frames-per-second for the recording.",
2076
- "default": 30
2114
+ "directory": {
2115
+ "type": "string",
2116
+ "description": "Directory of the file. Attempts to create the directory if it doesn't exist. If not specified, the directory is your media directory."
2117
+ },
2118
+ "overwrite": {
2119
+ "type": "boolean",
2120
+ "description": "If `true`, overwrites the existing file at `path` if it exists.",
2121
+ "default": false
2077
2122
  }
2078
2123
  },
2079
2124
  "dynamicDefaults": {
@@ -2087,10 +2132,15 @@
2087
2132
  {
2088
2133
  "action": "startRecording"
2089
2134
  },
2135
+ {
2136
+ "action": "startRecording",
2137
+ "path": "results.mp4"
2138
+ },
2090
2139
  {
2091
2140
  "action": "startRecording",
2092
2141
  "path": "results.mp4",
2093
- "fps": 30
2142
+ "directory": "static/media",
2143
+ "overwrite": true
2094
2144
  }
2095
2145
  ]
2096
2146
  },
@@ -2836,7 +2886,7 @@
2836
2886
  },
2837
2887
  "directory": {
2838
2888
  "type": "string",
2839
- "description": "Directory of the PNG file. Attempts to creatr the directory if it doesn't exist. If not specified, the directory is your media directory."
2889
+ "description": "Directory of the PNG file. Attempts to create the directory if it doesn't exist. If not specified, the directory is your media directory."
2840
2890
  },
2841
2891
  "maxVariation": {
2842
2892
  "type": "number",
@@ -2943,12 +2993,16 @@
2943
2993
  "path": {
2944
2994
  "type": "string",
2945
2995
  "description": "File path of the recording. Supports the `.mp4`, `.webm`, and `.gif` extensions. If not specified, the file path is your media directory, the file name is the ID of the step, and the extension is `.mp4`.",
2946
- "pattern": "([A-Za-z0-9_-]*\\.(mp4|MP4|webm|WEBM|gif|GIF)$|\\$[A-Za-z0-9_]+)"
2996
+ "pattern": "([A-Za-z0-9_-]*\\.(mp4|webm|gif)$|\\$[A-Za-z0-9_]+)"
2947
2997
  },
2948
- "fps": {
2949
- "type": "integer",
2950
- "description": "Target frames-per-second for the recording.",
2951
- "default": 30
2998
+ "directory": {
2999
+ "type": "string",
3000
+ "description": "Directory of the file. Attempts to create the directory if it doesn't exist. If not specified, the directory is your media directory."
3001
+ },
3002
+ "overwrite": {
3003
+ "type": "boolean",
3004
+ "description": "If `true`, overwrites the existing file at `path` if it exists.",
3005
+ "default": false
2952
3006
  }
2953
3007
  },
2954
3008
  "dynamicDefaults": {
@@ -2962,10 +3016,15 @@
2962
3016
  {
2963
3017
  "action": "startRecording"
2964
3018
  },
3019
+ {
3020
+ "action": "startRecording",
3021
+ "path": "results.mp4"
3022
+ },
2965
3023
  {
2966
3024
  "action": "startRecording",
2967
3025
  "path": "results.mp4",
2968
- "fps": 30
3026
+ "directory": "static/media",
3027
+ "overwrite": true
2969
3028
  }
2970
3029
  ]
2971
3030
  },
@@ -3036,6 +3095,11 @@
3036
3095
  }
3037
3096
  }
3038
3097
  ]
3098
+ },
3099
+ "delay": {
3100
+ "type": "number",
3101
+ "description": "Delay in milliseconds between each key press. Only valid during a recording.",
3102
+ "default": 100
3039
3103
  }
3040
3104
  },
3041
3105
  "dynamicDefaults": {
@@ -3056,6 +3120,14 @@
3056
3120
  "keys": [
3057
3121
  "$ENTER$"
3058
3122
  ]
3123
+ },
3124
+ {
3125
+ "action": "typeKeys",
3126
+ "keys": [
3127
+ "kittens",
3128
+ "$ENTER$"
3129
+ ],
3130
+ "delay": 500
3059
3131
  }
3060
3132
  ]
3061
3133
  },
@@ -3091,7 +3163,6 @@
3091
3163
  "description": "Text that the element should contain. If the element doesn't contain the text, the step fails."
3092
3164
  },
3093
3165
  "moveTo": {
3094
- "type": "boolean",
3095
3166
  "description": "Move to the element. If the element isn't visible, it's scrolled into view. Only runs the if the test is being recorded.",
3096
3167
  "oneOf": [
3097
3168
  {
@@ -3139,11 +3210,13 @@
3139
3210
  }
3140
3211
  }
3141
3212
  }
3142
- ]
3213
+ ],
3214
+ "default": false
3143
3215
  },
3144
3216
  "click": {
3145
3217
  "type": "boolean",
3146
- "description": "Click the element."
3218
+ "description": "Click the element.",
3219
+ "default": false
3147
3220
  },
3148
3221
  "typeKeys": {
3149
3222
  "description": "Type keys after finding the element. Either a string or an object with a `keys` field as defined in [`typeKeys`](/reference/schemas/typeKeys).<br><br>To type in the element, make the element active with the `click` parameter.",
@@ -3172,6 +3245,11 @@
3172
3245
  }
3173
3246
  }
3174
3247
  ]
3248
+ },
3249
+ "delay": {
3250
+ "type": "number",
3251
+ "description": "Delay in milliseconds between each key press. Only valid during a recording.",
3252
+ "default": 100
3175
3253
  }
3176
3254
  }
3177
3255
  }
@@ -3199,6 +3277,41 @@
3199
3277
  "moveTo": true,
3200
3278
  "click": true,
3201
3279
  "typeKeys": "shorthair cat"
3280
+ },
3281
+ {
3282
+ "action": "find",
3283
+ "selector": "[title=Search]",
3284
+ "timeout": 10000,
3285
+ "matchText": "Search",
3286
+ "moveTo": true,
3287
+ "click": true,
3288
+ "typeKeys": {
3289
+ "keys": [
3290
+ "shorthair cat"
3291
+ ],
3292
+ "delay": 100
3293
+ }
3294
+ },
3295
+ {
3296
+ "action": "find",
3297
+ "selector": "[title=Search]",
3298
+ "timeout": 10000,
3299
+ "matchText": "Search",
3300
+ "moveTo": {
3301
+ "alignment": "top",
3302
+ "offset": {
3303
+ "x": -1,
3304
+ "y": 1
3305
+ },
3306
+ "duration": 1000
3307
+ },
3308
+ "click": true,
3309
+ "typeKeys": {
3310
+ "keys": [
3311
+ "shorthair cat"
3312
+ ],
3313
+ "delay": 100
3314
+ }
3202
3315
  }
3203
3316
  ]
3204
3317
  },
@@ -4046,7 +4159,7 @@
4046
4159
  },
4047
4160
  "directory": {
4048
4161
  "type": "string",
4049
- "description": "Directory of the PNG file. Attempts to creatr the directory if it doesn't exist. If not specified, the directory is your media directory."
4162
+ "description": "Directory of the PNG file. Attempts to create the directory if it doesn't exist. If not specified, the directory is your media directory."
4050
4163
  },
4051
4164
  "maxVariation": {
4052
4165
  "type": "number",
@@ -4153,12 +4266,16 @@
4153
4266
  "path": {
4154
4267
  "type": "string",
4155
4268
  "description": "File path of the recording. Supports the `.mp4`, `.webm`, and `.gif` extensions. If not specified, the file path is your media directory, the file name is the ID of the step, and the extension is `.mp4`.",
4156
- "pattern": "([A-Za-z0-9_-]*\\.(mp4|MP4|webm|WEBM|gif|GIF)$|\\$[A-Za-z0-9_]+)"
4269
+ "pattern": "([A-Za-z0-9_-]*\\.(mp4|webm|gif)$|\\$[A-Za-z0-9_]+)"
4157
4270
  },
4158
- "fps": {
4159
- "type": "integer",
4160
- "description": "Target frames-per-second for the recording.",
4161
- "default": 30
4271
+ "directory": {
4272
+ "type": "string",
4273
+ "description": "Directory of the file. Attempts to create the directory if it doesn't exist. If not specified, the directory is your media directory."
4274
+ },
4275
+ "overwrite": {
4276
+ "type": "boolean",
4277
+ "description": "If `true`, overwrites the existing file at `path` if it exists.",
4278
+ "default": false
4162
4279
  }
4163
4280
  },
4164
4281
  "dynamicDefaults": {
@@ -4172,10 +4289,15 @@
4172
4289
  {
4173
4290
  "action": "startRecording"
4174
4291
  },
4292
+ {
4293
+ "action": "startRecording",
4294
+ "path": "results.mp4"
4295
+ },
4175
4296
  {
4176
4297
  "action": "startRecording",
4177
4298
  "path": "results.mp4",
4178
- "fps": 30
4299
+ "directory": "static/media",
4300
+ "overwrite": true
4179
4301
  }
4180
4302
  ]
4181
4303
  },
@@ -4246,6 +4368,11 @@
4246
4368
  }
4247
4369
  }
4248
4370
  ]
4371
+ },
4372
+ "delay": {
4373
+ "type": "number",
4374
+ "description": "Delay in milliseconds between each key press. Only valid during a recording.",
4375
+ "default": 100
4249
4376
  }
4250
4377
  },
4251
4378
  "dynamicDefaults": {
@@ -4266,6 +4393,14 @@
4266
4393
  "keys": [
4267
4394
  "$ENTER$"
4268
4395
  ]
4396
+ },
4397
+ {
4398
+ "action": "typeKeys",
4399
+ "keys": [
4400
+ "kittens",
4401
+ "$ENTER$"
4402
+ ],
4403
+ "delay": 500
4269
4404
  }
4270
4405
  ]
4271
4406
  },
@@ -4301,7 +4436,6 @@
4301
4436
  "description": "Text that the element should contain. If the element doesn't contain the text, the step fails."
4302
4437
  },
4303
4438
  "moveTo": {
4304
- "type": "boolean",
4305
4439
  "description": "Move to the element. If the element isn't visible, it's scrolled into view. Only runs the if the test is being recorded.",
4306
4440
  "oneOf": [
4307
4441
  {
@@ -4349,11 +4483,13 @@
4349
4483
  }
4350
4484
  }
4351
4485
  }
4352
- ]
4486
+ ],
4487
+ "default": false
4353
4488
  },
4354
4489
  "click": {
4355
4490
  "type": "boolean",
4356
- "description": "Click the element."
4491
+ "description": "Click the element.",
4492
+ "default": false
4357
4493
  },
4358
4494
  "typeKeys": {
4359
4495
  "description": "Type keys after finding the element. Either a string or an object with a `keys` field as defined in [`typeKeys`](/reference/schemas/typeKeys).<br><br>To type in the element, make the element active with the `click` parameter.",
@@ -4382,6 +4518,11 @@
4382
4518
  }
4383
4519
  }
4384
4520
  ]
4521
+ },
4522
+ "delay": {
4523
+ "type": "number",
4524
+ "description": "Delay in milliseconds between each key press. Only valid during a recording.",
4525
+ "default": 100
4385
4526
  }
4386
4527
  }
4387
4528
  }
@@ -4409,6 +4550,41 @@
4409
4550
  "moveTo": true,
4410
4551
  "click": true,
4411
4552
  "typeKeys": "shorthair cat"
4553
+ },
4554
+ {
4555
+ "action": "find",
4556
+ "selector": "[title=Search]",
4557
+ "timeout": 10000,
4558
+ "matchText": "Search",
4559
+ "moveTo": true,
4560
+ "click": true,
4561
+ "typeKeys": {
4562
+ "keys": [
4563
+ "shorthair cat"
4564
+ ],
4565
+ "delay": 100
4566
+ }
4567
+ },
4568
+ {
4569
+ "action": "find",
4570
+ "selector": "[title=Search]",
4571
+ "timeout": 10000,
4572
+ "matchText": "Search",
4573
+ "moveTo": {
4574
+ "alignment": "top",
4575
+ "offset": {
4576
+ "x": -1,
4577
+ "y": 1
4578
+ },
4579
+ "duration": 1000
4580
+ },
4581
+ "click": true,
4582
+ "typeKeys": {
4583
+ "keys": [
4584
+ "shorthair cat"
4585
+ ],
4586
+ "delay": 100
4587
+ }
4412
4588
  }
4413
4589
  ]
4414
4590
  },
@@ -4606,6 +4782,11 @@
4606
4782
  }
4607
4783
  }
4608
4784
  ]
4785
+ },
4786
+ "delay": {
4787
+ "type": "number",
4788
+ "description": "Delay in milliseconds between each key press. Only valid during a recording.",
4789
+ "default": 100
4609
4790
  }
4610
4791
  },
4611
4792
  "dynamicDefaults": {
@@ -4626,6 +4807,14 @@
4626
4807
  "keys": [
4627
4808
  "$ENTER$"
4628
4809
  ]
4810
+ },
4811
+ {
4812
+ "action": "typeKeys",
4813
+ "keys": [
4814
+ "kittens",
4815
+ "$ENTER$"
4816
+ ],
4817
+ "delay": 500
4629
4818
  }
4630
4819
  ]
4631
4820
  },
@@ -30,7 +30,6 @@
30
30
  "description": "Text that the element should contain. If the element doesn't contain the text, the step fails."
31
31
  },
32
32
  "moveTo": {
33
- "type": "boolean",
34
33
  "description": "Move to the element. If the element isn't visible, it's scrolled into view. Only runs the if the test is being recorded.",
35
34
  "oneOf": [
36
35
  {
@@ -50,12 +49,15 @@
50
49
  "$ref": "moveTo_v2.schema.json#/properties/duration"
51
50
  }
52
51
  }
52
+
53
53
  }
54
- ]
54
+ ],
55
+ "default": false
55
56
  },
56
57
  "click": {
57
58
  "type": "boolean",
58
- "description": "Click the element."
59
+ "description": "Click the element.",
60
+ "default": false
59
61
  },
60
62
  "typeKeys": {
61
63
  "description": "Type keys after finding the element. Either a string or an object with a `keys` field as defined in [`typeKeys`](/reference/schemas/typeKeys).<br><br>To type in the element, make the element active with the `click` parameter.",
@@ -69,6 +71,9 @@
69
71
  "properties": {
70
72
  "keys": {
71
73
  "$ref": "typeKeys_v2.schema.json#/properties/keys"
74
+ },
75
+ "delay": {
76
+ "$ref": "typeKeys_v2.schema.json#/properties/delay"
72
77
  }
73
78
  }
74
79
  }
@@ -92,7 +97,38 @@
92
97
  "matchText": "Search",
93
98
  "moveTo": true,
94
99
  "click": true,
95
- "typeKeys": "shorthair cat"
100
+ "typeKeys": "shorthair cat"
101
+ },
102
+ {
103
+ "action": "find",
104
+ "selector": "[title=Search]",
105
+ "timeout": 10000,
106
+ "matchText": "Search",
107
+ "moveTo": true,
108
+ "click": true,
109
+ "typeKeys": {
110
+ "keys": ["shorthair cat"],
111
+ "delay": 100
112
+ }
113
+ },
114
+ {
115
+ "action": "find",
116
+ "selector": "[title=Search]",
117
+ "timeout": 10000,
118
+ "matchText": "Search",
119
+ "moveTo": {
120
+ "alignment": "top",
121
+ "offset": {
122
+ "x": -1,
123
+ "y": 1
124
+ },
125
+ "duration": 1000
126
+ },
127
+ "click": true,
128
+ "typeKeys": {
129
+ "keys": ["shorthair cat"],
130
+ "delay": 100
131
+ }
96
132
  }
97
133
  ]
98
134
  }
@@ -23,7 +23,7 @@
23
23
  },
24
24
  "directory": {
25
25
  "type": "string",
26
- "description": "Directory of the PNG file. Attempts to creatr the directory if it doesn't exist. If not specified, the directory is your media directory."
26
+ "description": "Directory of the PNG file. Attempts to create the directory if it doesn't exist. If not specified, the directory is your media directory."
27
27
  },
28
28
  "maxVariation": {
29
29
  "type": "number",
@@ -19,29 +19,36 @@
19
19
  "path": {
20
20
  "type": "string",
21
21
  "description": "File path of the recording. Supports the `.mp4`, `.webm`, and `.gif` extensions. If not specified, the file path is your media directory, the file name is the ID of the step, and the extension is `.mp4`.",
22
- "pattern": "([A-Za-z0-9_-]*\\.(mp4|MP4|webm|WEBM|gif|GIF)$|\\$[A-Za-z0-9_]+)"
22
+ "pattern": "([A-Za-z0-9_-]*\\.(mp4|webm|gif)$|\\$[A-Za-z0-9_]+)"
23
23
  },
24
- "fps": {
25
- "type": "integer",
26
- "description": "Target frames-per-second for the recording.",
27
- "default": 30
24
+ "directory": {
25
+ "type": "string",
26
+ "description": "Directory of the file. Attempts to create the directory if it doesn't exist. If not specified, the directory is your media directory."
27
+ },
28
+ "overwrite": {
29
+ "type": "boolean",
30
+ "description": "If `true`, overwrites the existing file at `path` if it exists.",
31
+ "default": false
28
32
  }
29
33
  },
30
34
  "dynamicDefaults": {
31
35
  "id": "uuid"
32
36
  },
33
- "required": [
34
- "action"
35
- ],
37
+ "required": ["action"],
36
38
  "additionalProperties": false,
37
39
  "examples": [
38
40
  {
39
41
  "action": "startRecording"
40
42
  },
43
+ {
44
+ "action": "startRecording",
45
+ "path": "results.mp4"
46
+ },
41
47
  {
42
48
  "action": "startRecording",
43
49
  "path": "results.mp4",
44
- "fps": 30
50
+ "directory": "static/media",
51
+ "overwrite": true
45
52
  }
46
53
  ]
47
- }
54
+ }
@@ -33,6 +33,11 @@
33
33
  }
34
34
  }
35
35
  ]
36
+ },
37
+ "delay": {
38
+ "type": "number",
39
+ "description": "Delay in milliseconds between each key press. Only valid during a recording.",
40
+ "default": 100
36
41
  }
37
42
  },
38
43
  "dynamicDefaults": {
@@ -48,6 +53,11 @@
48
53
  {
49
54
  "action": "typeKeys",
50
55
  "keys": ["$ENTER$"]
56
+ },
57
+ {
58
+ "action": "typeKeys",
59
+ "keys": ["kittens","$ENTER$"],
60
+ "delay": 500
51
61
  }
52
62
  ]
53
63
  }