doc-detective-common 3.4.1-dev.2 → 3.4.1-dev.4

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 (48) hide show
  1. package/dist/schemas/checkLink_v3.schema.json +2 -2
  2. package/dist/schemas/click_v3.schema.json +142 -6
  3. package/dist/schemas/config_v3.schema.json +2257 -151
  4. package/dist/schemas/find_v3.schema.json +647 -28
  5. package/dist/schemas/httpRequest_v3.schema.json +2 -2
  6. package/dist/schemas/report_v3.schema.json +2264 -158
  7. package/dist/schemas/resolvedTests_v3.schema.json +4478 -266
  8. package/dist/schemas/runCode_v3.schema.json +4 -4
  9. package/dist/schemas/runShell_v3.schema.json +4 -4
  10. package/dist/schemas/screenshot_v3.schema.json +204 -0
  11. package/dist/schemas/spec_v3.schema.json +2264 -158
  12. package/dist/schemas/step_v3.schema.json +1114 -61
  13. package/dist/schemas/test_v3.schema.json +2253 -147
  14. package/dist/schemas/type_v3.schema.json +98 -4
  15. package/package.json +1 -1
  16. package/src/schemas/build/checkLink_v3.schema.json +1 -1
  17. package/src/schemas/build/click_v3.schema.json +71 -3
  18. package/src/schemas/build/find_v3.schema.json +90 -4
  19. package/src/schemas/build/httpRequest_v3.schema.json +1 -1
  20. package/src/schemas/build/runCode_v3.schema.json +2 -2
  21. package/src/schemas/build/runShell_v3.schema.json +2 -2
  22. package/src/schemas/build/screenshot_v3.schema.json +68 -0
  23. package/src/schemas/build/test_v3.schema.json +1 -1
  24. package/src/schemas/build/type_v3.schema.json +48 -1
  25. package/src/schemas/output_schemas/checkLink_v3.schema.json +2 -2
  26. package/src/schemas/output_schemas/click_v3.schema.json +142 -6
  27. package/src/schemas/output_schemas/config_v3.schema.json +2257 -151
  28. package/src/schemas/output_schemas/find_v3.schema.json +647 -28
  29. package/src/schemas/output_schemas/httpRequest_v3.schema.json +2 -2
  30. package/src/schemas/output_schemas/report_v3.schema.json +2264 -158
  31. package/src/schemas/output_schemas/resolvedTests_v3.schema.json +4478 -266
  32. package/src/schemas/output_schemas/runCode_v3.schema.json +4 -4
  33. package/src/schemas/output_schemas/runShell_v3.schema.json +4 -4
  34. package/src/schemas/output_schemas/screenshot_v3.schema.json +204 -0
  35. package/src/schemas/output_schemas/spec_v3.schema.json +2264 -158
  36. package/src/schemas/output_schemas/step_v3.schema.json +1114 -61
  37. package/src/schemas/output_schemas/test_v3.schema.json +2253 -147
  38. package/src/schemas/output_schemas/type_v3.schema.json +98 -4
  39. package/src/schemas/schemas.json +15467 -725
  40. package/src/schemas/src_schemas/checkLink_v3.schema.json +1 -1
  41. package/src/schemas/src_schemas/click_v3.schema.json +71 -3
  42. package/src/schemas/src_schemas/find_v3.schema.json +87 -4
  43. package/src/schemas/src_schemas/httpRequest_v3.schema.json +1 -1
  44. package/src/schemas/src_schemas/runCode_v3.schema.json +2 -2
  45. package/src/schemas/src_schemas/runShell_v3.schema.json +2 -2
  46. package/src/schemas/src_schemas/screenshot_v3.schema.json +68 -0
  47. package/src/schemas/src_schemas/test_v3.schema.json +1 -1
  48. package/src/schemas/src_schemas/type_v3.schema.json +48 -1
@@ -227,7 +227,7 @@
227
227
  {
228
228
  "type": "array",
229
229
  "items": {
230
- "oneOf": [
230
+ "anyOf": [
231
231
  {
232
232
  "type": "integer"
233
233
  }
@@ -290,7 +290,7 @@
290
290
  {
291
291
  "type": "array",
292
292
  "items": {
293
- "oneOf": [
293
+ "anyOf": [
294
294
  {
295
295
  "type": "integer"
296
296
  }
@@ -405,7 +405,7 @@
405
405
  {
406
406
  "title": "Click element (simple)",
407
407
  "type": "string",
408
- "description": "Display text or selector of the element to find."
408
+ "description": "Identifier for the element to click. Can be a selector, element text, ARIA name, ID, or test ID."
409
409
  },
410
410
  {
411
411
  "title": "Click element (detailed)",
@@ -420,6 +420,31 @@
420
420
  "required": [
421
421
  "elementText"
422
422
  ]
423
+ },
424
+ {
425
+ "required": [
426
+ "elementId"
427
+ ]
428
+ },
429
+ {
430
+ "required": [
431
+ "elementTestId"
432
+ ]
433
+ },
434
+ {
435
+ "required": [
436
+ "elementClass"
437
+ ]
438
+ },
439
+ {
440
+ "required": [
441
+ "elementAttribute"
442
+ ]
443
+ },
444
+ {
445
+ "required": [
446
+ "elementAria"
447
+ ]
423
448
  }
424
449
  ],
425
450
  "properties": {
@@ -434,11 +459,54 @@
434
459
  },
435
460
  "elementText": {
436
461
  "type": "string",
437
- "description": "Display text of the element to click. If combined with `selector`, the element must match both the text and the selector."
462
+ "description": "Display text of the element to click. If combined with other element finding fields, the element must match all specified criteria."
438
463
  },
439
464
  "selector": {
440
465
  "type": "string",
441
- "description": "Selector of the element to click. If combined with `elementText`, the element must match both the text and the selector."
466
+ "description": "Selector of the element to click. If combined with other element finding fields, the element must match all specified criteria."
467
+ },
468
+ "elementId": {
469
+ "type": "string",
470
+ "description": "ID attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
471
+ },
472
+ "elementTestId": {
473
+ "type": "string",
474
+ "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
475
+ },
476
+ "elementClass": {
477
+ "anyOf": [
478
+ {
479
+ "type": "string"
480
+ },
481
+ {
482
+ "type": "array",
483
+ "items": {
484
+ "type": "string"
485
+ }
486
+ }
487
+ ],
488
+ "description": "Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes."
489
+ },
490
+ "elementAttribute": {
491
+ "type": "object",
492
+ "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.",
493
+ "additionalProperties": {
494
+ "anyOf": [
495
+ {
496
+ "type": "string"
497
+ },
498
+ {
499
+ "type": "number"
500
+ },
501
+ {
502
+ "type": "boolean"
503
+ }
504
+ ]
505
+ }
506
+ },
507
+ "elementAria": {
508
+ "type": "string",
509
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
442
510
  }
443
511
  }
444
512
  },
@@ -451,7 +519,7 @@
451
519
  "string": {
452
520
  "title": "Click element (simple)",
453
521
  "type": "string",
454
- "description": "Display text or selector of the element to find."
522
+ "description": "Identifier for the element to click. Can be a selector, element text, ARIA name, ID, or test ID."
455
523
  },
456
524
  "button": {
457
525
  "description": "Kind of click to perform.",
@@ -475,6 +543,31 @@
475
543
  "required": [
476
544
  "elementText"
477
545
  ]
546
+ },
547
+ {
548
+ "required": [
549
+ "elementId"
550
+ ]
551
+ },
552
+ {
553
+ "required": [
554
+ "elementTestId"
555
+ ]
556
+ },
557
+ {
558
+ "required": [
559
+ "elementClass"
560
+ ]
561
+ },
562
+ {
563
+ "required": [
564
+ "elementAttribute"
565
+ ]
566
+ },
567
+ {
568
+ "required": [
569
+ "elementAria"
570
+ ]
478
571
  }
479
572
  ],
480
573
  "properties": {
@@ -489,11 +582,54 @@
489
582
  },
490
583
  "elementText": {
491
584
  "type": "string",
492
- "description": "Display text of the element to click. If combined with `selector`, the element must match both the text and the selector."
585
+ "description": "Display text of the element to click. If combined with other element finding fields, the element must match all specified criteria."
493
586
  },
494
587
  "selector": {
495
588
  "type": "string",
496
- "description": "Selector of the element to click. If combined with `elementText`, the element must match both the text and the selector."
589
+ "description": "Selector of the element to click. If combined with other element finding fields, the element must match all specified criteria."
590
+ },
591
+ "elementId": {
592
+ "type": "string",
593
+ "description": "ID attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
594
+ },
595
+ "elementTestId": {
596
+ "type": "string",
597
+ "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
598
+ },
599
+ "elementClass": {
600
+ "anyOf": [
601
+ {
602
+ "type": "string"
603
+ },
604
+ {
605
+ "type": "array",
606
+ "items": {
607
+ "type": "string"
608
+ }
609
+ }
610
+ ],
611
+ "description": "Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes."
612
+ },
613
+ "elementAttribute": {
614
+ "type": "object",
615
+ "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.",
616
+ "additionalProperties": {
617
+ "anyOf": [
618
+ {
619
+ "type": "string"
620
+ },
621
+ {
622
+ "type": "number"
623
+ },
624
+ {
625
+ "type": "boolean"
626
+ }
627
+ ]
628
+ }
629
+ },
630
+ "elementAria": {
631
+ "type": "string",
632
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
497
633
  }
498
634
  }
499
635
  }
@@ -592,7 +728,7 @@
592
728
  {
593
729
  "title": "Find element (simple)",
594
730
  "type": "string",
595
- "description": "Display text or selector of the element to find."
731
+ "description": "Identifier for the element to find. Can be a selector, element text, ARIA name, ID, or test ID."
596
732
  },
597
733
  {
598
734
  "title": "Find element (detailed)",
@@ -607,17 +743,85 @@
607
743
  "required": [
608
744
  "elementText"
609
745
  ]
746
+ },
747
+ {
748
+ "required": [
749
+ "elementId"
750
+ ]
751
+ },
752
+ {
753
+ "required": [
754
+ "elementTestId"
755
+ ]
756
+ },
757
+ {
758
+ "required": [
759
+ "elementClass"
760
+ ]
761
+ },
762
+ {
763
+ "required": [
764
+ "elementAttribute"
765
+ ]
766
+ },
767
+ {
768
+ "required": [
769
+ "elementAria"
770
+ ]
610
771
  }
611
772
  ],
612
773
  "additionalProperties": false,
613
774
  "properties": {
614
775
  "elementText": {
615
776
  "type": "string",
616
- "description": "Display text of the element to find. If combined with `selector`, the element must match both the text and the selector."
777
+ "description": "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
617
778
  },
618
779
  "selector": {
619
780
  "type": "string",
620
- "description": "Selector of the element to find. If combined with `elementText`, the element must match both the text and the selector."
781
+ "description": "Selector of the element to find. If combined with other element finding fields, the element must match all specified criteria."
782
+ },
783
+ "elementId": {
784
+ "type": "string",
785
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
786
+ },
787
+ "elementTestId": {
788
+ "type": "string",
789
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
790
+ },
791
+ "elementClass": {
792
+ "anyOf": [
793
+ {
794
+ "type": "string"
795
+ },
796
+ {
797
+ "type": "array",
798
+ "items": {
799
+ "type": "string"
800
+ }
801
+ }
802
+ ],
803
+ "description": "Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes."
804
+ },
805
+ "elementAttribute": {
806
+ "type": "object",
807
+ "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.",
808
+ "additionalProperties": {
809
+ "anyOf": [
810
+ {
811
+ "type": "string"
812
+ },
813
+ {
814
+ "type": "number"
815
+ },
816
+ {
817
+ "type": "boolean"
818
+ }
819
+ ]
820
+ }
821
+ },
822
+ "elementAria": {
823
+ "type": "string",
824
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
621
825
  },
622
826
  "timeout": {
623
827
  "type": "integer",
@@ -640,7 +844,7 @@
640
844
  {
641
845
  "title": "Click element (simple)",
642
846
  "type": "string",
643
- "description": "Display text or selector of the element to find."
847
+ "description": "Identifier for the element to click. Can be a selector, element text, ARIA name, ID, or test ID."
644
848
  },
645
849
  {
646
850
  "title": "Click element (detailed)",
@@ -655,6 +859,31 @@
655
859
  "required": [
656
860
  "elementText"
657
861
  ]
862
+ },
863
+ {
864
+ "required": [
865
+ "elementId"
866
+ ]
867
+ },
868
+ {
869
+ "required": [
870
+ "elementTestId"
871
+ ]
872
+ },
873
+ {
874
+ "required": [
875
+ "elementClass"
876
+ ]
877
+ },
878
+ {
879
+ "required": [
880
+ "elementAttribute"
881
+ ]
882
+ },
883
+ {
884
+ "required": [
885
+ "elementAria"
886
+ ]
658
887
  }
659
888
  ],
660
889
  "properties": {
@@ -669,11 +898,54 @@
669
898
  },
670
899
  "elementText": {
671
900
  "type": "string",
672
- "description": "Display text of the element to click. If combined with `selector`, the element must match both the text and the selector."
901
+ "description": "Display text of the element to click. If combined with other element finding fields, the element must match all specified criteria."
673
902
  },
674
903
  "selector": {
675
904
  "type": "string",
676
- "description": "Selector of the element to click. If combined with `elementText`, the element must match both the text and the selector."
905
+ "description": "Selector of the element to click. If combined with other element finding fields, the element must match all specified criteria."
906
+ },
907
+ "elementId": {
908
+ "type": "string",
909
+ "description": "ID attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
910
+ },
911
+ "elementTestId": {
912
+ "type": "string",
913
+ "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
914
+ },
915
+ "elementClass": {
916
+ "anyOf": [
917
+ {
918
+ "type": "string"
919
+ },
920
+ {
921
+ "type": "array",
922
+ "items": {
923
+ "type": "string"
924
+ }
925
+ }
926
+ ],
927
+ "description": "Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes."
928
+ },
929
+ "elementAttribute": {
930
+ "type": "object",
931
+ "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.",
932
+ "additionalProperties": {
933
+ "anyOf": [
934
+ {
935
+ "type": "string"
936
+ },
937
+ {
938
+ "type": "number"
939
+ },
940
+ {
941
+ "type": "boolean"
942
+ }
943
+ ]
944
+ }
945
+ },
946
+ "elementAria": {
947
+ "type": "string",
948
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
677
949
  }
678
950
  }
679
951
  },
@@ -686,7 +958,7 @@
686
958
  "string": {
687
959
  "title": "Click element (simple)",
688
960
  "type": "string",
689
- "description": "Display text or selector of the element to find."
961
+ "description": "Identifier for the element to click. Can be a selector, element text, ARIA name, ID, or test ID."
690
962
  },
691
963
  "button": {
692
964
  "description": "Kind of click to perform.",
@@ -710,6 +982,31 @@
710
982
  "required": [
711
983
  "elementText"
712
984
  ]
985
+ },
986
+ {
987
+ "required": [
988
+ "elementId"
989
+ ]
990
+ },
991
+ {
992
+ "required": [
993
+ "elementTestId"
994
+ ]
995
+ },
996
+ {
997
+ "required": [
998
+ "elementClass"
999
+ ]
1000
+ },
1001
+ {
1002
+ "required": [
1003
+ "elementAttribute"
1004
+ ]
1005
+ },
1006
+ {
1007
+ "required": [
1008
+ "elementAria"
1009
+ ]
713
1010
  }
714
1011
  ],
715
1012
  "properties": {
@@ -724,11 +1021,54 @@
724
1021
  },
725
1022
  "elementText": {
726
1023
  "type": "string",
727
- "description": "Display text of the element to click. If combined with `selector`, the element must match both the text and the selector."
1024
+ "description": "Display text of the element to click. If combined with other element finding fields, the element must match all specified criteria."
728
1025
  },
729
1026
  "selector": {
730
1027
  "type": "string",
731
- "description": "Selector of the element to click. If combined with `elementText`, the element must match both the text and the selector."
1028
+ "description": "Selector of the element to click. If combined with other element finding fields, the element must match all specified criteria."
1029
+ },
1030
+ "elementId": {
1031
+ "type": "string",
1032
+ "description": "ID attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
1033
+ },
1034
+ "elementTestId": {
1035
+ "type": "string",
1036
+ "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
1037
+ },
1038
+ "elementClass": {
1039
+ "anyOf": [
1040
+ {
1041
+ "type": "string"
1042
+ },
1043
+ {
1044
+ "type": "array",
1045
+ "items": {
1046
+ "type": "string"
1047
+ }
1048
+ }
1049
+ ],
1050
+ "description": "Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes."
1051
+ },
1052
+ "elementAttribute": {
1053
+ "type": "object",
1054
+ "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.",
1055
+ "additionalProperties": {
1056
+ "anyOf": [
1057
+ {
1058
+ "type": "string"
1059
+ },
1060
+ {
1061
+ "type": "number"
1062
+ },
1063
+ {
1064
+ "type": "boolean"
1065
+ }
1066
+ ]
1067
+ }
1068
+ },
1069
+ "elementAria": {
1070
+ "type": "string",
1071
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
732
1072
  }
733
1073
  }
734
1074
  }
@@ -783,7 +1123,7 @@
783
1123
  {
784
1124
  "type": "array",
785
1125
  "items": {
786
- "oneOf": [
1126
+ "anyOf": [
787
1127
  {
788
1128
  "type": "string"
789
1129
  }
@@ -806,7 +1146,7 @@
806
1146
  {
807
1147
  "type": "array",
808
1148
  "items": {
809
- "oneOf": [
1149
+ "anyOf": [
810
1150
  {
811
1151
  "type": "string"
812
1152
  }
@@ -823,6 +1163,53 @@
823
1163
  "selector": {
824
1164
  "type": "string",
825
1165
  "description": "Selector for the element to type into. If not specified, the typing occurs in the active element."
1166
+ },
1167
+ "elementText": {
1168
+ "type": "string",
1169
+ "description": "Display text of the element to type into. If combined with other element finding fields, the element must match all specified criteria."
1170
+ },
1171
+ "elementId": {
1172
+ "type": "string",
1173
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
1174
+ },
1175
+ "elementTestId": {
1176
+ "type": "string",
1177
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
1178
+ },
1179
+ "elementClass": {
1180
+ "anyOf": [
1181
+ {
1182
+ "type": "string"
1183
+ },
1184
+ {
1185
+ "type": "array",
1186
+ "items": {
1187
+ "type": "string"
1188
+ }
1189
+ }
1190
+ ],
1191
+ "description": "Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes."
1192
+ },
1193
+ "elementAttribute": {
1194
+ "type": "object",
1195
+ "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.",
1196
+ "additionalProperties": {
1197
+ "anyOf": [
1198
+ {
1199
+ "type": "string"
1200
+ },
1201
+ {
1202
+ "type": "number"
1203
+ },
1204
+ {
1205
+ "type": "boolean"
1206
+ }
1207
+ ]
1208
+ }
1209
+ },
1210
+ "elementAria": {
1211
+ "type": "string",
1212
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
826
1213
  }
827
1214
  },
828
1215
  "required": [
@@ -843,7 +1230,7 @@
843
1230
  {
844
1231
  "type": "array",
845
1232
  "items": {
846
- "oneOf": [
1233
+ "anyOf": [
847
1234
  {
848
1235
  "type": "string"
849
1236
  }
@@ -866,7 +1253,7 @@
866
1253
  {
867
1254
  "type": "array",
868
1255
  "items": {
869
- "oneOf": [
1256
+ "anyOf": [
870
1257
  {
871
1258
  "type": "string"
872
1259
  }
@@ -883,6 +1270,53 @@
883
1270
  "selector": {
884
1271
  "type": "string",
885
1272
  "description": "Selector for the element to type into. If not specified, the typing occurs in the active element."
1273
+ },
1274
+ "elementText": {
1275
+ "type": "string",
1276
+ "description": "Display text of the element to type into. If combined with other element finding fields, the element must match all specified criteria."
1277
+ },
1278
+ "elementId": {
1279
+ "type": "string",
1280
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
1281
+ },
1282
+ "elementTestId": {
1283
+ "type": "string",
1284
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
1285
+ },
1286
+ "elementClass": {
1287
+ "anyOf": [
1288
+ {
1289
+ "type": "string"
1290
+ },
1291
+ {
1292
+ "type": "array",
1293
+ "items": {
1294
+ "type": "string"
1295
+ }
1296
+ }
1297
+ ],
1298
+ "description": "Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes."
1299
+ },
1300
+ "elementAttribute": {
1301
+ "type": "object",
1302
+ "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.",
1303
+ "additionalProperties": {
1304
+ "anyOf": [
1305
+ {
1306
+ "type": "string"
1307
+ },
1308
+ {
1309
+ "type": "number"
1310
+ },
1311
+ {
1312
+ "type": "boolean"
1313
+ }
1314
+ ]
1315
+ }
1316
+ },
1317
+ "elementAria": {
1318
+ "type": "string",
1319
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
886
1320
  }
887
1321
  },
888
1322
  "required": [
@@ -923,7 +1357,12 @@
923
1357
  "type": "object",
924
1358
  "required": [
925
1359
  "selector",
926
- "elementText"
1360
+ "elementText",
1361
+ "elementId",
1362
+ "elementTestId",
1363
+ "elementClass",
1364
+ "elementAttribute",
1365
+ "elementAria"
927
1366
  ],
928
1367
  "title": "Find element and type"
929
1368
  }
@@ -938,7 +1377,7 @@
938
1377
  "string": {
939
1378
  "title": "Find element (simple)",
940
1379
  "type": "string",
941
- "description": "Display text or selector of the element to find."
1380
+ "description": "Identifier for the element to find. Can be a selector, element text, ARIA name, ID, or test ID."
942
1381
  },
943
1382
  "object": {
944
1383
  "title": "Find element (detailed)",
@@ -953,17 +1392,85 @@
953
1392
  "required": [
954
1393
  "elementText"
955
1394
  ]
1395
+ },
1396
+ {
1397
+ "required": [
1398
+ "elementId"
1399
+ ]
1400
+ },
1401
+ {
1402
+ "required": [
1403
+ "elementTestId"
1404
+ ]
1405
+ },
1406
+ {
1407
+ "required": [
1408
+ "elementClass"
1409
+ ]
1410
+ },
1411
+ {
1412
+ "required": [
1413
+ "elementAttribute"
1414
+ ]
1415
+ },
1416
+ {
1417
+ "required": [
1418
+ "elementAria"
1419
+ ]
956
1420
  }
957
1421
  ],
958
1422
  "additionalProperties": false,
959
1423
  "properties": {
960
1424
  "elementText": {
961
1425
  "type": "string",
962
- "description": "Display text of the element to find. If combined with `selector`, the element must match both the text and the selector."
1426
+ "description": "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
963
1427
  },
964
1428
  "selector": {
965
1429
  "type": "string",
966
- "description": "Selector of the element to find. If combined with `elementText`, the element must match both the text and the selector."
1430
+ "description": "Selector of the element to find. If combined with other element finding fields, the element must match all specified criteria."
1431
+ },
1432
+ "elementId": {
1433
+ "type": "string",
1434
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
1435
+ },
1436
+ "elementTestId": {
1437
+ "type": "string",
1438
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
1439
+ },
1440
+ "elementClass": {
1441
+ "anyOf": [
1442
+ {
1443
+ "type": "string"
1444
+ },
1445
+ {
1446
+ "type": "array",
1447
+ "items": {
1448
+ "type": "string"
1449
+ }
1450
+ }
1451
+ ],
1452
+ "description": "Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes."
1453
+ },
1454
+ "elementAttribute": {
1455
+ "type": "object",
1456
+ "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.",
1457
+ "additionalProperties": {
1458
+ "anyOf": [
1459
+ {
1460
+ "type": "string"
1461
+ },
1462
+ {
1463
+ "type": "number"
1464
+ },
1465
+ {
1466
+ "type": "boolean"
1467
+ }
1468
+ ]
1469
+ }
1470
+ },
1471
+ "elementAria": {
1472
+ "type": "string",
1473
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
967
1474
  },
968
1475
  "timeout": {
969
1476
  "type": "integer",
@@ -986,7 +1493,7 @@
986
1493
  {
987
1494
  "title": "Click element (simple)",
988
1495
  "type": "string",
989
- "description": "Display text or selector of the element to find."
1496
+ "description": "Identifier for the element to click. Can be a selector, element text, ARIA name, ID, or test ID."
990
1497
  },
991
1498
  {
992
1499
  "title": "Click element (detailed)",
@@ -1001,6 +1508,31 @@
1001
1508
  "required": [
1002
1509
  "elementText"
1003
1510
  ]
1511
+ },
1512
+ {
1513
+ "required": [
1514
+ "elementId"
1515
+ ]
1516
+ },
1517
+ {
1518
+ "required": [
1519
+ "elementTestId"
1520
+ ]
1521
+ },
1522
+ {
1523
+ "required": [
1524
+ "elementClass"
1525
+ ]
1526
+ },
1527
+ {
1528
+ "required": [
1529
+ "elementAttribute"
1530
+ ]
1531
+ },
1532
+ {
1533
+ "required": [
1534
+ "elementAria"
1535
+ ]
1004
1536
  }
1005
1537
  ],
1006
1538
  "properties": {
@@ -1015,11 +1547,54 @@
1015
1547
  },
1016
1548
  "elementText": {
1017
1549
  "type": "string",
1018
- "description": "Display text of the element to click. If combined with `selector`, the element must match both the text and the selector."
1550
+ "description": "Display text of the element to click. If combined with other element finding fields, the element must match all specified criteria."
1019
1551
  },
1020
1552
  "selector": {
1021
1553
  "type": "string",
1022
- "description": "Selector of the element to click. If combined with `elementText`, the element must match both the text and the selector."
1554
+ "description": "Selector of the element to click. If combined with other element finding fields, the element must match all specified criteria."
1555
+ },
1556
+ "elementId": {
1557
+ "type": "string",
1558
+ "description": "ID attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
1559
+ },
1560
+ "elementTestId": {
1561
+ "type": "string",
1562
+ "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
1563
+ },
1564
+ "elementClass": {
1565
+ "anyOf": [
1566
+ {
1567
+ "type": "string"
1568
+ },
1569
+ {
1570
+ "type": "array",
1571
+ "items": {
1572
+ "type": "string"
1573
+ }
1574
+ }
1575
+ ],
1576
+ "description": "Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes."
1577
+ },
1578
+ "elementAttribute": {
1579
+ "type": "object",
1580
+ "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.",
1581
+ "additionalProperties": {
1582
+ "anyOf": [
1583
+ {
1584
+ "type": "string"
1585
+ },
1586
+ {
1587
+ "type": "number"
1588
+ },
1589
+ {
1590
+ "type": "boolean"
1591
+ }
1592
+ ]
1593
+ }
1594
+ },
1595
+ "elementAria": {
1596
+ "type": "string",
1597
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
1023
1598
  }
1024
1599
  }
1025
1600
  },
@@ -1032,7 +1607,7 @@
1032
1607
  "string": {
1033
1608
  "title": "Click element (simple)",
1034
1609
  "type": "string",
1035
- "description": "Display text or selector of the element to find."
1610
+ "description": "Identifier for the element to click. Can be a selector, element text, ARIA name, ID, or test ID."
1036
1611
  },
1037
1612
  "button": {
1038
1613
  "description": "Kind of click to perform.",
@@ -1056,6 +1631,31 @@
1056
1631
  "required": [
1057
1632
  "elementText"
1058
1633
  ]
1634
+ },
1635
+ {
1636
+ "required": [
1637
+ "elementId"
1638
+ ]
1639
+ },
1640
+ {
1641
+ "required": [
1642
+ "elementTestId"
1643
+ ]
1644
+ },
1645
+ {
1646
+ "required": [
1647
+ "elementClass"
1648
+ ]
1649
+ },
1650
+ {
1651
+ "required": [
1652
+ "elementAttribute"
1653
+ ]
1654
+ },
1655
+ {
1656
+ "required": [
1657
+ "elementAria"
1658
+ ]
1059
1659
  }
1060
1660
  ],
1061
1661
  "properties": {
@@ -1070,11 +1670,54 @@
1070
1670
  },
1071
1671
  "elementText": {
1072
1672
  "type": "string",
1073
- "description": "Display text of the element to click. If combined with `selector`, the element must match both the text and the selector."
1673
+ "description": "Display text of the element to click. If combined with other element finding fields, the element must match all specified criteria."
1074
1674
  },
1075
1675
  "selector": {
1076
1676
  "type": "string",
1077
- "description": "Selector of the element to click. If combined with `elementText`, the element must match both the text and the selector."
1677
+ "description": "Selector of the element to click. If combined with other element finding fields, the element must match all specified criteria."
1678
+ },
1679
+ "elementId": {
1680
+ "type": "string",
1681
+ "description": "ID attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
1682
+ },
1683
+ "elementTestId": {
1684
+ "type": "string",
1685
+ "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
1686
+ },
1687
+ "elementClass": {
1688
+ "anyOf": [
1689
+ {
1690
+ "type": "string"
1691
+ },
1692
+ {
1693
+ "type": "array",
1694
+ "items": {
1695
+ "type": "string"
1696
+ }
1697
+ }
1698
+ ],
1699
+ "description": "Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes."
1700
+ },
1701
+ "elementAttribute": {
1702
+ "type": "object",
1703
+ "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.",
1704
+ "additionalProperties": {
1705
+ "anyOf": [
1706
+ {
1707
+ "type": "string"
1708
+ },
1709
+ {
1710
+ "type": "number"
1711
+ },
1712
+ {
1713
+ "type": "boolean"
1714
+ }
1715
+ ]
1716
+ }
1717
+ },
1718
+ "elementAria": {
1719
+ "type": "string",
1720
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
1078
1721
  }
1079
1722
  }
1080
1723
  }
@@ -1129,7 +1772,7 @@
1129
1772
  {
1130
1773
  "type": "array",
1131
1774
  "items": {
1132
- "oneOf": [
1775
+ "anyOf": [
1133
1776
  {
1134
1777
  "type": "string"
1135
1778
  }
@@ -1152,7 +1795,7 @@
1152
1795
  {
1153
1796
  "type": "array",
1154
1797
  "items": {
1155
- "oneOf": [
1798
+ "anyOf": [
1156
1799
  {
1157
1800
  "type": "string"
1158
1801
  }
@@ -1169,6 +1812,53 @@
1169
1812
  "selector": {
1170
1813
  "type": "string",
1171
1814
  "description": "Selector for the element to type into. If not specified, the typing occurs in the active element."
1815
+ },
1816
+ "elementText": {
1817
+ "type": "string",
1818
+ "description": "Display text of the element to type into. If combined with other element finding fields, the element must match all specified criteria."
1819
+ },
1820
+ "elementId": {
1821
+ "type": "string",
1822
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
1823
+ },
1824
+ "elementTestId": {
1825
+ "type": "string",
1826
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
1827
+ },
1828
+ "elementClass": {
1829
+ "anyOf": [
1830
+ {
1831
+ "type": "string"
1832
+ },
1833
+ {
1834
+ "type": "array",
1835
+ "items": {
1836
+ "type": "string"
1837
+ }
1838
+ }
1839
+ ],
1840
+ "description": "Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes."
1841
+ },
1842
+ "elementAttribute": {
1843
+ "type": "object",
1844
+ "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.",
1845
+ "additionalProperties": {
1846
+ "anyOf": [
1847
+ {
1848
+ "type": "string"
1849
+ },
1850
+ {
1851
+ "type": "number"
1852
+ },
1853
+ {
1854
+ "type": "boolean"
1855
+ }
1856
+ ]
1857
+ }
1858
+ },
1859
+ "elementAria": {
1860
+ "type": "string",
1861
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
1172
1862
  }
1173
1863
  },
1174
1864
  "required": [
@@ -1189,7 +1879,7 @@
1189
1879
  {
1190
1880
  "type": "array",
1191
1881
  "items": {
1192
- "oneOf": [
1882
+ "anyOf": [
1193
1883
  {
1194
1884
  "type": "string"
1195
1885
  }
@@ -1212,23 +1902,70 @@
1212
1902
  {
1213
1903
  "type": "array",
1214
1904
  "items": {
1215
- "oneOf": [
1216
- {
1217
- "type": "string"
1218
- }
1219
- ]
1905
+ "anyOf": [
1906
+ {
1907
+ "type": "string"
1908
+ }
1909
+ ]
1910
+ }
1911
+ }
1912
+ ]
1913
+ },
1914
+ "inputDelay": {
1915
+ "type": "number",
1916
+ "description": "Delay in milliseconds between each key press during a recording",
1917
+ "default": 100
1918
+ },
1919
+ "selector": {
1920
+ "type": "string",
1921
+ "description": "Selector for the element to type into. If not specified, the typing occurs in the active element."
1922
+ },
1923
+ "elementText": {
1924
+ "type": "string",
1925
+ "description": "Display text of the element to type into. If combined with other element finding fields, the element must match all specified criteria."
1926
+ },
1927
+ "elementId": {
1928
+ "type": "string",
1929
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
1930
+ },
1931
+ "elementTestId": {
1932
+ "type": "string",
1933
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
1934
+ },
1935
+ "elementClass": {
1936
+ "anyOf": [
1937
+ {
1938
+ "type": "string"
1939
+ },
1940
+ {
1941
+ "type": "array",
1942
+ "items": {
1943
+ "type": "string"
1220
1944
  }
1221
1945
  }
1222
- ]
1946
+ ],
1947
+ "description": "Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes."
1223
1948
  },
1224
- "inputDelay": {
1225
- "type": "number",
1226
- "description": "Delay in milliseconds between each key press during a recording",
1227
- "default": 100
1949
+ "elementAttribute": {
1950
+ "type": "object",
1951
+ "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.",
1952
+ "additionalProperties": {
1953
+ "anyOf": [
1954
+ {
1955
+ "type": "string"
1956
+ },
1957
+ {
1958
+ "type": "number"
1959
+ },
1960
+ {
1961
+ "type": "boolean"
1962
+ }
1963
+ ]
1964
+ }
1228
1965
  },
1229
- "selector": {
1966
+ "elementAria": {
1230
1967
  "type": "string",
1231
- "description": "Selector for the element to type into. If not specified, the typing occurs in the active element."
1968
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
1232
1969
  }
1233
1970
  },
1234
1971
  "required": [
@@ -1269,7 +2006,12 @@
1269
2006
  "type": "object",
1270
2007
  "required": [
1271
2008
  "selector",
1272
- "elementText"
2009
+ "elementText",
2010
+ "elementId",
2011
+ "elementTestId",
2012
+ "elementClass",
2013
+ "elementAttribute",
2014
+ "elementAria"
1273
2015
  ],
1274
2016
  "title": "Find element and type"
1275
2017
  }
@@ -1311,6 +2053,19 @@
1311
2053
  ],
1312
2054
  "inputDelay": 100
1313
2055
  }
2056
+ },
2057
+ {
2058
+ "elementId": "/^user-[0-9]+$/",
2059
+ "elementClass": [
2060
+ "admin",
2061
+ "/^level-[1-5]$/"
2062
+ ],
2063
+ "elementAttribute": {
2064
+ "data-active": true,
2065
+ "data-score": "/^[0-9]+$/"
2066
+ },
2067
+ "timeout": 8000,
2068
+ "moveTo": false
1314
2069
  }
1315
2070
  ]
1316
2071
  }
@@ -1780,7 +2535,7 @@
1780
2535
  "description": "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
1781
2536
  "type": "array",
1782
2537
  "items": {
1783
- "oneOf": [
2538
+ "anyOf": [
1784
2539
  {
1785
2540
  "type": "integer"
1786
2541
  }
@@ -2179,7 +2934,7 @@
2179
2934
  "description": "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
2180
2935
  "type": "array",
2181
2936
  "items": {
2182
- "oneOf": [
2937
+ "anyOf": [
2183
2938
  {
2184
2939
  "type": "integer"
2185
2940
  }
@@ -2640,7 +3395,7 @@
2640
3395
  "type": "array",
2641
3396
  "description": "Arguments for the command.",
2642
3397
  "items": {
2643
- "oneOf": [
3398
+ "anyOf": [
2644
3399
  {
2645
3400
  "type": "string"
2646
3401
  }
@@ -2657,7 +3412,7 @@
2657
3412
  "type": "array",
2658
3413
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
2659
3414
  "items": {
2660
- "oneOf": [
3415
+ "anyOf": [
2661
3416
  {
2662
3417
  "type": "integer"
2663
3418
  }
@@ -2730,7 +3485,7 @@
2730
3485
  "type": "array",
2731
3486
  "description": "Arguments for the command.",
2732
3487
  "items": {
2733
- "oneOf": [
3488
+ "anyOf": [
2734
3489
  {
2735
3490
  "type": "string"
2736
3491
  }
@@ -2747,7 +3502,7 @@
2747
3502
  "type": "array",
2748
3503
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
2749
3504
  "items": {
2750
- "oneOf": [
3505
+ "anyOf": [
2751
3506
  {
2752
3507
  "type": "integer"
2753
3508
  }
@@ -2948,7 +3703,7 @@
2948
3703
  "type": "array",
2949
3704
  "description": "Arguments for the command.",
2950
3705
  "items": {
2951
- "oneOf": [
3706
+ "anyOf": [
2952
3707
  {
2953
3708
  "type": "string"
2954
3709
  }
@@ -2965,7 +3720,7 @@
2965
3720
  "type": "array",
2966
3721
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
2967
3722
  "items": {
2968
- "oneOf": [
3723
+ "anyOf": [
2969
3724
  {
2970
3725
  "type": "integer"
2971
3726
  }
@@ -3039,7 +3794,7 @@
3039
3794
  "type": "array",
3040
3795
  "description": "Arguments for the command.",
3041
3796
  "items": {
3042
- "oneOf": [
3797
+ "anyOf": [
3043
3798
  {
3044
3799
  "type": "string"
3045
3800
  }
@@ -3056,7 +3811,7 @@
3056
3811
  "type": "array",
3057
3812
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
3058
3813
  "items": {
3059
- "oneOf": [
3814
+ "anyOf": [
3060
3815
  {
3061
3816
  "type": "integer"
3062
3817
  }
@@ -3227,7 +3982,7 @@
3227
3982
  {
3228
3983
  "type": "array",
3229
3984
  "items": {
3230
- "oneOf": [
3985
+ "anyOf": [
3231
3986
  {
3232
3987
  "type": "string"
3233
3988
  }
@@ -3250,7 +4005,7 @@
3250
4005
  {
3251
4006
  "type": "array",
3252
4007
  "items": {
3253
- "oneOf": [
4008
+ "anyOf": [
3254
4009
  {
3255
4010
  "type": "string"
3256
4011
  }
@@ -3267,6 +4022,53 @@
3267
4022
  "selector": {
3268
4023
  "type": "string",
3269
4024
  "description": "Selector for the element to type into. If not specified, the typing occurs in the active element."
4025
+ },
4026
+ "elementText": {
4027
+ "type": "string",
4028
+ "description": "Display text of the element to type into. If combined with other element finding fields, the element must match all specified criteria."
4029
+ },
4030
+ "elementId": {
4031
+ "type": "string",
4032
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
4033
+ },
4034
+ "elementTestId": {
4035
+ "type": "string",
4036
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
4037
+ },
4038
+ "elementClass": {
4039
+ "anyOf": [
4040
+ {
4041
+ "type": "string"
4042
+ },
4043
+ {
4044
+ "type": "array",
4045
+ "items": {
4046
+ "type": "string"
4047
+ }
4048
+ }
4049
+ ],
4050
+ "description": "Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes."
4051
+ },
4052
+ "elementAttribute": {
4053
+ "type": "object",
4054
+ "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.",
4055
+ "additionalProperties": {
4056
+ "anyOf": [
4057
+ {
4058
+ "type": "string"
4059
+ },
4060
+ {
4061
+ "type": "number"
4062
+ },
4063
+ {
4064
+ "type": "boolean"
4065
+ }
4066
+ ]
4067
+ }
4068
+ },
4069
+ "elementAria": {
4070
+ "type": "string",
4071
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
3270
4072
  }
3271
4073
  },
3272
4074
  "required": [
@@ -3287,7 +4089,7 @@
3287
4089
  {
3288
4090
  "type": "array",
3289
4091
  "items": {
3290
- "oneOf": [
4092
+ "anyOf": [
3291
4093
  {
3292
4094
  "type": "string"
3293
4095
  }
@@ -3310,7 +4112,7 @@
3310
4112
  {
3311
4113
  "type": "array",
3312
4114
  "items": {
3313
- "oneOf": [
4115
+ "anyOf": [
3314
4116
  {
3315
4117
  "type": "string"
3316
4118
  }
@@ -3327,6 +4129,53 @@
3327
4129
  "selector": {
3328
4130
  "type": "string",
3329
4131
  "description": "Selector for the element to type into. If not specified, the typing occurs in the active element."
4132
+ },
4133
+ "elementText": {
4134
+ "type": "string",
4135
+ "description": "Display text of the element to type into. If combined with other element finding fields, the element must match all specified criteria."
4136
+ },
4137
+ "elementId": {
4138
+ "type": "string",
4139
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
4140
+ },
4141
+ "elementTestId": {
4142
+ "type": "string",
4143
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
4144
+ },
4145
+ "elementClass": {
4146
+ "anyOf": [
4147
+ {
4148
+ "type": "string"
4149
+ },
4150
+ {
4151
+ "type": "array",
4152
+ "items": {
4153
+ "type": "string"
4154
+ }
4155
+ }
4156
+ ],
4157
+ "description": "Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes."
4158
+ },
4159
+ "elementAttribute": {
4160
+ "type": "object",
4161
+ "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.",
4162
+ "additionalProperties": {
4163
+ "anyOf": [
4164
+ {
4165
+ "type": "string"
4166
+ },
4167
+ {
4168
+ "type": "number"
4169
+ },
4170
+ {
4171
+ "type": "boolean"
4172
+ }
4173
+ ]
4174
+ }
4175
+ },
4176
+ "elementAria": {
4177
+ "type": "string",
4178
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
3330
4179
  }
3331
4180
  },
3332
4181
  "required": [
@@ -3506,6 +4355,31 @@
3506
4355
  "required": [
3507
4356
  "elementText"
3508
4357
  ]
4358
+ },
4359
+ {
4360
+ "required": [
4361
+ "elementId"
4362
+ ]
4363
+ },
4364
+ {
4365
+ "required": [
4366
+ "elementTestId"
4367
+ ]
4368
+ },
4369
+ {
4370
+ "required": [
4371
+ "elementClass"
4372
+ ]
4373
+ },
4374
+ {
4375
+ "required": [
4376
+ "elementAttribute"
4377
+ ]
4378
+ },
4379
+ {
4380
+ "required": [
4381
+ "elementAria"
4382
+ ]
3509
4383
  }
3510
4384
  ],
3511
4385
  "properties": {
@@ -3517,6 +4391,49 @@
3517
4391
  "type": "string",
3518
4392
  "description": "Selector of the element to screenshot."
3519
4393
  },
4394
+ "elementId": {
4395
+ "type": "string",
4396
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
4397
+ },
4398
+ "elementTestId": {
4399
+ "type": "string",
4400
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
4401
+ },
4402
+ "elementClass": {
4403
+ "anyOf": [
4404
+ {
4405
+ "type": "string"
4406
+ },
4407
+ {
4408
+ "type": "array",
4409
+ "items": {
4410
+ "type": "string"
4411
+ }
4412
+ }
4413
+ ],
4414
+ "description": "Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes."
4415
+ },
4416
+ "elementAttribute": {
4417
+ "type": "object",
4418
+ "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.",
4419
+ "additionalProperties": {
4420
+ "anyOf": [
4421
+ {
4422
+ "type": "string"
4423
+ },
4424
+ {
4425
+ "type": "number"
4426
+ },
4427
+ {
4428
+ "type": "boolean"
4429
+ }
4430
+ ]
4431
+ }
4432
+ },
4433
+ "elementAria": {
4434
+ "type": "string",
4435
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
4436
+ },
3520
4437
  "padding": {
3521
4438
  "anyOf": [
3522
4439
  {
@@ -3634,6 +4551,31 @@
3634
4551
  "required": [
3635
4552
  "elementText"
3636
4553
  ]
4554
+ },
4555
+ {
4556
+ "required": [
4557
+ "elementId"
4558
+ ]
4559
+ },
4560
+ {
4561
+ "required": [
4562
+ "elementTestId"
4563
+ ]
4564
+ },
4565
+ {
4566
+ "required": [
4567
+ "elementClass"
4568
+ ]
4569
+ },
4570
+ {
4571
+ "required": [
4572
+ "elementAttribute"
4573
+ ]
4574
+ },
4575
+ {
4576
+ "required": [
4577
+ "elementAria"
4578
+ ]
3637
4579
  }
3638
4580
  ],
3639
4581
  "properties": {
@@ -3645,6 +4587,49 @@
3645
4587
  "type": "string",
3646
4588
  "description": "Selector of the element to screenshot."
3647
4589
  },
4590
+ "elementId": {
4591
+ "type": "string",
4592
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
4593
+ },
4594
+ "elementTestId": {
4595
+ "type": "string",
4596
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
4597
+ },
4598
+ "elementClass": {
4599
+ "anyOf": [
4600
+ {
4601
+ "type": "string"
4602
+ },
4603
+ {
4604
+ "type": "array",
4605
+ "items": {
4606
+ "type": "string"
4607
+ }
4608
+ }
4609
+ ],
4610
+ "description": "Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes."
4611
+ },
4612
+ "elementAttribute": {
4613
+ "type": "object",
4614
+ "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.",
4615
+ "additionalProperties": {
4616
+ "anyOf": [
4617
+ {
4618
+ "type": "string"
4619
+ },
4620
+ {
4621
+ "type": "number"
4622
+ },
4623
+ {
4624
+ "type": "boolean"
4625
+ }
4626
+ ]
4627
+ }
4628
+ },
4629
+ "elementAria": {
4630
+ "type": "string",
4631
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
4632
+ },
3648
4633
  "padding": {
3649
4634
  "anyOf": [
3650
4635
  {
@@ -3701,6 +4686,31 @@
3701
4686
  "required": [
3702
4687
  "elementText"
3703
4688
  ]
4689
+ },
4690
+ {
4691
+ "required": [
4692
+ "elementId"
4693
+ ]
4694
+ },
4695
+ {
4696
+ "required": [
4697
+ "elementTestId"
4698
+ ]
4699
+ },
4700
+ {
4701
+ "required": [
4702
+ "elementClass"
4703
+ ]
4704
+ },
4705
+ {
4706
+ "required": [
4707
+ "elementAttribute"
4708
+ ]
4709
+ },
4710
+ {
4711
+ "required": [
4712
+ "elementAria"
4713
+ ]
3704
4714
  }
3705
4715
  ],
3706
4716
  "properties": {
@@ -3712,6 +4722,49 @@
3712
4722
  "type": "string",
3713
4723
  "description": "Selector of the element to screenshot."
3714
4724
  },
4725
+ "elementId": {
4726
+ "type": "string",
4727
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
4728
+ },
4729
+ "elementTestId": {
4730
+ "type": "string",
4731
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
4732
+ },
4733
+ "elementClass": {
4734
+ "anyOf": [
4735
+ {
4736
+ "type": "string"
4737
+ },
4738
+ {
4739
+ "type": "array",
4740
+ "items": {
4741
+ "type": "string"
4742
+ }
4743
+ }
4744
+ ],
4745
+ "description": "Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes."
4746
+ },
4747
+ "elementAttribute": {
4748
+ "type": "object",
4749
+ "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.",
4750
+ "additionalProperties": {
4751
+ "anyOf": [
4752
+ {
4753
+ "type": "string"
4754
+ },
4755
+ {
4756
+ "type": "number"
4757
+ },
4758
+ {
4759
+ "type": "boolean"
4760
+ }
4761
+ ]
4762
+ }
4763
+ },
4764
+ "elementAria": {
4765
+ "type": "string",
4766
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
4767
+ },
3715
4768
  "padding": {
3716
4769
  "anyOf": [
3717
4770
  {