doc-detective-common 3.4.1-dev.3 → 3.4.1-dev.5

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.
Files changed (52) hide show
  1. package/dist/schemas/checkLink_v3.schema.json +2 -2
  2. package/dist/schemas/click_v3.schema.json +4 -4
  3. package/dist/schemas/config_v3.schema.json +481 -123
  4. package/dist/schemas/find_v3.schema.json +41 -28
  5. package/dist/schemas/goTo_v3.schema.json +167 -1
  6. package/dist/schemas/httpRequest_v3.schema.json +2 -2
  7. package/dist/schemas/report_v3.schema.json +478 -120
  8. package/dist/schemas/resolvedTests_v3.schema.json +1003 -287
  9. package/dist/schemas/runCode_v3.schema.json +4 -4
  10. package/dist/schemas/runShell_v3.schema.json +4 -4
  11. package/dist/schemas/screenshot_v3.schema.json +6 -6
  12. package/dist/schemas/spec_v3.schema.json +478 -120
  13. package/dist/schemas/step_v3.schema.json +238 -59
  14. package/dist/schemas/test_v3.schema.json +477 -119
  15. package/dist/schemas/type_v3.schema.json +8 -8
  16. package/package.json +2 -2
  17. package/src/schemas/build/checkLink_v3.schema.json +1 -1
  18. package/src/schemas/build/click_v3.schema.json +2 -2
  19. package/src/schemas/build/find_v3.schema.json +15 -2
  20. package/src/schemas/build/httpRequest_v3.schema.json +1 -1
  21. package/src/schemas/build/runCode_v3.schema.json +2 -2
  22. package/src/schemas/build/runShell_v3.schema.json +2 -2
  23. package/src/schemas/build/screenshot_v3.schema.json +2 -2
  24. package/src/schemas/build/test_v3.schema.json +1 -1
  25. package/src/schemas/build/type_v3.schema.json +3 -3
  26. package/src/schemas/output_schemas/checkLink_v3.schema.json +2 -2
  27. package/src/schemas/output_schemas/click_v3.schema.json +4 -4
  28. package/src/schemas/output_schemas/config_v3.schema.json +481 -123
  29. package/src/schemas/output_schemas/find_v3.schema.json +41 -28
  30. package/src/schemas/output_schemas/goTo_v3.schema.json +167 -1
  31. package/src/schemas/output_schemas/httpRequest_v3.schema.json +2 -2
  32. package/src/schemas/output_schemas/report_v3.schema.json +478 -120
  33. package/src/schemas/output_schemas/resolvedTests_v3.schema.json +1003 -287
  34. package/src/schemas/output_schemas/runCode_v3.schema.json +4 -4
  35. package/src/schemas/output_schemas/runShell_v3.schema.json +4 -4
  36. package/src/schemas/output_schemas/screenshot_v3.schema.json +6 -6
  37. package/src/schemas/output_schemas/spec_v3.schema.json +478 -120
  38. package/src/schemas/output_schemas/step_v3.schema.json +238 -59
  39. package/src/schemas/output_schemas/test_v3.schema.json +477 -119
  40. package/src/schemas/output_schemas/type_v3.schema.json +8 -8
  41. package/src/schemas/schemas.json +3588 -1082
  42. package/src/schemas/src_schemas/checkLink_v3.schema.json +1 -1
  43. package/src/schemas/src_schemas/click_v3.schema.json +2 -2
  44. package/src/schemas/src_schemas/find_v3.schema.json +12 -2
  45. package/src/schemas/src_schemas/goTo_v3.schema.json +109 -14
  46. package/src/schemas/src_schemas/httpRequest_v3.schema.json +1 -1
  47. package/src/schemas/src_schemas/runCode_v3.schema.json +2 -2
  48. package/src/schemas/src_schemas/runShell_v3.schema.json +2 -2
  49. package/src/schemas/src_schemas/screenshot_v3.schema.json +2 -2
  50. package/src/schemas/src_schemas/test_v3.schema.json +1 -1
  51. package/src/schemas/src_schemas/type_v3.schema.json +3 -3
  52. package/src/schemas/build/goTo_v3.schema.json +0 -63
@@ -160,7 +160,7 @@
160
160
  "type": "array",
161
161
  "description": "Contexts to run the test in. Overrides contexts defined at the config and spec levels.",
162
162
  "items": {
163
- "oneOf": [
163
+ "anyOf": [
164
164
  {
165
165
  "$schema": "http://json-schema.org/draft-07/schema#",
166
166
  "title": "context",
@@ -1025,7 +1025,7 @@
1025
1025
  {
1026
1026
  "type": "array",
1027
1027
  "items": {
1028
- "oneOf": [
1028
+ "anyOf": [
1029
1029
  {
1030
1030
  "type": "integer"
1031
1031
  }
@@ -1088,7 +1088,7 @@
1088
1088
  {
1089
1089
  "type": "array",
1090
1090
  "items": {
1091
- "oneOf": [
1091
+ "anyOf": [
1092
1092
  {
1093
1093
  "type": "integer"
1094
1094
  }
@@ -1272,7 +1272,7 @@
1272
1272
  "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
1273
1273
  },
1274
1274
  "elementClass": {
1275
- "oneOf": [
1275
+ "anyOf": [
1276
1276
  {
1277
1277
  "type": "string"
1278
1278
  },
@@ -1289,7 +1289,7 @@
1289
1289
  "type": "object",
1290
1290
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
1291
1291
  "additionalProperties": {
1292
- "oneOf": [
1292
+ "anyOf": [
1293
1293
  {
1294
1294
  "type": "string"
1295
1295
  },
@@ -1395,7 +1395,7 @@
1395
1395
  "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
1396
1396
  },
1397
1397
  "elementClass": {
1398
- "oneOf": [
1398
+ "anyOf": [
1399
1399
  {
1400
1400
  "type": "string"
1401
1401
  },
@@ -1412,7 +1412,7 @@
1412
1412
  "type": "object",
1413
1413
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
1414
1414
  "additionalProperties": {
1415
- "oneOf": [
1415
+ "anyOf": [
1416
1416
  {
1417
1417
  "type": "string"
1418
1418
  },
@@ -1587,7 +1587,7 @@
1587
1587
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
1588
1588
  },
1589
1589
  "elementClass": {
1590
- "oneOf": [
1590
+ "anyOf": [
1591
1591
  {
1592
1592
  "type": "string"
1593
1593
  },
@@ -1604,7 +1604,7 @@
1604
1604
  "type": "object",
1605
1605
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
1606
1606
  "additionalProperties": {
1607
- "oneOf": [
1607
+ "anyOf": [
1608
1608
  {
1609
1609
  "type": "string"
1610
1610
  },
@@ -1711,7 +1711,7 @@
1711
1711
  "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
1712
1712
  },
1713
1713
  "elementClass": {
1714
- "oneOf": [
1714
+ "anyOf": [
1715
1715
  {
1716
1716
  "type": "string"
1717
1717
  },
@@ -1728,7 +1728,7 @@
1728
1728
  "type": "object",
1729
1729
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
1730
1730
  "additionalProperties": {
1731
- "oneOf": [
1731
+ "anyOf": [
1732
1732
  {
1733
1733
  "type": "string"
1734
1734
  },
@@ -1834,7 +1834,7 @@
1834
1834
  "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
1835
1835
  },
1836
1836
  "elementClass": {
1837
- "oneOf": [
1837
+ "anyOf": [
1838
1838
  {
1839
1839
  "type": "string"
1840
1840
  },
@@ -1851,7 +1851,7 @@
1851
1851
  "type": "object",
1852
1852
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
1853
1853
  "additionalProperties": {
1854
- "oneOf": [
1854
+ "anyOf": [
1855
1855
  {
1856
1856
  "type": "string"
1857
1857
  },
@@ -1921,7 +1921,7 @@
1921
1921
  {
1922
1922
  "type": "array",
1923
1923
  "items": {
1924
- "oneOf": [
1924
+ "anyOf": [
1925
1925
  {
1926
1926
  "type": "string"
1927
1927
  }
@@ -1944,7 +1944,7 @@
1944
1944
  {
1945
1945
  "type": "array",
1946
1946
  "items": {
1947
- "oneOf": [
1947
+ "anyOf": [
1948
1948
  {
1949
1949
  "type": "string"
1950
1950
  }
@@ -1975,7 +1975,7 @@
1975
1975
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
1976
1976
  },
1977
1977
  "elementClass": {
1978
- "oneOf": [
1978
+ "anyOf": [
1979
1979
  {
1980
1980
  "type": "string"
1981
1981
  },
@@ -1992,7 +1992,7 @@
1992
1992
  "type": "object",
1993
1993
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
1994
1994
  "additionalProperties": {
1995
- "oneOf": [
1995
+ "anyOf": [
1996
1996
  {
1997
1997
  "type": "string"
1998
1998
  },
@@ -2028,7 +2028,7 @@
2028
2028
  {
2029
2029
  "type": "array",
2030
2030
  "items": {
2031
- "oneOf": [
2031
+ "anyOf": [
2032
2032
  {
2033
2033
  "type": "string"
2034
2034
  }
@@ -2051,7 +2051,7 @@
2051
2051
  {
2052
2052
  "type": "array",
2053
2053
  "items": {
2054
- "oneOf": [
2054
+ "anyOf": [
2055
2055
  {
2056
2056
  "type": "string"
2057
2057
  }
@@ -2082,7 +2082,7 @@
2082
2082
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
2083
2083
  },
2084
2084
  "elementClass": {
2085
- "oneOf": [
2085
+ "anyOf": [
2086
2086
  {
2087
2087
  "type": "string"
2088
2088
  },
@@ -2099,7 +2099,7 @@
2099
2099
  "type": "object",
2100
2100
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
2101
2101
  "additionalProperties": {
2102
- "oneOf": [
2102
+ "anyOf": [
2103
2103
  {
2104
2104
  "type": "string"
2105
2105
  },
@@ -2236,7 +2236,7 @@
2236
2236
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
2237
2237
  },
2238
2238
  "elementClass": {
2239
- "oneOf": [
2239
+ "anyOf": [
2240
2240
  {
2241
2241
  "type": "string"
2242
2242
  },
@@ -2253,7 +2253,7 @@
2253
2253
  "type": "object",
2254
2254
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
2255
2255
  "additionalProperties": {
2256
- "oneOf": [
2256
+ "anyOf": [
2257
2257
  {
2258
2258
  "type": "string"
2259
2259
  },
@@ -2360,7 +2360,7 @@
2360
2360
  "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
2361
2361
  },
2362
2362
  "elementClass": {
2363
- "oneOf": [
2363
+ "anyOf": [
2364
2364
  {
2365
2365
  "type": "string"
2366
2366
  },
@@ -2377,7 +2377,7 @@
2377
2377
  "type": "object",
2378
2378
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
2379
2379
  "additionalProperties": {
2380
- "oneOf": [
2380
+ "anyOf": [
2381
2381
  {
2382
2382
  "type": "string"
2383
2383
  },
@@ -2483,7 +2483,7 @@
2483
2483
  "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
2484
2484
  },
2485
2485
  "elementClass": {
2486
- "oneOf": [
2486
+ "anyOf": [
2487
2487
  {
2488
2488
  "type": "string"
2489
2489
  },
@@ -2500,7 +2500,7 @@
2500
2500
  "type": "object",
2501
2501
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
2502
2502
  "additionalProperties": {
2503
- "oneOf": [
2503
+ "anyOf": [
2504
2504
  {
2505
2505
  "type": "string"
2506
2506
  },
@@ -2570,7 +2570,7 @@
2570
2570
  {
2571
2571
  "type": "array",
2572
2572
  "items": {
2573
- "oneOf": [
2573
+ "anyOf": [
2574
2574
  {
2575
2575
  "type": "string"
2576
2576
  }
@@ -2593,7 +2593,7 @@
2593
2593
  {
2594
2594
  "type": "array",
2595
2595
  "items": {
2596
- "oneOf": [
2596
+ "anyOf": [
2597
2597
  {
2598
2598
  "type": "string"
2599
2599
  }
@@ -2624,7 +2624,7 @@
2624
2624
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
2625
2625
  },
2626
2626
  "elementClass": {
2627
- "oneOf": [
2627
+ "anyOf": [
2628
2628
  {
2629
2629
  "type": "string"
2630
2630
  },
@@ -2641,7 +2641,7 @@
2641
2641
  "type": "object",
2642
2642
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
2643
2643
  "additionalProperties": {
2644
- "oneOf": [
2644
+ "anyOf": [
2645
2645
  {
2646
2646
  "type": "string"
2647
2647
  },
@@ -2677,7 +2677,7 @@
2677
2677
  {
2678
2678
  "type": "array",
2679
2679
  "items": {
2680
- "oneOf": [
2680
+ "anyOf": [
2681
2681
  {
2682
2682
  "type": "string"
2683
2683
  }
@@ -2700,7 +2700,7 @@
2700
2700
  {
2701
2701
  "type": "array",
2702
2702
  "items": {
2703
- "oneOf": [
2703
+ "anyOf": [
2704
2704
  {
2705
2705
  "type": "string"
2706
2706
  }
@@ -2731,7 +2731,7 @@
2731
2731
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
2732
2732
  },
2733
2733
  "elementClass": {
2734
- "oneOf": [
2734
+ "anyOf": [
2735
2735
  {
2736
2736
  "type": "string"
2737
2737
  },
@@ -2748,7 +2748,7 @@
2748
2748
  "type": "object",
2749
2749
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
2750
2750
  "additionalProperties": {
2751
- "oneOf": [
2751
+ "anyOf": [
2752
2752
  {
2753
2753
  "type": "string"
2754
2754
  },
@@ -2851,6 +2851,19 @@
2851
2851
  ],
2852
2852
  "inputDelay": 100
2853
2853
  }
2854
+ },
2855
+ {
2856
+ "elementId": "/^user-[0-9]+$/",
2857
+ "elementClass": [
2858
+ "admin",
2859
+ "/^level-[1-5]$/"
2860
+ ],
2861
+ "elementAttribute": {
2862
+ "data-active": true,
2863
+ "data-score": "/^[0-9]+$/"
2864
+ },
2865
+ "timeout": 8000,
2866
+ "moveTo": false
2854
2867
  }
2855
2868
  ]
2856
2869
  }
@@ -2960,6 +2973,72 @@
2960
2973
  "transform": [
2961
2974
  "trim"
2962
2975
  ]
2976
+ },
2977
+ "timeout": {
2978
+ "type": "integer",
2979
+ "description": "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
2980
+ "default": 30000,
2981
+ "minimum": 0
2982
+ },
2983
+ "waitUntil": {
2984
+ "type": "object",
2985
+ "description": "Configuration for waiting conditions after navigation.",
2986
+ "additionalProperties": false,
2987
+ "properties": {
2988
+ "networkIdleTime": {
2989
+ "description": "Wait for network activity to be idle (no new requests) for this duration in milliseconds. Set to `null` to skip this check.",
2990
+ "anyOf": [
2991
+ {
2992
+ "type": "integer",
2993
+ "minimum": 0
2994
+ },
2995
+ {
2996
+ "type": "null"
2997
+ }
2998
+ ],
2999
+ "default": 500
3000
+ },
3001
+ "domIdleTime": {
3002
+ "description": "Wait for DOM mutations to stop for this duration in milliseconds. Set to `null` to skip this check.",
3003
+ "anyOf": [
3004
+ {
3005
+ "type": "integer",
3006
+ "minimum": 0
3007
+ },
3008
+ {
3009
+ "type": "null"
3010
+ }
3011
+ ],
3012
+ "default": 1000
3013
+ },
3014
+ "find": {
3015
+ "type": "object",
3016
+ "description": "Wait for a specific element to be present in the DOM. At least one of selector or elementText must be specified.",
3017
+ "additionalProperties": false,
3018
+ "anyOf": [
3019
+ {
3020
+ "required": [
3021
+ "selector"
3022
+ ]
3023
+ },
3024
+ {
3025
+ "required": [
3026
+ "elementText"
3027
+ ]
3028
+ }
3029
+ ],
3030
+ "properties": {
3031
+ "selector": {
3032
+ "type": "string",
3033
+ "description": "CSS selector for the element to wait for."
3034
+ },
3035
+ "elementText": {
3036
+ "type": "string",
3037
+ "description": "Text content the element must contain."
3038
+ }
3039
+ }
3040
+ }
3041
+ }
2963
3042
  }
2964
3043
  },
2965
3044
  "title": "Go to URL (detailed)"
@@ -2998,6 +3077,72 @@
2998
3077
  "transform": [
2999
3078
  "trim"
3000
3079
  ]
3080
+ },
3081
+ "timeout": {
3082
+ "type": "integer",
3083
+ "description": "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
3084
+ "default": 30000,
3085
+ "minimum": 0
3086
+ },
3087
+ "waitUntil": {
3088
+ "type": "object",
3089
+ "description": "Configuration for waiting conditions after navigation.",
3090
+ "additionalProperties": false,
3091
+ "properties": {
3092
+ "networkIdleTime": {
3093
+ "description": "Wait for network activity to be idle (no new requests) for this duration in milliseconds. Set to `null` to skip this check.",
3094
+ "anyOf": [
3095
+ {
3096
+ "type": "integer",
3097
+ "minimum": 0
3098
+ },
3099
+ {
3100
+ "type": "null"
3101
+ }
3102
+ ],
3103
+ "default": 500
3104
+ },
3105
+ "domIdleTime": {
3106
+ "description": "Wait for DOM mutations to stop for this duration in milliseconds. Set to `null` to skip this check.",
3107
+ "anyOf": [
3108
+ {
3109
+ "type": "integer",
3110
+ "minimum": 0
3111
+ },
3112
+ {
3113
+ "type": "null"
3114
+ }
3115
+ ],
3116
+ "default": 1000
3117
+ },
3118
+ "find": {
3119
+ "type": "object",
3120
+ "description": "Wait for a specific element to be present in the DOM. At least one of selector or elementText must be specified.",
3121
+ "additionalProperties": false,
3122
+ "anyOf": [
3123
+ {
3124
+ "required": [
3125
+ "selector"
3126
+ ]
3127
+ },
3128
+ {
3129
+ "required": [
3130
+ "elementText"
3131
+ ]
3132
+ }
3133
+ ],
3134
+ "properties": {
3135
+ "selector": {
3136
+ "type": "string",
3137
+ "description": "CSS selector for the element to wait for."
3138
+ },
3139
+ "elementText": {
3140
+ "type": "string",
3141
+ "description": "Text content the element must contain."
3142
+ }
3143
+ }
3144
+ }
3145
+ }
3001
3146
  }
3002
3147
  },
3003
3148
  "title": "Go to URL (detailed)"
@@ -3012,7 +3157,41 @@
3012
3157
  },
3013
3158
  {
3014
3159
  "url": "/search",
3015
- "origin": "www.google.com"
3160
+ "origin": "https://www.google.com"
3161
+ },
3162
+ {
3163
+ "url": "https://www.example.com",
3164
+ "waitUntil": {
3165
+ "networkIdleTime": 500
3166
+ }
3167
+ },
3168
+ {
3169
+ "url": "https://www.example.com/dashboard",
3170
+ "waitUntil": {
3171
+ "find": {
3172
+ "selector": "[data-testid='dashboard-loaded']"
3173
+ }
3174
+ }
3175
+ },
3176
+ {
3177
+ "url": "https://www.example.com/app",
3178
+ "timeout": 60000,
3179
+ "waitUntil": {
3180
+ "networkIdleTime": 500,
3181
+ "domIdleTime": 1000,
3182
+ "find": {
3183
+ "selector": ".main-content",
3184
+ "elementText": "Dashboard"
3185
+ }
3186
+ }
3187
+ },
3188
+ {
3189
+ "url": "https://www.example.com/status",
3190
+ "waitUntil": {
3191
+ "find": {
3192
+ "elementText": "System operational"
3193
+ }
3194
+ }
3016
3195
  }
3017
3196
  ]
3018
3197
  }
@@ -3320,7 +3499,7 @@
3320
3499
  "description": "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
3321
3500
  "type": "array",
3322
3501
  "items": {
3323
- "oneOf": [
3502
+ "anyOf": [
3324
3503
  {
3325
3504
  "type": "integer"
3326
3505
  }
@@ -3719,7 +3898,7 @@
3719
3898
  "description": "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
3720
3899
  "type": "array",
3721
3900
  "items": {
3722
- "oneOf": [
3901
+ "anyOf": [
3723
3902
  {
3724
3903
  "type": "integer"
3725
3904
  }
@@ -4180,7 +4359,7 @@
4180
4359
  "type": "array",
4181
4360
  "description": "Arguments for the command.",
4182
4361
  "items": {
4183
- "oneOf": [
4362
+ "anyOf": [
4184
4363
  {
4185
4364
  "type": "string"
4186
4365
  }
@@ -4197,7 +4376,7 @@
4197
4376
  "type": "array",
4198
4377
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
4199
4378
  "items": {
4200
- "oneOf": [
4379
+ "anyOf": [
4201
4380
  {
4202
4381
  "type": "integer"
4203
4382
  }
@@ -4270,7 +4449,7 @@
4270
4449
  "type": "array",
4271
4450
  "description": "Arguments for the command.",
4272
4451
  "items": {
4273
- "oneOf": [
4452
+ "anyOf": [
4274
4453
  {
4275
4454
  "type": "string"
4276
4455
  }
@@ -4287,7 +4466,7 @@
4287
4466
  "type": "array",
4288
4467
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
4289
4468
  "items": {
4290
- "oneOf": [
4469
+ "anyOf": [
4291
4470
  {
4292
4471
  "type": "integer"
4293
4472
  }
@@ -4488,7 +4667,7 @@
4488
4667
  "type": "array",
4489
4668
  "description": "Arguments for the command.",
4490
4669
  "items": {
4491
- "oneOf": [
4670
+ "anyOf": [
4492
4671
  {
4493
4672
  "type": "string"
4494
4673
  }
@@ -4505,7 +4684,7 @@
4505
4684
  "type": "array",
4506
4685
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
4507
4686
  "items": {
4508
- "oneOf": [
4687
+ "anyOf": [
4509
4688
  {
4510
4689
  "type": "integer"
4511
4690
  }
@@ -4579,7 +4758,7 @@
4579
4758
  "type": "array",
4580
4759
  "description": "Arguments for the command.",
4581
4760
  "items": {
4582
- "oneOf": [
4761
+ "anyOf": [
4583
4762
  {
4584
4763
  "type": "string"
4585
4764
  }
@@ -4596,7 +4775,7 @@
4596
4775
  "type": "array",
4597
4776
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
4598
4777
  "items": {
4599
- "oneOf": [
4778
+ "anyOf": [
4600
4779
  {
4601
4780
  "type": "integer"
4602
4781
  }
@@ -4767,7 +4946,7 @@
4767
4946
  {
4768
4947
  "type": "array",
4769
4948
  "items": {
4770
- "oneOf": [
4949
+ "anyOf": [
4771
4950
  {
4772
4951
  "type": "string"
4773
4952
  }
@@ -4790,7 +4969,7 @@
4790
4969
  {
4791
4970
  "type": "array",
4792
4971
  "items": {
4793
- "oneOf": [
4972
+ "anyOf": [
4794
4973
  {
4795
4974
  "type": "string"
4796
4975
  }
@@ -4821,7 +5000,7 @@
4821
5000
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
4822
5001
  },
4823
5002
  "elementClass": {
4824
- "oneOf": [
5003
+ "anyOf": [
4825
5004
  {
4826
5005
  "type": "string"
4827
5006
  },
@@ -4838,7 +5017,7 @@
4838
5017
  "type": "object",
4839
5018
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
4840
5019
  "additionalProperties": {
4841
- "oneOf": [
5020
+ "anyOf": [
4842
5021
  {
4843
5022
  "type": "string"
4844
5023
  },
@@ -4874,7 +5053,7 @@
4874
5053
  {
4875
5054
  "type": "array",
4876
5055
  "items": {
4877
- "oneOf": [
5056
+ "anyOf": [
4878
5057
  {
4879
5058
  "type": "string"
4880
5059
  }
@@ -4897,7 +5076,7 @@
4897
5076
  {
4898
5077
  "type": "array",
4899
5078
  "items": {
4900
- "oneOf": [
5079
+ "anyOf": [
4901
5080
  {
4902
5081
  "type": "string"
4903
5082
  }
@@ -4928,7 +5107,7 @@
4928
5107
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
4929
5108
  },
4930
5109
  "elementClass": {
4931
- "oneOf": [
5110
+ "anyOf": [
4932
5111
  {
4933
5112
  "type": "string"
4934
5113
  },
@@ -4945,7 +5124,7 @@
4945
5124
  "type": "object",
4946
5125
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
4947
5126
  "additionalProperties": {
4948
- "oneOf": [
5127
+ "anyOf": [
4949
5128
  {
4950
5129
  "type": "string"
4951
5130
  },
@@ -5185,7 +5364,7 @@
5185
5364
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
5186
5365
  },
5187
5366
  "elementClass": {
5188
- "oneOf": [
5367
+ "anyOf": [
5189
5368
  {
5190
5369
  "type": "string"
5191
5370
  },
@@ -5202,7 +5381,7 @@
5202
5381
  "type": "object",
5203
5382
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
5204
5383
  "additionalProperties": {
5205
- "oneOf": [
5384
+ "anyOf": [
5206
5385
  {
5207
5386
  "type": "string"
5208
5387
  },
@@ -5381,7 +5560,7 @@
5381
5560
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
5382
5561
  },
5383
5562
  "elementClass": {
5384
- "oneOf": [
5563
+ "anyOf": [
5385
5564
  {
5386
5565
  "type": "string"
5387
5566
  },
@@ -5398,7 +5577,7 @@
5398
5577
  "type": "object",
5399
5578
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
5400
5579
  "additionalProperties": {
5401
- "oneOf": [
5580
+ "anyOf": [
5402
5581
  {
5403
5582
  "type": "string"
5404
5583
  },
@@ -5516,7 +5695,7 @@
5516
5695
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
5517
5696
  },
5518
5697
  "elementClass": {
5519
- "oneOf": [
5698
+ "anyOf": [
5520
5699
  {
5521
5700
  "type": "string"
5522
5701
  },
@@ -5533,7 +5712,7 @@
5533
5712
  "type": "object",
5534
5713
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
5535
5714
  "additionalProperties": {
5536
- "oneOf": [
5715
+ "anyOf": [
5537
5716
  {
5538
5717
  "type": "string"
5539
5718
  },
@@ -7471,7 +7650,7 @@
7471
7650
  "type": "array",
7472
7651
  "description": "Arguments for the command.",
7473
7652
  "items": {
7474
- "oneOf": [
7653
+ "anyOf": [
7475
7654
  {
7476
7655
  "type": "string"
7477
7656
  }
@@ -7488,7 +7667,7 @@
7488
7667
  "type": "array",
7489
7668
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
7490
7669
  "items": {
7491
- "oneOf": [
7670
+ "anyOf": [
7492
7671
  {
7493
7672
  "type": "integer"
7494
7673
  }
@@ -7561,7 +7740,7 @@
7561
7740
  "type": "array",
7562
7741
  "description": "Arguments for the command.",
7563
7742
  "items": {
7564
- "oneOf": [
7743
+ "anyOf": [
7565
7744
  {
7566
7745
  "type": "string"
7567
7746
  }
@@ -7578,7 +7757,7 @@
7578
7757
  "type": "array",
7579
7758
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
7580
7759
  "items": {
7581
- "oneOf": [
7760
+ "anyOf": [
7582
7761
  {
7583
7762
  "type": "integer"
7584
7763
  }
@@ -8320,7 +8499,7 @@
8320
8499
  {
8321
8500
  "type": "array",
8322
8501
  "items": {
8323
- "oneOf": [
8502
+ "anyOf": [
8324
8503
  {
8325
8504
  "type": "integer"
8326
8505
  }
@@ -8383,7 +8562,7 @@
8383
8562
  {
8384
8563
  "type": "array",
8385
8564
  "items": {
8386
- "oneOf": [
8565
+ "anyOf": [
8387
8566
  {
8388
8567
  "type": "integer"
8389
8568
  }
@@ -8567,7 +8746,7 @@
8567
8746
  "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
8568
8747
  },
8569
8748
  "elementClass": {
8570
- "oneOf": [
8749
+ "anyOf": [
8571
8750
  {
8572
8751
  "type": "string"
8573
8752
  },
@@ -8584,7 +8763,7 @@
8584
8763
  "type": "object",
8585
8764
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
8586
8765
  "additionalProperties": {
8587
- "oneOf": [
8766
+ "anyOf": [
8588
8767
  {
8589
8768
  "type": "string"
8590
8769
  },
@@ -8690,7 +8869,7 @@
8690
8869
  "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
8691
8870
  },
8692
8871
  "elementClass": {
8693
- "oneOf": [
8872
+ "anyOf": [
8694
8873
  {
8695
8874
  "type": "string"
8696
8875
  },
@@ -8707,7 +8886,7 @@
8707
8886
  "type": "object",
8708
8887
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
8709
8888
  "additionalProperties": {
8710
- "oneOf": [
8889
+ "anyOf": [
8711
8890
  {
8712
8891
  "type": "string"
8713
8892
  },
@@ -8882,7 +9061,7 @@
8882
9061
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
8883
9062
  },
8884
9063
  "elementClass": {
8885
- "oneOf": [
9064
+ "anyOf": [
8886
9065
  {
8887
9066
  "type": "string"
8888
9067
  },
@@ -8899,7 +9078,7 @@
8899
9078
  "type": "object",
8900
9079
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
8901
9080
  "additionalProperties": {
8902
- "oneOf": [
9081
+ "anyOf": [
8903
9082
  {
8904
9083
  "type": "string"
8905
9084
  },
@@ -9006,7 +9185,7 @@
9006
9185
  "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
9007
9186
  },
9008
9187
  "elementClass": {
9009
- "oneOf": [
9188
+ "anyOf": [
9010
9189
  {
9011
9190
  "type": "string"
9012
9191
  },
@@ -9023,7 +9202,7 @@
9023
9202
  "type": "object",
9024
9203
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
9025
9204
  "additionalProperties": {
9026
- "oneOf": [
9205
+ "anyOf": [
9027
9206
  {
9028
9207
  "type": "string"
9029
9208
  },
@@ -9129,7 +9308,7 @@
9129
9308
  "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
9130
9309
  },
9131
9310
  "elementClass": {
9132
- "oneOf": [
9311
+ "anyOf": [
9133
9312
  {
9134
9313
  "type": "string"
9135
9314
  },
@@ -9146,7 +9325,7 @@
9146
9325
  "type": "object",
9147
9326
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
9148
9327
  "additionalProperties": {
9149
- "oneOf": [
9328
+ "anyOf": [
9150
9329
  {
9151
9330
  "type": "string"
9152
9331
  },
@@ -9216,7 +9395,7 @@
9216
9395
  {
9217
9396
  "type": "array",
9218
9397
  "items": {
9219
- "oneOf": [
9398
+ "anyOf": [
9220
9399
  {
9221
9400
  "type": "string"
9222
9401
  }
@@ -9239,7 +9418,7 @@
9239
9418
  {
9240
9419
  "type": "array",
9241
9420
  "items": {
9242
- "oneOf": [
9421
+ "anyOf": [
9243
9422
  {
9244
9423
  "type": "string"
9245
9424
  }
@@ -9270,7 +9449,7 @@
9270
9449
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
9271
9450
  },
9272
9451
  "elementClass": {
9273
- "oneOf": [
9452
+ "anyOf": [
9274
9453
  {
9275
9454
  "type": "string"
9276
9455
  },
@@ -9287,7 +9466,7 @@
9287
9466
  "type": "object",
9288
9467
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
9289
9468
  "additionalProperties": {
9290
- "oneOf": [
9469
+ "anyOf": [
9291
9470
  {
9292
9471
  "type": "string"
9293
9472
  },
@@ -9323,7 +9502,7 @@
9323
9502
  {
9324
9503
  "type": "array",
9325
9504
  "items": {
9326
- "oneOf": [
9505
+ "anyOf": [
9327
9506
  {
9328
9507
  "type": "string"
9329
9508
  }
@@ -9346,7 +9525,7 @@
9346
9525
  {
9347
9526
  "type": "array",
9348
9527
  "items": {
9349
- "oneOf": [
9528
+ "anyOf": [
9350
9529
  {
9351
9530
  "type": "string"
9352
9531
  }
@@ -9377,7 +9556,7 @@
9377
9556
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
9378
9557
  },
9379
9558
  "elementClass": {
9380
- "oneOf": [
9559
+ "anyOf": [
9381
9560
  {
9382
9561
  "type": "string"
9383
9562
  },
@@ -9394,7 +9573,7 @@
9394
9573
  "type": "object",
9395
9574
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
9396
9575
  "additionalProperties": {
9397
- "oneOf": [
9576
+ "anyOf": [
9398
9577
  {
9399
9578
  "type": "string"
9400
9579
  },
@@ -9531,7 +9710,7 @@
9531
9710
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
9532
9711
  },
9533
9712
  "elementClass": {
9534
- "oneOf": [
9713
+ "anyOf": [
9535
9714
  {
9536
9715
  "type": "string"
9537
9716
  },
@@ -9548,7 +9727,7 @@
9548
9727
  "type": "object",
9549
9728
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
9550
9729
  "additionalProperties": {
9551
- "oneOf": [
9730
+ "anyOf": [
9552
9731
  {
9553
9732
  "type": "string"
9554
9733
  },
@@ -9655,7 +9834,7 @@
9655
9834
  "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
9656
9835
  },
9657
9836
  "elementClass": {
9658
- "oneOf": [
9837
+ "anyOf": [
9659
9838
  {
9660
9839
  "type": "string"
9661
9840
  },
@@ -9672,7 +9851,7 @@
9672
9851
  "type": "object",
9673
9852
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
9674
9853
  "additionalProperties": {
9675
- "oneOf": [
9854
+ "anyOf": [
9676
9855
  {
9677
9856
  "type": "string"
9678
9857
  },
@@ -9778,7 +9957,7 @@
9778
9957
  "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
9779
9958
  },
9780
9959
  "elementClass": {
9781
- "oneOf": [
9960
+ "anyOf": [
9782
9961
  {
9783
9962
  "type": "string"
9784
9963
  },
@@ -9795,7 +9974,7 @@
9795
9974
  "type": "object",
9796
9975
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
9797
9976
  "additionalProperties": {
9798
- "oneOf": [
9977
+ "anyOf": [
9799
9978
  {
9800
9979
  "type": "string"
9801
9980
  },
@@ -9865,7 +10044,7 @@
9865
10044
  {
9866
10045
  "type": "array",
9867
10046
  "items": {
9868
- "oneOf": [
10047
+ "anyOf": [
9869
10048
  {
9870
10049
  "type": "string"
9871
10050
  }
@@ -9888,7 +10067,7 @@
9888
10067
  {
9889
10068
  "type": "array",
9890
10069
  "items": {
9891
- "oneOf": [
10070
+ "anyOf": [
9892
10071
  {
9893
10072
  "type": "string"
9894
10073
  }
@@ -9919,7 +10098,7 @@
9919
10098
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
9920
10099
  },
9921
10100
  "elementClass": {
9922
- "oneOf": [
10101
+ "anyOf": [
9923
10102
  {
9924
10103
  "type": "string"
9925
10104
  },
@@ -9936,7 +10115,7 @@
9936
10115
  "type": "object",
9937
10116
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
9938
10117
  "additionalProperties": {
9939
- "oneOf": [
10118
+ "anyOf": [
9940
10119
  {
9941
10120
  "type": "string"
9942
10121
  },
@@ -9972,7 +10151,7 @@
9972
10151
  {
9973
10152
  "type": "array",
9974
10153
  "items": {
9975
- "oneOf": [
10154
+ "anyOf": [
9976
10155
  {
9977
10156
  "type": "string"
9978
10157
  }
@@ -9995,7 +10174,7 @@
9995
10174
  {
9996
10175
  "type": "array",
9997
10176
  "items": {
9998
- "oneOf": [
10177
+ "anyOf": [
9999
10178
  {
10000
10179
  "type": "string"
10001
10180
  }
@@ -10026,7 +10205,7 @@
10026
10205
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
10027
10206
  },
10028
10207
  "elementClass": {
10029
- "oneOf": [
10208
+ "anyOf": [
10030
10209
  {
10031
10210
  "type": "string"
10032
10211
  },
@@ -10043,7 +10222,7 @@
10043
10222
  "type": "object",
10044
10223
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
10045
10224
  "additionalProperties": {
10046
- "oneOf": [
10225
+ "anyOf": [
10047
10226
  {
10048
10227
  "type": "string"
10049
10228
  },
@@ -10146,6 +10325,19 @@
10146
10325
  ],
10147
10326
  "inputDelay": 100
10148
10327
  }
10328
+ },
10329
+ {
10330
+ "elementId": "/^user-[0-9]+$/",
10331
+ "elementClass": [
10332
+ "admin",
10333
+ "/^level-[1-5]$/"
10334
+ ],
10335
+ "elementAttribute": {
10336
+ "data-active": true,
10337
+ "data-score": "/^[0-9]+$/"
10338
+ },
10339
+ "timeout": 8000,
10340
+ "moveTo": false
10149
10341
  }
10150
10342
  ]
10151
10343
  }
@@ -10255,51 +10447,183 @@
10255
10447
  "transform": [
10256
10448
  "trim"
10257
10449
  ]
10258
- }
10259
- },
10260
- "title": "Go to URL (detailed)"
10261
- }
10262
- ],
10263
- "components": {
10264
- "schemas": {
10265
- "string": {
10266
- "title": "Go to URL (simple)",
10267
- "description": "Navigate to an HTTP or HTTPS URL. Can be a full URL or a path. If a path is provided, navigates relative to the current URL, if any.",
10268
- "type": "string",
10269
- "pattern": "(^(http://|https://|/).*|\\$[A-Za-z0-9_]+)",
10270
- "transform": [
10271
- "trim"
10272
- ]
10273
- },
10274
- "object": {
10275
- "description": "Navigate to an HTTP or HTTPS URL.",
10276
- "type": "object",
10277
- "additionalProperties": false,
10278
- "required": [
10279
- "url"
10280
- ],
10281
- "properties": {
10282
- "url": {
10283
- "type": "string",
10284
- "description": "URL to navigate to. Can be a full URL or a path. If a path is provided and `origin` is specified, prepends `origin` to `url`. If a path is provided but `origin` isn't specified, attempts to navigate relative to the current URL, if any.",
10285
- "pattern": "(^(http://|https://|/).*|\\$[A-Za-z0-9_]+)",
10286
- "transform": [
10287
- "trim"
10288
- ]
10289
- },
10290
- "origin": {
10291
- "type": "string",
10292
- "description": "Protocol and domain to navigate to. Prepended to `url`.",
10293
- "transform": [
10294
- "trim"
10295
- ]
10296
- }
10297
10450
  },
10298
- "title": "Go to URL (detailed)"
10299
- }
10300
- }
10301
- },
10302
- "examples": [
10451
+ "timeout": {
10452
+ "type": "integer",
10453
+ "description": "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
10454
+ "default": 30000,
10455
+ "minimum": 0
10456
+ },
10457
+ "waitUntil": {
10458
+ "type": "object",
10459
+ "description": "Configuration for waiting conditions after navigation.",
10460
+ "additionalProperties": false,
10461
+ "properties": {
10462
+ "networkIdleTime": {
10463
+ "description": "Wait for network activity to be idle (no new requests) for this duration in milliseconds. Set to `null` to skip this check.",
10464
+ "anyOf": [
10465
+ {
10466
+ "type": "integer",
10467
+ "minimum": 0
10468
+ },
10469
+ {
10470
+ "type": "null"
10471
+ }
10472
+ ],
10473
+ "default": 500
10474
+ },
10475
+ "domIdleTime": {
10476
+ "description": "Wait for DOM mutations to stop for this duration in milliseconds. Set to `null` to skip this check.",
10477
+ "anyOf": [
10478
+ {
10479
+ "type": "integer",
10480
+ "minimum": 0
10481
+ },
10482
+ {
10483
+ "type": "null"
10484
+ }
10485
+ ],
10486
+ "default": 1000
10487
+ },
10488
+ "find": {
10489
+ "type": "object",
10490
+ "description": "Wait for a specific element to be present in the DOM. At least one of selector or elementText must be specified.",
10491
+ "additionalProperties": false,
10492
+ "anyOf": [
10493
+ {
10494
+ "required": [
10495
+ "selector"
10496
+ ]
10497
+ },
10498
+ {
10499
+ "required": [
10500
+ "elementText"
10501
+ ]
10502
+ }
10503
+ ],
10504
+ "properties": {
10505
+ "selector": {
10506
+ "type": "string",
10507
+ "description": "CSS selector for the element to wait for."
10508
+ },
10509
+ "elementText": {
10510
+ "type": "string",
10511
+ "description": "Text content the element must contain."
10512
+ }
10513
+ }
10514
+ }
10515
+ }
10516
+ }
10517
+ },
10518
+ "title": "Go to URL (detailed)"
10519
+ }
10520
+ ],
10521
+ "components": {
10522
+ "schemas": {
10523
+ "string": {
10524
+ "title": "Go to URL (simple)",
10525
+ "description": "Navigate to an HTTP or HTTPS URL. Can be a full URL or a path. If a path is provided, navigates relative to the current URL, if any.",
10526
+ "type": "string",
10527
+ "pattern": "(^(http://|https://|/).*|\\$[A-Za-z0-9_]+)",
10528
+ "transform": [
10529
+ "trim"
10530
+ ]
10531
+ },
10532
+ "object": {
10533
+ "description": "Navigate to an HTTP or HTTPS URL.",
10534
+ "type": "object",
10535
+ "additionalProperties": false,
10536
+ "required": [
10537
+ "url"
10538
+ ],
10539
+ "properties": {
10540
+ "url": {
10541
+ "type": "string",
10542
+ "description": "URL to navigate to. Can be a full URL or a path. If a path is provided and `origin` is specified, prepends `origin` to `url`. If a path is provided but `origin` isn't specified, attempts to navigate relative to the current URL, if any.",
10543
+ "pattern": "(^(http://|https://|/).*|\\$[A-Za-z0-9_]+)",
10544
+ "transform": [
10545
+ "trim"
10546
+ ]
10547
+ },
10548
+ "origin": {
10549
+ "type": "string",
10550
+ "description": "Protocol and domain to navigate to. Prepended to `url`.",
10551
+ "transform": [
10552
+ "trim"
10553
+ ]
10554
+ },
10555
+ "timeout": {
10556
+ "type": "integer",
10557
+ "description": "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
10558
+ "default": 30000,
10559
+ "minimum": 0
10560
+ },
10561
+ "waitUntil": {
10562
+ "type": "object",
10563
+ "description": "Configuration for waiting conditions after navigation.",
10564
+ "additionalProperties": false,
10565
+ "properties": {
10566
+ "networkIdleTime": {
10567
+ "description": "Wait for network activity to be idle (no new requests) for this duration in milliseconds. Set to `null` to skip this check.",
10568
+ "anyOf": [
10569
+ {
10570
+ "type": "integer",
10571
+ "minimum": 0
10572
+ },
10573
+ {
10574
+ "type": "null"
10575
+ }
10576
+ ],
10577
+ "default": 500
10578
+ },
10579
+ "domIdleTime": {
10580
+ "description": "Wait for DOM mutations to stop for this duration in milliseconds. Set to `null` to skip this check.",
10581
+ "anyOf": [
10582
+ {
10583
+ "type": "integer",
10584
+ "minimum": 0
10585
+ },
10586
+ {
10587
+ "type": "null"
10588
+ }
10589
+ ],
10590
+ "default": 1000
10591
+ },
10592
+ "find": {
10593
+ "type": "object",
10594
+ "description": "Wait for a specific element to be present in the DOM. At least one of selector or elementText must be specified.",
10595
+ "additionalProperties": false,
10596
+ "anyOf": [
10597
+ {
10598
+ "required": [
10599
+ "selector"
10600
+ ]
10601
+ },
10602
+ {
10603
+ "required": [
10604
+ "elementText"
10605
+ ]
10606
+ }
10607
+ ],
10608
+ "properties": {
10609
+ "selector": {
10610
+ "type": "string",
10611
+ "description": "CSS selector for the element to wait for."
10612
+ },
10613
+ "elementText": {
10614
+ "type": "string",
10615
+ "description": "Text content the element must contain."
10616
+ }
10617
+ }
10618
+ }
10619
+ }
10620
+ }
10621
+ },
10622
+ "title": "Go to URL (detailed)"
10623
+ }
10624
+ }
10625
+ },
10626
+ "examples": [
10303
10627
  "https://www.google.com",
10304
10628
  "/search",
10305
10629
  {
@@ -10307,7 +10631,41 @@
10307
10631
  },
10308
10632
  {
10309
10633
  "url": "/search",
10310
- "origin": "www.google.com"
10634
+ "origin": "https://www.google.com"
10635
+ },
10636
+ {
10637
+ "url": "https://www.example.com",
10638
+ "waitUntil": {
10639
+ "networkIdleTime": 500
10640
+ }
10641
+ },
10642
+ {
10643
+ "url": "https://www.example.com/dashboard",
10644
+ "waitUntil": {
10645
+ "find": {
10646
+ "selector": "[data-testid='dashboard-loaded']"
10647
+ }
10648
+ }
10649
+ },
10650
+ {
10651
+ "url": "https://www.example.com/app",
10652
+ "timeout": 60000,
10653
+ "waitUntil": {
10654
+ "networkIdleTime": 500,
10655
+ "domIdleTime": 1000,
10656
+ "find": {
10657
+ "selector": ".main-content",
10658
+ "elementText": "Dashboard"
10659
+ }
10660
+ }
10661
+ },
10662
+ {
10663
+ "url": "https://www.example.com/status",
10664
+ "waitUntil": {
10665
+ "find": {
10666
+ "elementText": "System operational"
10667
+ }
10668
+ }
10311
10669
  }
10312
10670
  ]
10313
10671
  }
@@ -10615,7 +10973,7 @@
10615
10973
  "description": "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
10616
10974
  "type": "array",
10617
10975
  "items": {
10618
- "oneOf": [
10976
+ "anyOf": [
10619
10977
  {
10620
10978
  "type": "integer"
10621
10979
  }
@@ -11014,7 +11372,7 @@
11014
11372
  "description": "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
11015
11373
  "type": "array",
11016
11374
  "items": {
11017
- "oneOf": [
11375
+ "anyOf": [
11018
11376
  {
11019
11377
  "type": "integer"
11020
11378
  }
@@ -11475,7 +11833,7 @@
11475
11833
  "type": "array",
11476
11834
  "description": "Arguments for the command.",
11477
11835
  "items": {
11478
- "oneOf": [
11836
+ "anyOf": [
11479
11837
  {
11480
11838
  "type": "string"
11481
11839
  }
@@ -11492,7 +11850,7 @@
11492
11850
  "type": "array",
11493
11851
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
11494
11852
  "items": {
11495
- "oneOf": [
11853
+ "anyOf": [
11496
11854
  {
11497
11855
  "type": "integer"
11498
11856
  }
@@ -11565,7 +11923,7 @@
11565
11923
  "type": "array",
11566
11924
  "description": "Arguments for the command.",
11567
11925
  "items": {
11568
- "oneOf": [
11926
+ "anyOf": [
11569
11927
  {
11570
11928
  "type": "string"
11571
11929
  }
@@ -11582,7 +11940,7 @@
11582
11940
  "type": "array",
11583
11941
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
11584
11942
  "items": {
11585
- "oneOf": [
11943
+ "anyOf": [
11586
11944
  {
11587
11945
  "type": "integer"
11588
11946
  }
@@ -11783,7 +12141,7 @@
11783
12141
  "type": "array",
11784
12142
  "description": "Arguments for the command.",
11785
12143
  "items": {
11786
- "oneOf": [
12144
+ "anyOf": [
11787
12145
  {
11788
12146
  "type": "string"
11789
12147
  }
@@ -11800,7 +12158,7 @@
11800
12158
  "type": "array",
11801
12159
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
11802
12160
  "items": {
11803
- "oneOf": [
12161
+ "anyOf": [
11804
12162
  {
11805
12163
  "type": "integer"
11806
12164
  }
@@ -11874,7 +12232,7 @@
11874
12232
  "type": "array",
11875
12233
  "description": "Arguments for the command.",
11876
12234
  "items": {
11877
- "oneOf": [
12235
+ "anyOf": [
11878
12236
  {
11879
12237
  "type": "string"
11880
12238
  }
@@ -11891,7 +12249,7 @@
11891
12249
  "type": "array",
11892
12250
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
11893
12251
  "items": {
11894
- "oneOf": [
12252
+ "anyOf": [
11895
12253
  {
11896
12254
  "type": "integer"
11897
12255
  }
@@ -12062,7 +12420,7 @@
12062
12420
  {
12063
12421
  "type": "array",
12064
12422
  "items": {
12065
- "oneOf": [
12423
+ "anyOf": [
12066
12424
  {
12067
12425
  "type": "string"
12068
12426
  }
@@ -12085,7 +12443,7 @@
12085
12443
  {
12086
12444
  "type": "array",
12087
12445
  "items": {
12088
- "oneOf": [
12446
+ "anyOf": [
12089
12447
  {
12090
12448
  "type": "string"
12091
12449
  }
@@ -12116,7 +12474,7 @@
12116
12474
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
12117
12475
  },
12118
12476
  "elementClass": {
12119
- "oneOf": [
12477
+ "anyOf": [
12120
12478
  {
12121
12479
  "type": "string"
12122
12480
  },
@@ -12133,7 +12491,7 @@
12133
12491
  "type": "object",
12134
12492
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
12135
12493
  "additionalProperties": {
12136
- "oneOf": [
12494
+ "anyOf": [
12137
12495
  {
12138
12496
  "type": "string"
12139
12497
  },
@@ -12169,7 +12527,7 @@
12169
12527
  {
12170
12528
  "type": "array",
12171
12529
  "items": {
12172
- "oneOf": [
12530
+ "anyOf": [
12173
12531
  {
12174
12532
  "type": "string"
12175
12533
  }
@@ -12192,7 +12550,7 @@
12192
12550
  {
12193
12551
  "type": "array",
12194
12552
  "items": {
12195
- "oneOf": [
12553
+ "anyOf": [
12196
12554
  {
12197
12555
  "type": "string"
12198
12556
  }
@@ -12223,7 +12581,7 @@
12223
12581
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
12224
12582
  },
12225
12583
  "elementClass": {
12226
- "oneOf": [
12584
+ "anyOf": [
12227
12585
  {
12228
12586
  "type": "string"
12229
12587
  },
@@ -12240,7 +12598,7 @@
12240
12598
  "type": "object",
12241
12599
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
12242
12600
  "additionalProperties": {
12243
- "oneOf": [
12601
+ "anyOf": [
12244
12602
  {
12245
12603
  "type": "string"
12246
12604
  },
@@ -12480,7 +12838,7 @@
12480
12838
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
12481
12839
  },
12482
12840
  "elementClass": {
12483
- "oneOf": [
12841
+ "anyOf": [
12484
12842
  {
12485
12843
  "type": "string"
12486
12844
  },
@@ -12497,7 +12855,7 @@
12497
12855
  "type": "object",
12498
12856
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
12499
12857
  "additionalProperties": {
12500
- "oneOf": [
12858
+ "anyOf": [
12501
12859
  {
12502
12860
  "type": "string"
12503
12861
  },
@@ -12676,7 +13034,7 @@
12676
13034
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
12677
13035
  },
12678
13036
  "elementClass": {
12679
- "oneOf": [
13037
+ "anyOf": [
12680
13038
  {
12681
13039
  "type": "string"
12682
13040
  },
@@ -12693,7 +13051,7 @@
12693
13051
  "type": "object",
12694
13052
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
12695
13053
  "additionalProperties": {
12696
- "oneOf": [
13054
+ "anyOf": [
12697
13055
  {
12698
13056
  "type": "string"
12699
13057
  },
@@ -12811,7 +13169,7 @@
12811
13169
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
12812
13170
  },
12813
13171
  "elementClass": {
12814
- "oneOf": [
13172
+ "anyOf": [
12815
13173
  {
12816
13174
  "type": "string"
12817
13175
  },
@@ -12828,7 +13186,7 @@
12828
13186
  "type": "object",
12829
13187
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
12830
13188
  "additionalProperties": {
12831
- "oneOf": [
13189
+ "anyOf": [
12832
13190
  {
12833
13191
  "type": "string"
12834
13192
  },
@@ -14990,7 +15348,7 @@
14990
15348
  "type": "array",
14991
15349
  "description": "Contexts to run the test in. Overrides contexts defined at the config and spec levels.",
14992
15350
  "items": {
14993
- "oneOf": [
15351
+ "anyOf": [
14994
15352
  {
14995
15353
  "$schema": "http://json-schema.org/draft-07/schema#",
14996
15354
  "title": "context",
@@ -15583,7 +15941,7 @@
15583
15941
  "type": "array",
15584
15942
  "description": "Contexts to run the test in. Overrides contexts defined at the config and spec levels.",
15585
15943
  "items": {
15586
- "oneOf": [
15944
+ "anyOf": [
15587
15945
  {
15588
15946
  "$schema": "http://json-schema.org/draft-07/schema#",
15589
15947
  "title": "context",
@@ -16384,7 +16742,7 @@
16384
16742
  {
16385
16743
  "type": "array",
16386
16744
  "items": {
16387
- "oneOf": [
16745
+ "anyOf": [
16388
16746
  {
16389
16747
  "type": "integer"
16390
16748
  }
@@ -16447,7 +16805,7 @@
16447
16805
  {
16448
16806
  "type": "array",
16449
16807
  "items": {
16450
- "oneOf": [
16808
+ "anyOf": [
16451
16809
  {
16452
16810
  "type": "integer"
16453
16811
  }
@@ -16631,7 +16989,7 @@
16631
16989
  "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
16632
16990
  },
16633
16991
  "elementClass": {
16634
- "oneOf": [
16992
+ "anyOf": [
16635
16993
  {
16636
16994
  "type": "string"
16637
16995
  },
@@ -16648,7 +17006,7 @@
16648
17006
  "type": "object",
16649
17007
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
16650
17008
  "additionalProperties": {
16651
- "oneOf": [
17009
+ "anyOf": [
16652
17010
  {
16653
17011
  "type": "string"
16654
17012
  },
@@ -16754,7 +17112,7 @@
16754
17112
  "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
16755
17113
  },
16756
17114
  "elementClass": {
16757
- "oneOf": [
17115
+ "anyOf": [
16758
17116
  {
16759
17117
  "type": "string"
16760
17118
  },
@@ -16771,7 +17129,7 @@
16771
17129
  "type": "object",
16772
17130
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
16773
17131
  "additionalProperties": {
16774
- "oneOf": [
17132
+ "anyOf": [
16775
17133
  {
16776
17134
  "type": "string"
16777
17135
  },
@@ -16946,7 +17304,7 @@
16946
17304
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
16947
17305
  },
16948
17306
  "elementClass": {
16949
- "oneOf": [
17307
+ "anyOf": [
16950
17308
  {
16951
17309
  "type": "string"
16952
17310
  },
@@ -16963,7 +17321,7 @@
16963
17321
  "type": "object",
16964
17322
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
16965
17323
  "additionalProperties": {
16966
- "oneOf": [
17324
+ "anyOf": [
16967
17325
  {
16968
17326
  "type": "string"
16969
17327
  },
@@ -17070,7 +17428,7 @@
17070
17428
  "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
17071
17429
  },
17072
17430
  "elementClass": {
17073
- "oneOf": [
17431
+ "anyOf": [
17074
17432
  {
17075
17433
  "type": "string"
17076
17434
  },
@@ -17087,7 +17445,7 @@
17087
17445
  "type": "object",
17088
17446
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
17089
17447
  "additionalProperties": {
17090
- "oneOf": [
17448
+ "anyOf": [
17091
17449
  {
17092
17450
  "type": "string"
17093
17451
  },
@@ -17193,7 +17551,7 @@
17193
17551
  "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
17194
17552
  },
17195
17553
  "elementClass": {
17196
- "oneOf": [
17554
+ "anyOf": [
17197
17555
  {
17198
17556
  "type": "string"
17199
17557
  },
@@ -17210,7 +17568,7 @@
17210
17568
  "type": "object",
17211
17569
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
17212
17570
  "additionalProperties": {
17213
- "oneOf": [
17571
+ "anyOf": [
17214
17572
  {
17215
17573
  "type": "string"
17216
17574
  },
@@ -17280,7 +17638,7 @@
17280
17638
  {
17281
17639
  "type": "array",
17282
17640
  "items": {
17283
- "oneOf": [
17641
+ "anyOf": [
17284
17642
  {
17285
17643
  "type": "string"
17286
17644
  }
@@ -17303,7 +17661,7 @@
17303
17661
  {
17304
17662
  "type": "array",
17305
17663
  "items": {
17306
- "oneOf": [
17664
+ "anyOf": [
17307
17665
  {
17308
17666
  "type": "string"
17309
17667
  }
@@ -17334,7 +17692,7 @@
17334
17692
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
17335
17693
  },
17336
17694
  "elementClass": {
17337
- "oneOf": [
17695
+ "anyOf": [
17338
17696
  {
17339
17697
  "type": "string"
17340
17698
  },
@@ -17351,7 +17709,7 @@
17351
17709
  "type": "object",
17352
17710
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
17353
17711
  "additionalProperties": {
17354
- "oneOf": [
17712
+ "anyOf": [
17355
17713
  {
17356
17714
  "type": "string"
17357
17715
  },
@@ -17387,7 +17745,7 @@
17387
17745
  {
17388
17746
  "type": "array",
17389
17747
  "items": {
17390
- "oneOf": [
17748
+ "anyOf": [
17391
17749
  {
17392
17750
  "type": "string"
17393
17751
  }
@@ -17410,7 +17768,7 @@
17410
17768
  {
17411
17769
  "type": "array",
17412
17770
  "items": {
17413
- "oneOf": [
17771
+ "anyOf": [
17414
17772
  {
17415
17773
  "type": "string"
17416
17774
  }
@@ -17441,7 +17799,7 @@
17441
17799
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
17442
17800
  },
17443
17801
  "elementClass": {
17444
- "oneOf": [
17802
+ "anyOf": [
17445
17803
  {
17446
17804
  "type": "string"
17447
17805
  },
@@ -17458,7 +17816,7 @@
17458
17816
  "type": "object",
17459
17817
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
17460
17818
  "additionalProperties": {
17461
- "oneOf": [
17819
+ "anyOf": [
17462
17820
  {
17463
17821
  "type": "string"
17464
17822
  },
@@ -17595,7 +17953,7 @@
17595
17953
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
17596
17954
  },
17597
17955
  "elementClass": {
17598
- "oneOf": [
17956
+ "anyOf": [
17599
17957
  {
17600
17958
  "type": "string"
17601
17959
  },
@@ -17612,7 +17970,7 @@
17612
17970
  "type": "object",
17613
17971
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
17614
17972
  "additionalProperties": {
17615
- "oneOf": [
17973
+ "anyOf": [
17616
17974
  {
17617
17975
  "type": "string"
17618
17976
  },
@@ -17719,7 +18077,7 @@
17719
18077
  "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
17720
18078
  },
17721
18079
  "elementClass": {
17722
- "oneOf": [
18080
+ "anyOf": [
17723
18081
  {
17724
18082
  "type": "string"
17725
18083
  },
@@ -17736,7 +18094,7 @@
17736
18094
  "type": "object",
17737
18095
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
17738
18096
  "additionalProperties": {
17739
- "oneOf": [
18097
+ "anyOf": [
17740
18098
  {
17741
18099
  "type": "string"
17742
18100
  },
@@ -17842,7 +18200,7 @@
17842
18200
  "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
17843
18201
  },
17844
18202
  "elementClass": {
17845
- "oneOf": [
18203
+ "anyOf": [
17846
18204
  {
17847
18205
  "type": "string"
17848
18206
  },
@@ -17859,7 +18217,7 @@
17859
18217
  "type": "object",
17860
18218
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
17861
18219
  "additionalProperties": {
17862
- "oneOf": [
18220
+ "anyOf": [
17863
18221
  {
17864
18222
  "type": "string"
17865
18223
  },
@@ -17929,7 +18287,7 @@
17929
18287
  {
17930
18288
  "type": "array",
17931
18289
  "items": {
17932
- "oneOf": [
18290
+ "anyOf": [
17933
18291
  {
17934
18292
  "type": "string"
17935
18293
  }
@@ -17952,7 +18310,7 @@
17952
18310
  {
17953
18311
  "type": "array",
17954
18312
  "items": {
17955
- "oneOf": [
18313
+ "anyOf": [
17956
18314
  {
17957
18315
  "type": "string"
17958
18316
  }
@@ -17983,7 +18341,7 @@
17983
18341
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
17984
18342
  },
17985
18343
  "elementClass": {
17986
- "oneOf": [
18344
+ "anyOf": [
17987
18345
  {
17988
18346
  "type": "string"
17989
18347
  },
@@ -18000,7 +18358,7 @@
18000
18358
  "type": "object",
18001
18359
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
18002
18360
  "additionalProperties": {
18003
- "oneOf": [
18361
+ "anyOf": [
18004
18362
  {
18005
18363
  "type": "string"
18006
18364
  },
@@ -18036,7 +18394,7 @@
18036
18394
  {
18037
18395
  "type": "array",
18038
18396
  "items": {
18039
- "oneOf": [
18397
+ "anyOf": [
18040
18398
  {
18041
18399
  "type": "string"
18042
18400
  }
@@ -18059,7 +18417,7 @@
18059
18417
  {
18060
18418
  "type": "array",
18061
18419
  "items": {
18062
- "oneOf": [
18420
+ "anyOf": [
18063
18421
  {
18064
18422
  "type": "string"
18065
18423
  }
@@ -18090,7 +18448,7 @@
18090
18448
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
18091
18449
  },
18092
18450
  "elementClass": {
18093
- "oneOf": [
18451
+ "anyOf": [
18094
18452
  {
18095
18453
  "type": "string"
18096
18454
  },
@@ -18107,7 +18465,7 @@
18107
18465
  "type": "object",
18108
18466
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
18109
18467
  "additionalProperties": {
18110
- "oneOf": [
18468
+ "anyOf": [
18111
18469
  {
18112
18470
  "type": "string"
18113
18471
  },
@@ -18210,6 +18568,19 @@
18210
18568
  ],
18211
18569
  "inputDelay": 100
18212
18570
  }
18571
+ },
18572
+ {
18573
+ "elementId": "/^user-[0-9]+$/",
18574
+ "elementClass": [
18575
+ "admin",
18576
+ "/^level-[1-5]$/"
18577
+ ],
18578
+ "elementAttribute": {
18579
+ "data-active": true,
18580
+ "data-score": "/^[0-9]+$/"
18581
+ },
18582
+ "timeout": 8000,
18583
+ "moveTo": false
18213
18584
  }
18214
18585
  ]
18215
18586
  }
@@ -18319,6 +18690,72 @@
18319
18690
  "transform": [
18320
18691
  "trim"
18321
18692
  ]
18693
+ },
18694
+ "timeout": {
18695
+ "type": "integer",
18696
+ "description": "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
18697
+ "default": 30000,
18698
+ "minimum": 0
18699
+ },
18700
+ "waitUntil": {
18701
+ "type": "object",
18702
+ "description": "Configuration for waiting conditions after navigation.",
18703
+ "additionalProperties": false,
18704
+ "properties": {
18705
+ "networkIdleTime": {
18706
+ "description": "Wait for network activity to be idle (no new requests) for this duration in milliseconds. Set to `null` to skip this check.",
18707
+ "anyOf": [
18708
+ {
18709
+ "type": "integer",
18710
+ "minimum": 0
18711
+ },
18712
+ {
18713
+ "type": "null"
18714
+ }
18715
+ ],
18716
+ "default": 500
18717
+ },
18718
+ "domIdleTime": {
18719
+ "description": "Wait for DOM mutations to stop for this duration in milliseconds. Set to `null` to skip this check.",
18720
+ "anyOf": [
18721
+ {
18722
+ "type": "integer",
18723
+ "minimum": 0
18724
+ },
18725
+ {
18726
+ "type": "null"
18727
+ }
18728
+ ],
18729
+ "default": 1000
18730
+ },
18731
+ "find": {
18732
+ "type": "object",
18733
+ "description": "Wait for a specific element to be present in the DOM. At least one of selector or elementText must be specified.",
18734
+ "additionalProperties": false,
18735
+ "anyOf": [
18736
+ {
18737
+ "required": [
18738
+ "selector"
18739
+ ]
18740
+ },
18741
+ {
18742
+ "required": [
18743
+ "elementText"
18744
+ ]
18745
+ }
18746
+ ],
18747
+ "properties": {
18748
+ "selector": {
18749
+ "type": "string",
18750
+ "description": "CSS selector for the element to wait for."
18751
+ },
18752
+ "elementText": {
18753
+ "type": "string",
18754
+ "description": "Text content the element must contain."
18755
+ }
18756
+ }
18757
+ }
18758
+ }
18322
18759
  }
18323
18760
  },
18324
18761
  "title": "Go to URL (detailed)"
@@ -18357,6 +18794,72 @@
18357
18794
  "transform": [
18358
18795
  "trim"
18359
18796
  ]
18797
+ },
18798
+ "timeout": {
18799
+ "type": "integer",
18800
+ "description": "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
18801
+ "default": 30000,
18802
+ "minimum": 0
18803
+ },
18804
+ "waitUntil": {
18805
+ "type": "object",
18806
+ "description": "Configuration for waiting conditions after navigation.",
18807
+ "additionalProperties": false,
18808
+ "properties": {
18809
+ "networkIdleTime": {
18810
+ "description": "Wait for network activity to be idle (no new requests) for this duration in milliseconds. Set to `null` to skip this check.",
18811
+ "anyOf": [
18812
+ {
18813
+ "type": "integer",
18814
+ "minimum": 0
18815
+ },
18816
+ {
18817
+ "type": "null"
18818
+ }
18819
+ ],
18820
+ "default": 500
18821
+ },
18822
+ "domIdleTime": {
18823
+ "description": "Wait for DOM mutations to stop for this duration in milliseconds. Set to `null` to skip this check.",
18824
+ "anyOf": [
18825
+ {
18826
+ "type": "integer",
18827
+ "minimum": 0
18828
+ },
18829
+ {
18830
+ "type": "null"
18831
+ }
18832
+ ],
18833
+ "default": 1000
18834
+ },
18835
+ "find": {
18836
+ "type": "object",
18837
+ "description": "Wait for a specific element to be present in the DOM. At least one of selector or elementText must be specified.",
18838
+ "additionalProperties": false,
18839
+ "anyOf": [
18840
+ {
18841
+ "required": [
18842
+ "selector"
18843
+ ]
18844
+ },
18845
+ {
18846
+ "required": [
18847
+ "elementText"
18848
+ ]
18849
+ }
18850
+ ],
18851
+ "properties": {
18852
+ "selector": {
18853
+ "type": "string",
18854
+ "description": "CSS selector for the element to wait for."
18855
+ },
18856
+ "elementText": {
18857
+ "type": "string",
18858
+ "description": "Text content the element must contain."
18859
+ }
18860
+ }
18861
+ }
18862
+ }
18360
18863
  }
18361
18864
  },
18362
18865
  "title": "Go to URL (detailed)"
@@ -18371,7 +18874,41 @@
18371
18874
  },
18372
18875
  {
18373
18876
  "url": "/search",
18374
- "origin": "www.google.com"
18877
+ "origin": "https://www.google.com"
18878
+ },
18879
+ {
18880
+ "url": "https://www.example.com",
18881
+ "waitUntil": {
18882
+ "networkIdleTime": 500
18883
+ }
18884
+ },
18885
+ {
18886
+ "url": "https://www.example.com/dashboard",
18887
+ "waitUntil": {
18888
+ "find": {
18889
+ "selector": "[data-testid='dashboard-loaded']"
18890
+ }
18891
+ }
18892
+ },
18893
+ {
18894
+ "url": "https://www.example.com/app",
18895
+ "timeout": 60000,
18896
+ "waitUntil": {
18897
+ "networkIdleTime": 500,
18898
+ "domIdleTime": 1000,
18899
+ "find": {
18900
+ "selector": ".main-content",
18901
+ "elementText": "Dashboard"
18902
+ }
18903
+ }
18904
+ },
18905
+ {
18906
+ "url": "https://www.example.com/status",
18907
+ "waitUntil": {
18908
+ "find": {
18909
+ "elementText": "System operational"
18910
+ }
18911
+ }
18375
18912
  }
18376
18913
  ]
18377
18914
  }
@@ -18679,7 +19216,7 @@
18679
19216
  "description": "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
18680
19217
  "type": "array",
18681
19218
  "items": {
18682
- "oneOf": [
19219
+ "anyOf": [
18683
19220
  {
18684
19221
  "type": "integer"
18685
19222
  }
@@ -19078,7 +19615,7 @@
19078
19615
  "description": "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
19079
19616
  "type": "array",
19080
19617
  "items": {
19081
- "oneOf": [
19618
+ "anyOf": [
19082
19619
  {
19083
19620
  "type": "integer"
19084
19621
  }
@@ -19539,7 +20076,7 @@
19539
20076
  "type": "array",
19540
20077
  "description": "Arguments for the command.",
19541
20078
  "items": {
19542
- "oneOf": [
20079
+ "anyOf": [
19543
20080
  {
19544
20081
  "type": "string"
19545
20082
  }
@@ -19556,7 +20093,7 @@
19556
20093
  "type": "array",
19557
20094
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
19558
20095
  "items": {
19559
- "oneOf": [
20096
+ "anyOf": [
19560
20097
  {
19561
20098
  "type": "integer"
19562
20099
  }
@@ -19629,7 +20166,7 @@
19629
20166
  "type": "array",
19630
20167
  "description": "Arguments for the command.",
19631
20168
  "items": {
19632
- "oneOf": [
20169
+ "anyOf": [
19633
20170
  {
19634
20171
  "type": "string"
19635
20172
  }
@@ -19646,7 +20183,7 @@
19646
20183
  "type": "array",
19647
20184
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
19648
20185
  "items": {
19649
- "oneOf": [
20186
+ "anyOf": [
19650
20187
  {
19651
20188
  "type": "integer"
19652
20189
  }
@@ -19847,7 +20384,7 @@
19847
20384
  "type": "array",
19848
20385
  "description": "Arguments for the command.",
19849
20386
  "items": {
19850
- "oneOf": [
20387
+ "anyOf": [
19851
20388
  {
19852
20389
  "type": "string"
19853
20390
  }
@@ -19864,7 +20401,7 @@
19864
20401
  "type": "array",
19865
20402
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
19866
20403
  "items": {
19867
- "oneOf": [
20404
+ "anyOf": [
19868
20405
  {
19869
20406
  "type": "integer"
19870
20407
  }
@@ -19938,7 +20475,7 @@
19938
20475
  "type": "array",
19939
20476
  "description": "Arguments for the command.",
19940
20477
  "items": {
19941
- "oneOf": [
20478
+ "anyOf": [
19942
20479
  {
19943
20480
  "type": "string"
19944
20481
  }
@@ -19955,7 +20492,7 @@
19955
20492
  "type": "array",
19956
20493
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
19957
20494
  "items": {
19958
- "oneOf": [
20495
+ "anyOf": [
19959
20496
  {
19960
20497
  "type": "integer"
19961
20498
  }
@@ -20126,7 +20663,7 @@
20126
20663
  {
20127
20664
  "type": "array",
20128
20665
  "items": {
20129
- "oneOf": [
20666
+ "anyOf": [
20130
20667
  {
20131
20668
  "type": "string"
20132
20669
  }
@@ -20149,7 +20686,7 @@
20149
20686
  {
20150
20687
  "type": "array",
20151
20688
  "items": {
20152
- "oneOf": [
20689
+ "anyOf": [
20153
20690
  {
20154
20691
  "type": "string"
20155
20692
  }
@@ -20180,7 +20717,7 @@
20180
20717
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
20181
20718
  },
20182
20719
  "elementClass": {
20183
- "oneOf": [
20720
+ "anyOf": [
20184
20721
  {
20185
20722
  "type": "string"
20186
20723
  },
@@ -20197,7 +20734,7 @@
20197
20734
  "type": "object",
20198
20735
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
20199
20736
  "additionalProperties": {
20200
- "oneOf": [
20737
+ "anyOf": [
20201
20738
  {
20202
20739
  "type": "string"
20203
20740
  },
@@ -20233,7 +20770,7 @@
20233
20770
  {
20234
20771
  "type": "array",
20235
20772
  "items": {
20236
- "oneOf": [
20773
+ "anyOf": [
20237
20774
  {
20238
20775
  "type": "string"
20239
20776
  }
@@ -20256,7 +20793,7 @@
20256
20793
  {
20257
20794
  "type": "array",
20258
20795
  "items": {
20259
- "oneOf": [
20796
+ "anyOf": [
20260
20797
  {
20261
20798
  "type": "string"
20262
20799
  }
@@ -20287,7 +20824,7 @@
20287
20824
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
20288
20825
  },
20289
20826
  "elementClass": {
20290
- "oneOf": [
20827
+ "anyOf": [
20291
20828
  {
20292
20829
  "type": "string"
20293
20830
  },
@@ -20304,7 +20841,7 @@
20304
20841
  "type": "object",
20305
20842
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
20306
20843
  "additionalProperties": {
20307
- "oneOf": [
20844
+ "anyOf": [
20308
20845
  {
20309
20846
  "type": "string"
20310
20847
  },
@@ -20544,7 +21081,7 @@
20544
21081
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
20545
21082
  },
20546
21083
  "elementClass": {
20547
- "oneOf": [
21084
+ "anyOf": [
20548
21085
  {
20549
21086
  "type": "string"
20550
21087
  },
@@ -20561,7 +21098,7 @@
20561
21098
  "type": "object",
20562
21099
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
20563
21100
  "additionalProperties": {
20564
- "oneOf": [
21101
+ "anyOf": [
20565
21102
  {
20566
21103
  "type": "string"
20567
21104
  },
@@ -20740,7 +21277,7 @@
20740
21277
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
20741
21278
  },
20742
21279
  "elementClass": {
20743
- "oneOf": [
21280
+ "anyOf": [
20744
21281
  {
20745
21282
  "type": "string"
20746
21283
  },
@@ -20757,7 +21294,7 @@
20757
21294
  "type": "object",
20758
21295
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
20759
21296
  "additionalProperties": {
20760
- "oneOf": [
21297
+ "anyOf": [
20761
21298
  {
20762
21299
  "type": "string"
20763
21300
  },
@@ -20875,7 +21412,7 @@
20875
21412
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
20876
21413
  },
20877
21414
  "elementClass": {
20878
- "oneOf": [
21415
+ "anyOf": [
20879
21416
  {
20880
21417
  "type": "string"
20881
21418
  },
@@ -20892,7 +21429,7 @@
20892
21429
  "type": "object",
20893
21430
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
20894
21431
  "additionalProperties": {
20895
- "oneOf": [
21432
+ "anyOf": [
20896
21433
  {
20897
21434
  "type": "string"
20898
21435
  },
@@ -23248,7 +23785,7 @@
23248
23785
  {
23249
23786
  "type": "array",
23250
23787
  "items": {
23251
- "oneOf": [
23788
+ "anyOf": [
23252
23789
  {
23253
23790
  "type": "integer"
23254
23791
  }
@@ -23311,7 +23848,7 @@
23311
23848
  {
23312
23849
  "type": "array",
23313
23850
  "items": {
23314
- "oneOf": [
23851
+ "anyOf": [
23315
23852
  {
23316
23853
  "type": "integer"
23317
23854
  }
@@ -23495,7 +24032,7 @@
23495
24032
  "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
23496
24033
  },
23497
24034
  "elementClass": {
23498
- "oneOf": [
24035
+ "anyOf": [
23499
24036
  {
23500
24037
  "type": "string"
23501
24038
  },
@@ -23512,7 +24049,7 @@
23512
24049
  "type": "object",
23513
24050
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
23514
24051
  "additionalProperties": {
23515
- "oneOf": [
24052
+ "anyOf": [
23516
24053
  {
23517
24054
  "type": "string"
23518
24055
  },
@@ -23618,7 +24155,7 @@
23618
24155
  "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
23619
24156
  },
23620
24157
  "elementClass": {
23621
- "oneOf": [
24158
+ "anyOf": [
23622
24159
  {
23623
24160
  "type": "string"
23624
24161
  },
@@ -23635,7 +24172,7 @@
23635
24172
  "type": "object",
23636
24173
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
23637
24174
  "additionalProperties": {
23638
- "oneOf": [
24175
+ "anyOf": [
23639
24176
  {
23640
24177
  "type": "string"
23641
24178
  },
@@ -23810,7 +24347,7 @@
23810
24347
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
23811
24348
  },
23812
24349
  "elementClass": {
23813
- "oneOf": [
24350
+ "anyOf": [
23814
24351
  {
23815
24352
  "type": "string"
23816
24353
  },
@@ -23827,7 +24364,7 @@
23827
24364
  "type": "object",
23828
24365
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
23829
24366
  "additionalProperties": {
23830
- "oneOf": [
24367
+ "anyOf": [
23831
24368
  {
23832
24369
  "type": "string"
23833
24370
  },
@@ -23934,7 +24471,7 @@
23934
24471
  "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
23935
24472
  },
23936
24473
  "elementClass": {
23937
- "oneOf": [
24474
+ "anyOf": [
23938
24475
  {
23939
24476
  "type": "string"
23940
24477
  },
@@ -23951,7 +24488,7 @@
23951
24488
  "type": "object",
23952
24489
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
23953
24490
  "additionalProperties": {
23954
- "oneOf": [
24491
+ "anyOf": [
23955
24492
  {
23956
24493
  "type": "string"
23957
24494
  },
@@ -24057,7 +24594,7 @@
24057
24594
  "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
24058
24595
  },
24059
24596
  "elementClass": {
24060
- "oneOf": [
24597
+ "anyOf": [
24061
24598
  {
24062
24599
  "type": "string"
24063
24600
  },
@@ -24074,7 +24611,7 @@
24074
24611
  "type": "object",
24075
24612
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
24076
24613
  "additionalProperties": {
24077
- "oneOf": [
24614
+ "anyOf": [
24078
24615
  {
24079
24616
  "type": "string"
24080
24617
  },
@@ -24144,7 +24681,7 @@
24144
24681
  {
24145
24682
  "type": "array",
24146
24683
  "items": {
24147
- "oneOf": [
24684
+ "anyOf": [
24148
24685
  {
24149
24686
  "type": "string"
24150
24687
  }
@@ -24167,7 +24704,7 @@
24167
24704
  {
24168
24705
  "type": "array",
24169
24706
  "items": {
24170
- "oneOf": [
24707
+ "anyOf": [
24171
24708
  {
24172
24709
  "type": "string"
24173
24710
  }
@@ -24198,7 +24735,7 @@
24198
24735
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
24199
24736
  },
24200
24737
  "elementClass": {
24201
- "oneOf": [
24738
+ "anyOf": [
24202
24739
  {
24203
24740
  "type": "string"
24204
24741
  },
@@ -24215,7 +24752,7 @@
24215
24752
  "type": "object",
24216
24753
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
24217
24754
  "additionalProperties": {
24218
- "oneOf": [
24755
+ "anyOf": [
24219
24756
  {
24220
24757
  "type": "string"
24221
24758
  },
@@ -24251,7 +24788,7 @@
24251
24788
  {
24252
24789
  "type": "array",
24253
24790
  "items": {
24254
- "oneOf": [
24791
+ "anyOf": [
24255
24792
  {
24256
24793
  "type": "string"
24257
24794
  }
@@ -24274,7 +24811,7 @@
24274
24811
  {
24275
24812
  "type": "array",
24276
24813
  "items": {
24277
- "oneOf": [
24814
+ "anyOf": [
24278
24815
  {
24279
24816
  "type": "string"
24280
24817
  }
@@ -24305,7 +24842,7 @@
24305
24842
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
24306
24843
  },
24307
24844
  "elementClass": {
24308
- "oneOf": [
24845
+ "anyOf": [
24309
24846
  {
24310
24847
  "type": "string"
24311
24848
  },
@@ -24322,7 +24859,7 @@
24322
24859
  "type": "object",
24323
24860
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
24324
24861
  "additionalProperties": {
24325
- "oneOf": [
24862
+ "anyOf": [
24326
24863
  {
24327
24864
  "type": "string"
24328
24865
  },
@@ -24459,7 +24996,7 @@
24459
24996
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
24460
24997
  },
24461
24998
  "elementClass": {
24462
- "oneOf": [
24999
+ "anyOf": [
24463
25000
  {
24464
25001
  "type": "string"
24465
25002
  },
@@ -24476,7 +25013,7 @@
24476
25013
  "type": "object",
24477
25014
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
24478
25015
  "additionalProperties": {
24479
- "oneOf": [
25016
+ "anyOf": [
24480
25017
  {
24481
25018
  "type": "string"
24482
25019
  },
@@ -24583,7 +25120,7 @@
24583
25120
  "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
24584
25121
  },
24585
25122
  "elementClass": {
24586
- "oneOf": [
25123
+ "anyOf": [
24587
25124
  {
24588
25125
  "type": "string"
24589
25126
  },
@@ -24600,7 +25137,7 @@
24600
25137
  "type": "object",
24601
25138
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
24602
25139
  "additionalProperties": {
24603
- "oneOf": [
25140
+ "anyOf": [
24604
25141
  {
24605
25142
  "type": "string"
24606
25143
  },
@@ -24706,7 +25243,7 @@
24706
25243
  "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
24707
25244
  },
24708
25245
  "elementClass": {
24709
- "oneOf": [
25246
+ "anyOf": [
24710
25247
  {
24711
25248
  "type": "string"
24712
25249
  },
@@ -24723,7 +25260,7 @@
24723
25260
  "type": "object",
24724
25261
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
24725
25262
  "additionalProperties": {
24726
- "oneOf": [
25263
+ "anyOf": [
24727
25264
  {
24728
25265
  "type": "string"
24729
25266
  },
@@ -24793,7 +25330,7 @@
24793
25330
  {
24794
25331
  "type": "array",
24795
25332
  "items": {
24796
- "oneOf": [
25333
+ "anyOf": [
24797
25334
  {
24798
25335
  "type": "string"
24799
25336
  }
@@ -24816,7 +25353,7 @@
24816
25353
  {
24817
25354
  "type": "array",
24818
25355
  "items": {
24819
- "oneOf": [
25356
+ "anyOf": [
24820
25357
  {
24821
25358
  "type": "string"
24822
25359
  }
@@ -24847,7 +25384,7 @@
24847
25384
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
24848
25385
  },
24849
25386
  "elementClass": {
24850
- "oneOf": [
25387
+ "anyOf": [
24851
25388
  {
24852
25389
  "type": "string"
24853
25390
  },
@@ -24864,7 +25401,7 @@
24864
25401
  "type": "object",
24865
25402
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
24866
25403
  "additionalProperties": {
24867
- "oneOf": [
25404
+ "anyOf": [
24868
25405
  {
24869
25406
  "type": "string"
24870
25407
  },
@@ -24900,7 +25437,7 @@
24900
25437
  {
24901
25438
  "type": "array",
24902
25439
  "items": {
24903
- "oneOf": [
25440
+ "anyOf": [
24904
25441
  {
24905
25442
  "type": "string"
24906
25443
  }
@@ -24923,7 +25460,7 @@
24923
25460
  {
24924
25461
  "type": "array",
24925
25462
  "items": {
24926
- "oneOf": [
25463
+ "anyOf": [
24927
25464
  {
24928
25465
  "type": "string"
24929
25466
  }
@@ -24954,7 +25491,7 @@
24954
25491
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
24955
25492
  },
24956
25493
  "elementClass": {
24957
- "oneOf": [
25494
+ "anyOf": [
24958
25495
  {
24959
25496
  "type": "string"
24960
25497
  },
@@ -24971,7 +25508,7 @@
24971
25508
  "type": "object",
24972
25509
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
24973
25510
  "additionalProperties": {
24974
- "oneOf": [
25511
+ "anyOf": [
24975
25512
  {
24976
25513
  "type": "string"
24977
25514
  },
@@ -25074,6 +25611,19 @@
25074
25611
  ],
25075
25612
  "inputDelay": 100
25076
25613
  }
25614
+ },
25615
+ {
25616
+ "elementId": "/^user-[0-9]+$/",
25617
+ "elementClass": [
25618
+ "admin",
25619
+ "/^level-[1-5]$/"
25620
+ ],
25621
+ "elementAttribute": {
25622
+ "data-active": true,
25623
+ "data-score": "/^[0-9]+$/"
25624
+ },
25625
+ "timeout": 8000,
25626
+ "moveTo": false
25077
25627
  }
25078
25628
  ]
25079
25629
  }
@@ -25183,6 +25733,72 @@
25183
25733
  "transform": [
25184
25734
  "trim"
25185
25735
  ]
25736
+ },
25737
+ "timeout": {
25738
+ "type": "integer",
25739
+ "description": "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
25740
+ "default": 30000,
25741
+ "minimum": 0
25742
+ },
25743
+ "waitUntil": {
25744
+ "type": "object",
25745
+ "description": "Configuration for waiting conditions after navigation.",
25746
+ "additionalProperties": false,
25747
+ "properties": {
25748
+ "networkIdleTime": {
25749
+ "description": "Wait for network activity to be idle (no new requests) for this duration in milliseconds. Set to `null` to skip this check.",
25750
+ "anyOf": [
25751
+ {
25752
+ "type": "integer",
25753
+ "minimum": 0
25754
+ },
25755
+ {
25756
+ "type": "null"
25757
+ }
25758
+ ],
25759
+ "default": 500
25760
+ },
25761
+ "domIdleTime": {
25762
+ "description": "Wait for DOM mutations to stop for this duration in milliseconds. Set to `null` to skip this check.",
25763
+ "anyOf": [
25764
+ {
25765
+ "type": "integer",
25766
+ "minimum": 0
25767
+ },
25768
+ {
25769
+ "type": "null"
25770
+ }
25771
+ ],
25772
+ "default": 1000
25773
+ },
25774
+ "find": {
25775
+ "type": "object",
25776
+ "description": "Wait for a specific element to be present in the DOM. At least one of selector or elementText must be specified.",
25777
+ "additionalProperties": false,
25778
+ "anyOf": [
25779
+ {
25780
+ "required": [
25781
+ "selector"
25782
+ ]
25783
+ },
25784
+ {
25785
+ "required": [
25786
+ "elementText"
25787
+ ]
25788
+ }
25789
+ ],
25790
+ "properties": {
25791
+ "selector": {
25792
+ "type": "string",
25793
+ "description": "CSS selector for the element to wait for."
25794
+ },
25795
+ "elementText": {
25796
+ "type": "string",
25797
+ "description": "Text content the element must contain."
25798
+ }
25799
+ }
25800
+ }
25801
+ }
25186
25802
  }
25187
25803
  },
25188
25804
  "title": "Go to URL (detailed)"
@@ -25221,6 +25837,72 @@
25221
25837
  "transform": [
25222
25838
  "trim"
25223
25839
  ]
25840
+ },
25841
+ "timeout": {
25842
+ "type": "integer",
25843
+ "description": "Maximum time in milliseconds to wait for the page to be ready. If exceeded, the goTo action fails.",
25844
+ "default": 30000,
25845
+ "minimum": 0
25846
+ },
25847
+ "waitUntil": {
25848
+ "type": "object",
25849
+ "description": "Configuration for waiting conditions after navigation.",
25850
+ "additionalProperties": false,
25851
+ "properties": {
25852
+ "networkIdleTime": {
25853
+ "description": "Wait for network activity to be idle (no new requests) for this duration in milliseconds. Set to `null` to skip this check.",
25854
+ "anyOf": [
25855
+ {
25856
+ "type": "integer",
25857
+ "minimum": 0
25858
+ },
25859
+ {
25860
+ "type": "null"
25861
+ }
25862
+ ],
25863
+ "default": 500
25864
+ },
25865
+ "domIdleTime": {
25866
+ "description": "Wait for DOM mutations to stop for this duration in milliseconds. Set to `null` to skip this check.",
25867
+ "anyOf": [
25868
+ {
25869
+ "type": "integer",
25870
+ "minimum": 0
25871
+ },
25872
+ {
25873
+ "type": "null"
25874
+ }
25875
+ ],
25876
+ "default": 1000
25877
+ },
25878
+ "find": {
25879
+ "type": "object",
25880
+ "description": "Wait for a specific element to be present in the DOM. At least one of selector or elementText must be specified.",
25881
+ "additionalProperties": false,
25882
+ "anyOf": [
25883
+ {
25884
+ "required": [
25885
+ "selector"
25886
+ ]
25887
+ },
25888
+ {
25889
+ "required": [
25890
+ "elementText"
25891
+ ]
25892
+ }
25893
+ ],
25894
+ "properties": {
25895
+ "selector": {
25896
+ "type": "string",
25897
+ "description": "CSS selector for the element to wait for."
25898
+ },
25899
+ "elementText": {
25900
+ "type": "string",
25901
+ "description": "Text content the element must contain."
25902
+ }
25903
+ }
25904
+ }
25905
+ }
25224
25906
  }
25225
25907
  },
25226
25908
  "title": "Go to URL (detailed)"
@@ -25235,7 +25917,41 @@
25235
25917
  },
25236
25918
  {
25237
25919
  "url": "/search",
25238
- "origin": "www.google.com"
25920
+ "origin": "https://www.google.com"
25921
+ },
25922
+ {
25923
+ "url": "https://www.example.com",
25924
+ "waitUntil": {
25925
+ "networkIdleTime": 500
25926
+ }
25927
+ },
25928
+ {
25929
+ "url": "https://www.example.com/dashboard",
25930
+ "waitUntil": {
25931
+ "find": {
25932
+ "selector": "[data-testid='dashboard-loaded']"
25933
+ }
25934
+ }
25935
+ },
25936
+ {
25937
+ "url": "https://www.example.com/app",
25938
+ "timeout": 60000,
25939
+ "waitUntil": {
25940
+ "networkIdleTime": 500,
25941
+ "domIdleTime": 1000,
25942
+ "find": {
25943
+ "selector": ".main-content",
25944
+ "elementText": "Dashboard"
25945
+ }
25946
+ }
25947
+ },
25948
+ {
25949
+ "url": "https://www.example.com/status",
25950
+ "waitUntil": {
25951
+ "find": {
25952
+ "elementText": "System operational"
25953
+ }
25954
+ }
25239
25955
  }
25240
25956
  ]
25241
25957
  }
@@ -25543,7 +26259,7 @@
25543
26259
  "description": "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
25544
26260
  "type": "array",
25545
26261
  "items": {
25546
- "oneOf": [
26262
+ "anyOf": [
25547
26263
  {
25548
26264
  "type": "integer"
25549
26265
  }
@@ -25942,7 +26658,7 @@
25942
26658
  "description": "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
25943
26659
  "type": "array",
25944
26660
  "items": {
25945
- "oneOf": [
26661
+ "anyOf": [
25946
26662
  {
25947
26663
  "type": "integer"
25948
26664
  }
@@ -26403,7 +27119,7 @@
26403
27119
  "type": "array",
26404
27120
  "description": "Arguments for the command.",
26405
27121
  "items": {
26406
- "oneOf": [
27122
+ "anyOf": [
26407
27123
  {
26408
27124
  "type": "string"
26409
27125
  }
@@ -26420,7 +27136,7 @@
26420
27136
  "type": "array",
26421
27137
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
26422
27138
  "items": {
26423
- "oneOf": [
27139
+ "anyOf": [
26424
27140
  {
26425
27141
  "type": "integer"
26426
27142
  }
@@ -26493,7 +27209,7 @@
26493
27209
  "type": "array",
26494
27210
  "description": "Arguments for the command.",
26495
27211
  "items": {
26496
- "oneOf": [
27212
+ "anyOf": [
26497
27213
  {
26498
27214
  "type": "string"
26499
27215
  }
@@ -26510,7 +27226,7 @@
26510
27226
  "type": "array",
26511
27227
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
26512
27228
  "items": {
26513
- "oneOf": [
27229
+ "anyOf": [
26514
27230
  {
26515
27231
  "type": "integer"
26516
27232
  }
@@ -26711,7 +27427,7 @@
26711
27427
  "type": "array",
26712
27428
  "description": "Arguments for the command.",
26713
27429
  "items": {
26714
- "oneOf": [
27430
+ "anyOf": [
26715
27431
  {
26716
27432
  "type": "string"
26717
27433
  }
@@ -26728,7 +27444,7 @@
26728
27444
  "type": "array",
26729
27445
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
26730
27446
  "items": {
26731
- "oneOf": [
27447
+ "anyOf": [
26732
27448
  {
26733
27449
  "type": "integer"
26734
27450
  }
@@ -26802,7 +27518,7 @@
26802
27518
  "type": "array",
26803
27519
  "description": "Arguments for the command.",
26804
27520
  "items": {
26805
- "oneOf": [
27521
+ "anyOf": [
26806
27522
  {
26807
27523
  "type": "string"
26808
27524
  }
@@ -26819,7 +27535,7 @@
26819
27535
  "type": "array",
26820
27536
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
26821
27537
  "items": {
26822
- "oneOf": [
27538
+ "anyOf": [
26823
27539
  {
26824
27540
  "type": "integer"
26825
27541
  }
@@ -26990,7 +27706,7 @@
26990
27706
  {
26991
27707
  "type": "array",
26992
27708
  "items": {
26993
- "oneOf": [
27709
+ "anyOf": [
26994
27710
  {
26995
27711
  "type": "string"
26996
27712
  }
@@ -27013,7 +27729,7 @@
27013
27729
  {
27014
27730
  "type": "array",
27015
27731
  "items": {
27016
- "oneOf": [
27732
+ "anyOf": [
27017
27733
  {
27018
27734
  "type": "string"
27019
27735
  }
@@ -27044,7 +27760,7 @@
27044
27760
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
27045
27761
  },
27046
27762
  "elementClass": {
27047
- "oneOf": [
27763
+ "anyOf": [
27048
27764
  {
27049
27765
  "type": "string"
27050
27766
  },
@@ -27061,7 +27777,7 @@
27061
27777
  "type": "object",
27062
27778
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
27063
27779
  "additionalProperties": {
27064
- "oneOf": [
27780
+ "anyOf": [
27065
27781
  {
27066
27782
  "type": "string"
27067
27783
  },
@@ -27097,7 +27813,7 @@
27097
27813
  {
27098
27814
  "type": "array",
27099
27815
  "items": {
27100
- "oneOf": [
27816
+ "anyOf": [
27101
27817
  {
27102
27818
  "type": "string"
27103
27819
  }
@@ -27120,7 +27836,7 @@
27120
27836
  {
27121
27837
  "type": "array",
27122
27838
  "items": {
27123
- "oneOf": [
27839
+ "anyOf": [
27124
27840
  {
27125
27841
  "type": "string"
27126
27842
  }
@@ -27151,7 +27867,7 @@
27151
27867
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
27152
27868
  },
27153
27869
  "elementClass": {
27154
- "oneOf": [
27870
+ "anyOf": [
27155
27871
  {
27156
27872
  "type": "string"
27157
27873
  },
@@ -27168,7 +27884,7 @@
27168
27884
  "type": "object",
27169
27885
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
27170
27886
  "additionalProperties": {
27171
- "oneOf": [
27887
+ "anyOf": [
27172
27888
  {
27173
27889
  "type": "string"
27174
27890
  },
@@ -27408,7 +28124,7 @@
27408
28124
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
27409
28125
  },
27410
28126
  "elementClass": {
27411
- "oneOf": [
28127
+ "anyOf": [
27412
28128
  {
27413
28129
  "type": "string"
27414
28130
  },
@@ -27425,7 +28141,7 @@
27425
28141
  "type": "object",
27426
28142
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
27427
28143
  "additionalProperties": {
27428
- "oneOf": [
28144
+ "anyOf": [
27429
28145
  {
27430
28146
  "type": "string"
27431
28147
  },
@@ -27604,7 +28320,7 @@
27604
28320
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
27605
28321
  },
27606
28322
  "elementClass": {
27607
- "oneOf": [
28323
+ "anyOf": [
27608
28324
  {
27609
28325
  "type": "string"
27610
28326
  },
@@ -27621,7 +28337,7 @@
27621
28337
  "type": "object",
27622
28338
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
27623
28339
  "additionalProperties": {
27624
- "oneOf": [
28340
+ "anyOf": [
27625
28341
  {
27626
28342
  "type": "string"
27627
28343
  },
@@ -27739,7 +28455,7 @@
27739
28455
  "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
27740
28456
  },
27741
28457
  "elementClass": {
27742
- "oneOf": [
28458
+ "anyOf": [
27743
28459
  {
27744
28460
  "type": "string"
27745
28461
  },
@@ -27756,7 +28472,7 @@
27756
28472
  "type": "object",
27757
28473
  "description": "Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.",
27758
28474
  "additionalProperties": {
27759
- "oneOf": [
28475
+ "anyOf": [
27760
28476
  {
27761
28477
  "type": "string"
27762
28478
  },