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
@@ -33,7 +33,7 @@
33
33
  "type": "array",
34
34
  "description": "Contexts to run the test in. Overrides contexts defined at the config and spec levels.",
35
35
  "items": {
36
- "oneOf": [
36
+ "anyOf": [
37
37
  {
38
38
  "$schema": "http://json-schema.org/draft-07/schema#",
39
39
  "title": "context",
@@ -626,7 +626,7 @@
626
626
  "type": "array",
627
627
  "description": "Contexts to run the test in. Overrides contexts defined at the config and spec levels.",
628
628
  "items": {
629
- "oneOf": [
629
+ "anyOf": [
630
630
  {
631
631
  "$schema": "http://json-schema.org/draft-07/schema#",
632
632
  "title": "context",
@@ -1427,7 +1427,7 @@
1427
1427
  {
1428
1428
  "type": "array",
1429
1429
  "items": {
1430
- "oneOf": [
1430
+ "anyOf": [
1431
1431
  {
1432
1432
  "type": "integer"
1433
1433
  }
@@ -1490,7 +1490,7 @@
1490
1490
  {
1491
1491
  "type": "array",
1492
1492
  "items": {
1493
- "oneOf": [
1493
+ "anyOf": [
1494
1494
  {
1495
1495
  "type": "integer"
1496
1496
  }
@@ -1605,7 +1605,7 @@
1605
1605
  {
1606
1606
  "title": "Click element (simple)",
1607
1607
  "type": "string",
1608
- "description": "Display text or selector of the element to find."
1608
+ "description": "Identifier for the element to click. Can be a selector, element text, ARIA name, ID, or test ID."
1609
1609
  },
1610
1610
  {
1611
1611
  "title": "Click element (detailed)",
@@ -1620,6 +1620,31 @@
1620
1620
  "required": [
1621
1621
  "elementText"
1622
1622
  ]
1623
+ },
1624
+ {
1625
+ "required": [
1626
+ "elementId"
1627
+ ]
1628
+ },
1629
+ {
1630
+ "required": [
1631
+ "elementTestId"
1632
+ ]
1633
+ },
1634
+ {
1635
+ "required": [
1636
+ "elementClass"
1637
+ ]
1638
+ },
1639
+ {
1640
+ "required": [
1641
+ "elementAttribute"
1642
+ ]
1643
+ },
1644
+ {
1645
+ "required": [
1646
+ "elementAria"
1647
+ ]
1623
1648
  }
1624
1649
  ],
1625
1650
  "properties": {
@@ -1634,11 +1659,54 @@
1634
1659
  },
1635
1660
  "elementText": {
1636
1661
  "type": "string",
1637
- "description": "Display text of the element to click. If combined with `selector`, the element must match both the text and the selector."
1662
+ "description": "Display text of the element to click. If combined with other element finding fields, the element must match all specified criteria."
1638
1663
  },
1639
1664
  "selector": {
1640
1665
  "type": "string",
1641
- "description": "Selector of the element to click. If combined with `elementText`, the element must match both the text and the selector."
1666
+ "description": "Selector of the element to click. If combined with other element finding fields, the element must match all specified criteria."
1667
+ },
1668
+ "elementId": {
1669
+ "type": "string",
1670
+ "description": "ID attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
1671
+ },
1672
+ "elementTestId": {
1673
+ "type": "string",
1674
+ "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
1675
+ },
1676
+ "elementClass": {
1677
+ "anyOf": [
1678
+ {
1679
+ "type": "string"
1680
+ },
1681
+ {
1682
+ "type": "array",
1683
+ "items": {
1684
+ "type": "string"
1685
+ }
1686
+ }
1687
+ ],
1688
+ "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."
1689
+ },
1690
+ "elementAttribute": {
1691
+ "type": "object",
1692
+ "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.",
1693
+ "additionalProperties": {
1694
+ "anyOf": [
1695
+ {
1696
+ "type": "string"
1697
+ },
1698
+ {
1699
+ "type": "number"
1700
+ },
1701
+ {
1702
+ "type": "boolean"
1703
+ }
1704
+ ]
1705
+ }
1706
+ },
1707
+ "elementAria": {
1708
+ "type": "string",
1709
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
1642
1710
  }
1643
1711
  }
1644
1712
  },
@@ -1651,7 +1719,7 @@
1651
1719
  "string": {
1652
1720
  "title": "Click element (simple)",
1653
1721
  "type": "string",
1654
- "description": "Display text or selector of the element to find."
1722
+ "description": "Identifier for the element to click. Can be a selector, element text, ARIA name, ID, or test ID."
1655
1723
  },
1656
1724
  "button": {
1657
1725
  "description": "Kind of click to perform.",
@@ -1675,6 +1743,31 @@
1675
1743
  "required": [
1676
1744
  "elementText"
1677
1745
  ]
1746
+ },
1747
+ {
1748
+ "required": [
1749
+ "elementId"
1750
+ ]
1751
+ },
1752
+ {
1753
+ "required": [
1754
+ "elementTestId"
1755
+ ]
1756
+ },
1757
+ {
1758
+ "required": [
1759
+ "elementClass"
1760
+ ]
1761
+ },
1762
+ {
1763
+ "required": [
1764
+ "elementAttribute"
1765
+ ]
1766
+ },
1767
+ {
1768
+ "required": [
1769
+ "elementAria"
1770
+ ]
1678
1771
  }
1679
1772
  ],
1680
1773
  "properties": {
@@ -1689,11 +1782,54 @@
1689
1782
  },
1690
1783
  "elementText": {
1691
1784
  "type": "string",
1692
- "description": "Display text of the element to click. If combined with `selector`, the element must match both the text and the selector."
1785
+ "description": "Display text of the element to click. If combined with other element finding fields, the element must match all specified criteria."
1693
1786
  },
1694
1787
  "selector": {
1695
1788
  "type": "string",
1696
- "description": "Selector of the element to click. If combined with `elementText`, the element must match both the text and the selector."
1789
+ "description": "Selector of the element to click. If combined with other element finding fields, the element must match all specified criteria."
1790
+ },
1791
+ "elementId": {
1792
+ "type": "string",
1793
+ "description": "ID attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
1794
+ },
1795
+ "elementTestId": {
1796
+ "type": "string",
1797
+ "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
1798
+ },
1799
+ "elementClass": {
1800
+ "anyOf": [
1801
+ {
1802
+ "type": "string"
1803
+ },
1804
+ {
1805
+ "type": "array",
1806
+ "items": {
1807
+ "type": "string"
1808
+ }
1809
+ }
1810
+ ],
1811
+ "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."
1812
+ },
1813
+ "elementAttribute": {
1814
+ "type": "object",
1815
+ "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.",
1816
+ "additionalProperties": {
1817
+ "anyOf": [
1818
+ {
1819
+ "type": "string"
1820
+ },
1821
+ {
1822
+ "type": "number"
1823
+ },
1824
+ {
1825
+ "type": "boolean"
1826
+ }
1827
+ ]
1828
+ }
1829
+ },
1830
+ "elementAria": {
1831
+ "type": "string",
1832
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
1697
1833
  }
1698
1834
  }
1699
1835
  }
@@ -1792,7 +1928,7 @@
1792
1928
  {
1793
1929
  "title": "Find element (simple)",
1794
1930
  "type": "string",
1795
- "description": "Display text or selector of the element to find."
1931
+ "description": "Identifier for the element to find. Can be a selector, element text, ARIA name, ID, or test ID."
1796
1932
  },
1797
1933
  {
1798
1934
  "title": "Find element (detailed)",
@@ -1807,17 +1943,85 @@
1807
1943
  "required": [
1808
1944
  "elementText"
1809
1945
  ]
1946
+ },
1947
+ {
1948
+ "required": [
1949
+ "elementId"
1950
+ ]
1951
+ },
1952
+ {
1953
+ "required": [
1954
+ "elementTestId"
1955
+ ]
1956
+ },
1957
+ {
1958
+ "required": [
1959
+ "elementClass"
1960
+ ]
1961
+ },
1962
+ {
1963
+ "required": [
1964
+ "elementAttribute"
1965
+ ]
1966
+ },
1967
+ {
1968
+ "required": [
1969
+ "elementAria"
1970
+ ]
1810
1971
  }
1811
1972
  ],
1812
1973
  "additionalProperties": false,
1813
1974
  "properties": {
1814
1975
  "elementText": {
1815
1976
  "type": "string",
1816
- "description": "Display text of the element to find. If combined with `selector`, the element must match both the text and the selector."
1977
+ "description": "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
1817
1978
  },
1818
1979
  "selector": {
1819
1980
  "type": "string",
1820
- "description": "Selector of the element to find. If combined with `elementText`, the element must match both the text and the selector."
1981
+ "description": "Selector of the element to find. If combined with other element finding fields, the element must match all specified criteria."
1982
+ },
1983
+ "elementId": {
1984
+ "type": "string",
1985
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
1986
+ },
1987
+ "elementTestId": {
1988
+ "type": "string",
1989
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
1990
+ },
1991
+ "elementClass": {
1992
+ "anyOf": [
1993
+ {
1994
+ "type": "string"
1995
+ },
1996
+ {
1997
+ "type": "array",
1998
+ "items": {
1999
+ "type": "string"
2000
+ }
2001
+ }
2002
+ ],
2003
+ "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."
2004
+ },
2005
+ "elementAttribute": {
2006
+ "type": "object",
2007
+ "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.",
2008
+ "additionalProperties": {
2009
+ "anyOf": [
2010
+ {
2011
+ "type": "string"
2012
+ },
2013
+ {
2014
+ "type": "number"
2015
+ },
2016
+ {
2017
+ "type": "boolean"
2018
+ }
2019
+ ]
2020
+ }
2021
+ },
2022
+ "elementAria": {
2023
+ "type": "string",
2024
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
1821
2025
  },
1822
2026
  "timeout": {
1823
2027
  "type": "integer",
@@ -1840,7 +2044,7 @@
1840
2044
  {
1841
2045
  "title": "Click element (simple)",
1842
2046
  "type": "string",
1843
- "description": "Display text or selector of the element to find."
2047
+ "description": "Identifier for the element to click. Can be a selector, element text, ARIA name, ID, or test ID."
1844
2048
  },
1845
2049
  {
1846
2050
  "title": "Click element (detailed)",
@@ -1855,6 +2059,31 @@
1855
2059
  "required": [
1856
2060
  "elementText"
1857
2061
  ]
2062
+ },
2063
+ {
2064
+ "required": [
2065
+ "elementId"
2066
+ ]
2067
+ },
2068
+ {
2069
+ "required": [
2070
+ "elementTestId"
2071
+ ]
2072
+ },
2073
+ {
2074
+ "required": [
2075
+ "elementClass"
2076
+ ]
2077
+ },
2078
+ {
2079
+ "required": [
2080
+ "elementAttribute"
2081
+ ]
2082
+ },
2083
+ {
2084
+ "required": [
2085
+ "elementAria"
2086
+ ]
1858
2087
  }
1859
2088
  ],
1860
2089
  "properties": {
@@ -1869,11 +2098,54 @@
1869
2098
  },
1870
2099
  "elementText": {
1871
2100
  "type": "string",
1872
- "description": "Display text of the element to click. If combined with `selector`, the element must match both the text and the selector."
2101
+ "description": "Display text of the element to click. If combined with other element finding fields, the element must match all specified criteria."
1873
2102
  },
1874
2103
  "selector": {
1875
2104
  "type": "string",
1876
- "description": "Selector of the element to click. If combined with `elementText`, the element must match both the text and the selector."
2105
+ "description": "Selector of the element to click. If combined with other element finding fields, the element must match all specified criteria."
2106
+ },
2107
+ "elementId": {
2108
+ "type": "string",
2109
+ "description": "ID attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
2110
+ },
2111
+ "elementTestId": {
2112
+ "type": "string",
2113
+ "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
2114
+ },
2115
+ "elementClass": {
2116
+ "anyOf": [
2117
+ {
2118
+ "type": "string"
2119
+ },
2120
+ {
2121
+ "type": "array",
2122
+ "items": {
2123
+ "type": "string"
2124
+ }
2125
+ }
2126
+ ],
2127
+ "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."
2128
+ },
2129
+ "elementAttribute": {
2130
+ "type": "object",
2131
+ "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.",
2132
+ "additionalProperties": {
2133
+ "anyOf": [
2134
+ {
2135
+ "type": "string"
2136
+ },
2137
+ {
2138
+ "type": "number"
2139
+ },
2140
+ {
2141
+ "type": "boolean"
2142
+ }
2143
+ ]
2144
+ }
2145
+ },
2146
+ "elementAria": {
2147
+ "type": "string",
2148
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
1877
2149
  }
1878
2150
  }
1879
2151
  },
@@ -1886,7 +2158,7 @@
1886
2158
  "string": {
1887
2159
  "title": "Click element (simple)",
1888
2160
  "type": "string",
1889
- "description": "Display text or selector of the element to find."
2161
+ "description": "Identifier for the element to click. Can be a selector, element text, ARIA name, ID, or test ID."
1890
2162
  },
1891
2163
  "button": {
1892
2164
  "description": "Kind of click to perform.",
@@ -1910,6 +2182,31 @@
1910
2182
  "required": [
1911
2183
  "elementText"
1912
2184
  ]
2185
+ },
2186
+ {
2187
+ "required": [
2188
+ "elementId"
2189
+ ]
2190
+ },
2191
+ {
2192
+ "required": [
2193
+ "elementTestId"
2194
+ ]
2195
+ },
2196
+ {
2197
+ "required": [
2198
+ "elementClass"
2199
+ ]
2200
+ },
2201
+ {
2202
+ "required": [
2203
+ "elementAttribute"
2204
+ ]
2205
+ },
2206
+ {
2207
+ "required": [
2208
+ "elementAria"
2209
+ ]
1913
2210
  }
1914
2211
  ],
1915
2212
  "properties": {
@@ -1924,41 +2221,84 @@
1924
2221
  },
1925
2222
  "elementText": {
1926
2223
  "type": "string",
1927
- "description": "Display text of the element to click. If combined with `selector`, the element must match both the text and the selector."
2224
+ "description": "Display text of the element to click. If combined with other element finding fields, the element must match all specified criteria."
1928
2225
  },
1929
2226
  "selector": {
1930
2227
  "type": "string",
1931
- "description": "Selector of the element to click. If combined with `elementText`, the element must match both the text and the selector."
1932
- }
1933
- }
1934
- }
1935
- }
1936
- },
1937
- "examples": [
1938
- true,
1939
- "right",
1940
- {
1941
- "button": "left",
1942
- "elementText": "Element text"
1943
- },
1944
- {
1945
- "selector": "#elementToScreenshot",
1946
- "elementText": "Element text",
1947
- "button": "middle"
1948
- }
1949
- ]
1950
- },
1951
- {
1952
- "type": "object",
1953
- "properties": {
1954
- "button": {
1955
- "description": "Kind of click to perform.",
1956
- "type": "string",
1957
- "enum": [
1958
- "left",
1959
- "right",
1960
- "middle"
1961
- ]
2228
+ "description": "Selector of the element to click. If combined with other element finding fields, the element must match all specified criteria."
2229
+ },
2230
+ "elementId": {
2231
+ "type": "string",
2232
+ "description": "ID attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
2233
+ },
2234
+ "elementTestId": {
2235
+ "type": "string",
2236
+ "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
2237
+ },
2238
+ "elementClass": {
2239
+ "anyOf": [
2240
+ {
2241
+ "type": "string"
2242
+ },
2243
+ {
2244
+ "type": "array",
2245
+ "items": {
2246
+ "type": "string"
2247
+ }
2248
+ }
2249
+ ],
2250
+ "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."
2251
+ },
2252
+ "elementAttribute": {
2253
+ "type": "object",
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
+ "additionalProperties": {
2256
+ "anyOf": [
2257
+ {
2258
+ "type": "string"
2259
+ },
2260
+ {
2261
+ "type": "number"
2262
+ },
2263
+ {
2264
+ "type": "boolean"
2265
+ }
2266
+ ]
2267
+ }
2268
+ },
2269
+ "elementAria": {
2270
+ "type": "string",
2271
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
2272
+ }
2273
+ }
2274
+ }
2275
+ }
2276
+ },
2277
+ "examples": [
2278
+ true,
2279
+ "right",
2280
+ {
2281
+ "button": "left",
2282
+ "elementText": "Element text"
2283
+ },
2284
+ {
2285
+ "selector": "#elementToScreenshot",
2286
+ "elementText": "Element text",
2287
+ "button": "middle"
2288
+ }
2289
+ ]
2290
+ },
2291
+ {
2292
+ "type": "object",
2293
+ "properties": {
2294
+ "button": {
2295
+ "description": "Kind of click to perform.",
2296
+ "type": "string",
2297
+ "enum": [
2298
+ "left",
2299
+ "right",
2300
+ "middle"
2301
+ ]
1962
2302
  }
1963
2303
  },
1964
2304
  "title": "Find element and click"
@@ -1983,7 +2323,7 @@
1983
2323
  {
1984
2324
  "type": "array",
1985
2325
  "items": {
1986
- "oneOf": [
2326
+ "anyOf": [
1987
2327
  {
1988
2328
  "type": "string"
1989
2329
  }
@@ -2006,7 +2346,7 @@
2006
2346
  {
2007
2347
  "type": "array",
2008
2348
  "items": {
2009
- "oneOf": [
2349
+ "anyOf": [
2010
2350
  {
2011
2351
  "type": "string"
2012
2352
  }
@@ -2023,6 +2363,53 @@
2023
2363
  "selector": {
2024
2364
  "type": "string",
2025
2365
  "description": "Selector for the element to type into. If not specified, the typing occurs in the active element."
2366
+ },
2367
+ "elementText": {
2368
+ "type": "string",
2369
+ "description": "Display text of the element to type into. If combined with other element finding fields, the element must match all specified criteria."
2370
+ },
2371
+ "elementId": {
2372
+ "type": "string",
2373
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
2374
+ },
2375
+ "elementTestId": {
2376
+ "type": "string",
2377
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
2378
+ },
2379
+ "elementClass": {
2380
+ "anyOf": [
2381
+ {
2382
+ "type": "string"
2383
+ },
2384
+ {
2385
+ "type": "array",
2386
+ "items": {
2387
+ "type": "string"
2388
+ }
2389
+ }
2390
+ ],
2391
+ "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."
2392
+ },
2393
+ "elementAttribute": {
2394
+ "type": "object",
2395
+ "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.",
2396
+ "additionalProperties": {
2397
+ "anyOf": [
2398
+ {
2399
+ "type": "string"
2400
+ },
2401
+ {
2402
+ "type": "number"
2403
+ },
2404
+ {
2405
+ "type": "boolean"
2406
+ }
2407
+ ]
2408
+ }
2409
+ },
2410
+ "elementAria": {
2411
+ "type": "string",
2412
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
2026
2413
  }
2027
2414
  },
2028
2415
  "required": [
@@ -2043,7 +2430,7 @@
2043
2430
  {
2044
2431
  "type": "array",
2045
2432
  "items": {
2046
- "oneOf": [
2433
+ "anyOf": [
2047
2434
  {
2048
2435
  "type": "string"
2049
2436
  }
@@ -2066,7 +2453,7 @@
2066
2453
  {
2067
2454
  "type": "array",
2068
2455
  "items": {
2069
- "oneOf": [
2456
+ "anyOf": [
2070
2457
  {
2071
2458
  "type": "string"
2072
2459
  }
@@ -2083,6 +2470,53 @@
2083
2470
  "selector": {
2084
2471
  "type": "string",
2085
2472
  "description": "Selector for the element to type into. If not specified, the typing occurs in the active element."
2473
+ },
2474
+ "elementText": {
2475
+ "type": "string",
2476
+ "description": "Display text of the element to type into. If combined with other element finding fields, the element must match all specified criteria."
2477
+ },
2478
+ "elementId": {
2479
+ "type": "string",
2480
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
2481
+ },
2482
+ "elementTestId": {
2483
+ "type": "string",
2484
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
2485
+ },
2486
+ "elementClass": {
2487
+ "anyOf": [
2488
+ {
2489
+ "type": "string"
2490
+ },
2491
+ {
2492
+ "type": "array",
2493
+ "items": {
2494
+ "type": "string"
2495
+ }
2496
+ }
2497
+ ],
2498
+ "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."
2499
+ },
2500
+ "elementAttribute": {
2501
+ "type": "object",
2502
+ "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.",
2503
+ "additionalProperties": {
2504
+ "anyOf": [
2505
+ {
2506
+ "type": "string"
2507
+ },
2508
+ {
2509
+ "type": "number"
2510
+ },
2511
+ {
2512
+ "type": "boolean"
2513
+ }
2514
+ ]
2515
+ }
2516
+ },
2517
+ "elementAria": {
2518
+ "type": "string",
2519
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
2086
2520
  }
2087
2521
  },
2088
2522
  "required": [
@@ -2123,7 +2557,12 @@
2123
2557
  "type": "object",
2124
2558
  "required": [
2125
2559
  "selector",
2126
- "elementText"
2560
+ "elementText",
2561
+ "elementId",
2562
+ "elementTestId",
2563
+ "elementClass",
2564
+ "elementAttribute",
2565
+ "elementAria"
2127
2566
  ],
2128
2567
  "title": "Find element and type"
2129
2568
  }
@@ -2138,7 +2577,7 @@
2138
2577
  "string": {
2139
2578
  "title": "Find element (simple)",
2140
2579
  "type": "string",
2141
- "description": "Display text or selector of the element to find."
2580
+ "description": "Identifier for the element to find. Can be a selector, element text, ARIA name, ID, or test ID."
2142
2581
  },
2143
2582
  "object": {
2144
2583
  "title": "Find element (detailed)",
@@ -2153,17 +2592,85 @@
2153
2592
  "required": [
2154
2593
  "elementText"
2155
2594
  ]
2595
+ },
2596
+ {
2597
+ "required": [
2598
+ "elementId"
2599
+ ]
2600
+ },
2601
+ {
2602
+ "required": [
2603
+ "elementTestId"
2604
+ ]
2605
+ },
2606
+ {
2607
+ "required": [
2608
+ "elementClass"
2609
+ ]
2610
+ },
2611
+ {
2612
+ "required": [
2613
+ "elementAttribute"
2614
+ ]
2615
+ },
2616
+ {
2617
+ "required": [
2618
+ "elementAria"
2619
+ ]
2156
2620
  }
2157
2621
  ],
2158
2622
  "additionalProperties": false,
2159
2623
  "properties": {
2160
2624
  "elementText": {
2161
2625
  "type": "string",
2162
- "description": "Display text of the element to find. If combined with `selector`, the element must match both the text and the selector."
2626
+ "description": "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
2163
2627
  },
2164
2628
  "selector": {
2165
2629
  "type": "string",
2166
- "description": "Selector of the element to find. If combined with `elementText`, the element must match both the text and the selector."
2630
+ "description": "Selector of the element to find. If combined with other element finding fields, the element must match all specified criteria."
2631
+ },
2632
+ "elementId": {
2633
+ "type": "string",
2634
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
2635
+ },
2636
+ "elementTestId": {
2637
+ "type": "string",
2638
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
2639
+ },
2640
+ "elementClass": {
2641
+ "anyOf": [
2642
+ {
2643
+ "type": "string"
2644
+ },
2645
+ {
2646
+ "type": "array",
2647
+ "items": {
2648
+ "type": "string"
2649
+ }
2650
+ }
2651
+ ],
2652
+ "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."
2653
+ },
2654
+ "elementAttribute": {
2655
+ "type": "object",
2656
+ "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.",
2657
+ "additionalProperties": {
2658
+ "anyOf": [
2659
+ {
2660
+ "type": "string"
2661
+ },
2662
+ {
2663
+ "type": "number"
2664
+ },
2665
+ {
2666
+ "type": "boolean"
2667
+ }
2668
+ ]
2669
+ }
2670
+ },
2671
+ "elementAria": {
2672
+ "type": "string",
2673
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
2167
2674
  },
2168
2675
  "timeout": {
2169
2676
  "type": "integer",
@@ -2186,7 +2693,7 @@
2186
2693
  {
2187
2694
  "title": "Click element (simple)",
2188
2695
  "type": "string",
2189
- "description": "Display text or selector of the element to find."
2696
+ "description": "Identifier for the element to click. Can be a selector, element text, ARIA name, ID, or test ID."
2190
2697
  },
2191
2698
  {
2192
2699
  "title": "Click element (detailed)",
@@ -2201,6 +2708,31 @@
2201
2708
  "required": [
2202
2709
  "elementText"
2203
2710
  ]
2711
+ },
2712
+ {
2713
+ "required": [
2714
+ "elementId"
2715
+ ]
2716
+ },
2717
+ {
2718
+ "required": [
2719
+ "elementTestId"
2720
+ ]
2721
+ },
2722
+ {
2723
+ "required": [
2724
+ "elementClass"
2725
+ ]
2726
+ },
2727
+ {
2728
+ "required": [
2729
+ "elementAttribute"
2730
+ ]
2731
+ },
2732
+ {
2733
+ "required": [
2734
+ "elementAria"
2735
+ ]
2204
2736
  }
2205
2737
  ],
2206
2738
  "properties": {
@@ -2215,11 +2747,54 @@
2215
2747
  },
2216
2748
  "elementText": {
2217
2749
  "type": "string",
2218
- "description": "Display text of the element to click. If combined with `selector`, the element must match both the text and the selector."
2750
+ "description": "Display text of the element to click. If combined with other element finding fields, the element must match all specified criteria."
2219
2751
  },
2220
2752
  "selector": {
2221
2753
  "type": "string",
2222
- "description": "Selector of the element to click. If combined with `elementText`, the element must match both the text and the selector."
2754
+ "description": "Selector of the element to click. If combined with other element finding fields, the element must match all specified criteria."
2755
+ },
2756
+ "elementId": {
2757
+ "type": "string",
2758
+ "description": "ID attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
2759
+ },
2760
+ "elementTestId": {
2761
+ "type": "string",
2762
+ "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
2763
+ },
2764
+ "elementClass": {
2765
+ "anyOf": [
2766
+ {
2767
+ "type": "string"
2768
+ },
2769
+ {
2770
+ "type": "array",
2771
+ "items": {
2772
+ "type": "string"
2773
+ }
2774
+ }
2775
+ ],
2776
+ "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."
2777
+ },
2778
+ "elementAttribute": {
2779
+ "type": "object",
2780
+ "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.",
2781
+ "additionalProperties": {
2782
+ "anyOf": [
2783
+ {
2784
+ "type": "string"
2785
+ },
2786
+ {
2787
+ "type": "number"
2788
+ },
2789
+ {
2790
+ "type": "boolean"
2791
+ }
2792
+ ]
2793
+ }
2794
+ },
2795
+ "elementAria": {
2796
+ "type": "string",
2797
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
2223
2798
  }
2224
2799
  }
2225
2800
  },
@@ -2232,7 +2807,7 @@
2232
2807
  "string": {
2233
2808
  "title": "Click element (simple)",
2234
2809
  "type": "string",
2235
- "description": "Display text or selector of the element to find."
2810
+ "description": "Identifier for the element to click. Can be a selector, element text, ARIA name, ID, or test ID."
2236
2811
  },
2237
2812
  "button": {
2238
2813
  "description": "Kind of click to perform.",
@@ -2256,6 +2831,31 @@
2256
2831
  "required": [
2257
2832
  "elementText"
2258
2833
  ]
2834
+ },
2835
+ {
2836
+ "required": [
2837
+ "elementId"
2838
+ ]
2839
+ },
2840
+ {
2841
+ "required": [
2842
+ "elementTestId"
2843
+ ]
2844
+ },
2845
+ {
2846
+ "required": [
2847
+ "elementClass"
2848
+ ]
2849
+ },
2850
+ {
2851
+ "required": [
2852
+ "elementAttribute"
2853
+ ]
2854
+ },
2855
+ {
2856
+ "required": [
2857
+ "elementAria"
2858
+ ]
2259
2859
  }
2260
2860
  ],
2261
2861
  "properties": {
@@ -2270,11 +2870,54 @@
2270
2870
  },
2271
2871
  "elementText": {
2272
2872
  "type": "string",
2273
- "description": "Display text of the element to click. If combined with `selector`, the element must match both the text and the selector."
2873
+ "description": "Display text of the element to click. If combined with other element finding fields, the element must match all specified criteria."
2274
2874
  },
2275
2875
  "selector": {
2276
2876
  "type": "string",
2277
- "description": "Selector of the element to click. If combined with `elementText`, the element must match both the text and the selector."
2877
+ "description": "Selector of the element to click. If combined with other element finding fields, the element must match all specified criteria."
2878
+ },
2879
+ "elementId": {
2880
+ "type": "string",
2881
+ "description": "ID attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
2882
+ },
2883
+ "elementTestId": {
2884
+ "type": "string",
2885
+ "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
2886
+ },
2887
+ "elementClass": {
2888
+ "anyOf": [
2889
+ {
2890
+ "type": "string"
2891
+ },
2892
+ {
2893
+ "type": "array",
2894
+ "items": {
2895
+ "type": "string"
2896
+ }
2897
+ }
2898
+ ],
2899
+ "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."
2900
+ },
2901
+ "elementAttribute": {
2902
+ "type": "object",
2903
+ "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.",
2904
+ "additionalProperties": {
2905
+ "anyOf": [
2906
+ {
2907
+ "type": "string"
2908
+ },
2909
+ {
2910
+ "type": "number"
2911
+ },
2912
+ {
2913
+ "type": "boolean"
2914
+ }
2915
+ ]
2916
+ }
2917
+ },
2918
+ "elementAria": {
2919
+ "type": "string",
2920
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
2278
2921
  }
2279
2922
  }
2280
2923
  }
@@ -2329,7 +2972,7 @@
2329
2972
  {
2330
2973
  "type": "array",
2331
2974
  "items": {
2332
- "oneOf": [
2975
+ "anyOf": [
2333
2976
  {
2334
2977
  "type": "string"
2335
2978
  }
@@ -2352,7 +2995,7 @@
2352
2995
  {
2353
2996
  "type": "array",
2354
2997
  "items": {
2355
- "oneOf": [
2998
+ "anyOf": [
2356
2999
  {
2357
3000
  "type": "string"
2358
3001
  }
@@ -2369,6 +3012,53 @@
2369
3012
  "selector": {
2370
3013
  "type": "string",
2371
3014
  "description": "Selector for the element to type into. If not specified, the typing occurs in the active element."
3015
+ },
3016
+ "elementText": {
3017
+ "type": "string",
3018
+ "description": "Display text of the element to type into. If combined with other element finding fields, the element must match all specified criteria."
3019
+ },
3020
+ "elementId": {
3021
+ "type": "string",
3022
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
3023
+ },
3024
+ "elementTestId": {
3025
+ "type": "string",
3026
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
3027
+ },
3028
+ "elementClass": {
3029
+ "anyOf": [
3030
+ {
3031
+ "type": "string"
3032
+ },
3033
+ {
3034
+ "type": "array",
3035
+ "items": {
3036
+ "type": "string"
3037
+ }
3038
+ }
3039
+ ],
3040
+ "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."
3041
+ },
3042
+ "elementAttribute": {
3043
+ "type": "object",
3044
+ "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.",
3045
+ "additionalProperties": {
3046
+ "anyOf": [
3047
+ {
3048
+ "type": "string"
3049
+ },
3050
+ {
3051
+ "type": "number"
3052
+ },
3053
+ {
3054
+ "type": "boolean"
3055
+ }
3056
+ ]
3057
+ }
3058
+ },
3059
+ "elementAria": {
3060
+ "type": "string",
3061
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
2372
3062
  }
2373
3063
  },
2374
3064
  "required": [
@@ -2389,7 +3079,7 @@
2389
3079
  {
2390
3080
  "type": "array",
2391
3081
  "items": {
2392
- "oneOf": [
3082
+ "anyOf": [
2393
3083
  {
2394
3084
  "type": "string"
2395
3085
  }
@@ -2412,7 +3102,7 @@
2412
3102
  {
2413
3103
  "type": "array",
2414
3104
  "items": {
2415
- "oneOf": [
3105
+ "anyOf": [
2416
3106
  {
2417
3107
  "type": "string"
2418
3108
  }
@@ -2429,6 +3119,53 @@
2429
3119
  "selector": {
2430
3120
  "type": "string",
2431
3121
  "description": "Selector for the element to type into. If not specified, the typing occurs in the active element."
3122
+ },
3123
+ "elementText": {
3124
+ "type": "string",
3125
+ "description": "Display text of the element to type into. If combined with other element finding fields, the element must match all specified criteria."
3126
+ },
3127
+ "elementId": {
3128
+ "type": "string",
3129
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
3130
+ },
3131
+ "elementTestId": {
3132
+ "type": "string",
3133
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
3134
+ },
3135
+ "elementClass": {
3136
+ "anyOf": [
3137
+ {
3138
+ "type": "string"
3139
+ },
3140
+ {
3141
+ "type": "array",
3142
+ "items": {
3143
+ "type": "string"
3144
+ }
3145
+ }
3146
+ ],
3147
+ "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."
3148
+ },
3149
+ "elementAttribute": {
3150
+ "type": "object",
3151
+ "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.",
3152
+ "additionalProperties": {
3153
+ "anyOf": [
3154
+ {
3155
+ "type": "string"
3156
+ },
3157
+ {
3158
+ "type": "number"
3159
+ },
3160
+ {
3161
+ "type": "boolean"
3162
+ }
3163
+ ]
3164
+ }
3165
+ },
3166
+ "elementAria": {
3167
+ "type": "string",
3168
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
2432
3169
  }
2433
3170
  },
2434
3171
  "required": [
@@ -2469,7 +3206,12 @@
2469
3206
  "type": "object",
2470
3207
  "required": [
2471
3208
  "selector",
2472
- "elementText"
3209
+ "elementText",
3210
+ "elementId",
3211
+ "elementTestId",
3212
+ "elementClass",
3213
+ "elementAttribute",
3214
+ "elementAria"
2473
3215
  ],
2474
3216
  "title": "Find element and type"
2475
3217
  }
@@ -2511,6 +3253,19 @@
2511
3253
  ],
2512
3254
  "inputDelay": 100
2513
3255
  }
3256
+ },
3257
+ {
3258
+ "elementId": "/^user-[0-9]+$/",
3259
+ "elementClass": [
3260
+ "admin",
3261
+ "/^level-[1-5]$/"
3262
+ ],
3263
+ "elementAttribute": {
3264
+ "data-active": true,
3265
+ "data-score": "/^[0-9]+$/"
3266
+ },
3267
+ "timeout": 8000,
3268
+ "moveTo": false
2514
3269
  }
2515
3270
  ]
2516
3271
  }
@@ -2980,7 +3735,7 @@
2980
3735
  "description": "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
2981
3736
  "type": "array",
2982
3737
  "items": {
2983
- "oneOf": [
3738
+ "anyOf": [
2984
3739
  {
2985
3740
  "type": "integer"
2986
3741
  }
@@ -3379,7 +4134,7 @@
3379
4134
  "description": "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
3380
4135
  "type": "array",
3381
4136
  "items": {
3382
- "oneOf": [
4137
+ "anyOf": [
3383
4138
  {
3384
4139
  "type": "integer"
3385
4140
  }
@@ -3840,7 +4595,7 @@
3840
4595
  "type": "array",
3841
4596
  "description": "Arguments for the command.",
3842
4597
  "items": {
3843
- "oneOf": [
4598
+ "anyOf": [
3844
4599
  {
3845
4600
  "type": "string"
3846
4601
  }
@@ -3857,7 +4612,7 @@
3857
4612
  "type": "array",
3858
4613
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
3859
4614
  "items": {
3860
- "oneOf": [
4615
+ "anyOf": [
3861
4616
  {
3862
4617
  "type": "integer"
3863
4618
  }
@@ -3930,7 +4685,7 @@
3930
4685
  "type": "array",
3931
4686
  "description": "Arguments for the command.",
3932
4687
  "items": {
3933
- "oneOf": [
4688
+ "anyOf": [
3934
4689
  {
3935
4690
  "type": "string"
3936
4691
  }
@@ -3947,7 +4702,7 @@
3947
4702
  "type": "array",
3948
4703
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
3949
4704
  "items": {
3950
- "oneOf": [
4705
+ "anyOf": [
3951
4706
  {
3952
4707
  "type": "integer"
3953
4708
  }
@@ -4148,7 +4903,7 @@
4148
4903
  "type": "array",
4149
4904
  "description": "Arguments for the command.",
4150
4905
  "items": {
4151
- "oneOf": [
4906
+ "anyOf": [
4152
4907
  {
4153
4908
  "type": "string"
4154
4909
  }
@@ -4165,7 +4920,7 @@
4165
4920
  "type": "array",
4166
4921
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
4167
4922
  "items": {
4168
- "oneOf": [
4923
+ "anyOf": [
4169
4924
  {
4170
4925
  "type": "integer"
4171
4926
  }
@@ -4239,7 +4994,7 @@
4239
4994
  "type": "array",
4240
4995
  "description": "Arguments for the command.",
4241
4996
  "items": {
4242
- "oneOf": [
4997
+ "anyOf": [
4243
4998
  {
4244
4999
  "type": "string"
4245
5000
  }
@@ -4256,7 +5011,7 @@
4256
5011
  "type": "array",
4257
5012
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
4258
5013
  "items": {
4259
- "oneOf": [
5014
+ "anyOf": [
4260
5015
  {
4261
5016
  "type": "integer"
4262
5017
  }
@@ -4427,7 +5182,7 @@
4427
5182
  {
4428
5183
  "type": "array",
4429
5184
  "items": {
4430
- "oneOf": [
5185
+ "anyOf": [
4431
5186
  {
4432
5187
  "type": "string"
4433
5188
  }
@@ -4450,23 +5205,70 @@
4450
5205
  {
4451
5206
  "type": "array",
4452
5207
  "items": {
4453
- "oneOf": [
5208
+ "anyOf": [
4454
5209
  {
4455
5210
  "type": "string"
4456
5211
  }
4457
5212
  ]
4458
5213
  }
4459
5214
  }
4460
- ]
5215
+ ]
5216
+ },
5217
+ "inputDelay": {
5218
+ "type": "number",
5219
+ "description": "Delay in milliseconds between each key press during a recording",
5220
+ "default": 100
5221
+ },
5222
+ "selector": {
5223
+ "type": "string",
5224
+ "description": "Selector for the element to type into. If not specified, the typing occurs in the active element."
5225
+ },
5226
+ "elementText": {
5227
+ "type": "string",
5228
+ "description": "Display text of the element to type into. If combined with other element finding fields, the element must match all specified criteria."
5229
+ },
5230
+ "elementId": {
5231
+ "type": "string",
5232
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
5233
+ },
5234
+ "elementTestId": {
5235
+ "type": "string",
5236
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
5237
+ },
5238
+ "elementClass": {
5239
+ "anyOf": [
5240
+ {
5241
+ "type": "string"
5242
+ },
5243
+ {
5244
+ "type": "array",
5245
+ "items": {
5246
+ "type": "string"
5247
+ }
5248
+ }
5249
+ ],
5250
+ "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."
4461
5251
  },
4462
- "inputDelay": {
4463
- "type": "number",
4464
- "description": "Delay in milliseconds between each key press during a recording",
4465
- "default": 100
5252
+ "elementAttribute": {
5253
+ "type": "object",
5254
+ "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.",
5255
+ "additionalProperties": {
5256
+ "anyOf": [
5257
+ {
5258
+ "type": "string"
5259
+ },
5260
+ {
5261
+ "type": "number"
5262
+ },
5263
+ {
5264
+ "type": "boolean"
5265
+ }
5266
+ ]
5267
+ }
4466
5268
  },
4467
- "selector": {
5269
+ "elementAria": {
4468
5270
  "type": "string",
4469
- "description": "Selector for the element to type into. If not specified, the typing occurs in the active element."
5271
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
4470
5272
  }
4471
5273
  },
4472
5274
  "required": [
@@ -4487,7 +5289,7 @@
4487
5289
  {
4488
5290
  "type": "array",
4489
5291
  "items": {
4490
- "oneOf": [
5292
+ "anyOf": [
4491
5293
  {
4492
5294
  "type": "string"
4493
5295
  }
@@ -4510,7 +5312,7 @@
4510
5312
  {
4511
5313
  "type": "array",
4512
5314
  "items": {
4513
- "oneOf": [
5315
+ "anyOf": [
4514
5316
  {
4515
5317
  "type": "string"
4516
5318
  }
@@ -4527,6 +5329,53 @@
4527
5329
  "selector": {
4528
5330
  "type": "string",
4529
5331
  "description": "Selector for the element to type into. If not specified, the typing occurs in the active element."
5332
+ },
5333
+ "elementText": {
5334
+ "type": "string",
5335
+ "description": "Display text of the element to type into. If combined with other element finding fields, the element must match all specified criteria."
5336
+ },
5337
+ "elementId": {
5338
+ "type": "string",
5339
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
5340
+ },
5341
+ "elementTestId": {
5342
+ "type": "string",
5343
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
5344
+ },
5345
+ "elementClass": {
5346
+ "anyOf": [
5347
+ {
5348
+ "type": "string"
5349
+ },
5350
+ {
5351
+ "type": "array",
5352
+ "items": {
5353
+ "type": "string"
5354
+ }
5355
+ }
5356
+ ],
5357
+ "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."
5358
+ },
5359
+ "elementAttribute": {
5360
+ "type": "object",
5361
+ "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.",
5362
+ "additionalProperties": {
5363
+ "anyOf": [
5364
+ {
5365
+ "type": "string"
5366
+ },
5367
+ {
5368
+ "type": "number"
5369
+ },
5370
+ {
5371
+ "type": "boolean"
5372
+ }
5373
+ ]
5374
+ }
5375
+ },
5376
+ "elementAria": {
5377
+ "type": "string",
5378
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
4530
5379
  }
4531
5380
  },
4532
5381
  "required": [
@@ -4706,6 +5555,31 @@
4706
5555
  "required": [
4707
5556
  "elementText"
4708
5557
  ]
5558
+ },
5559
+ {
5560
+ "required": [
5561
+ "elementId"
5562
+ ]
5563
+ },
5564
+ {
5565
+ "required": [
5566
+ "elementTestId"
5567
+ ]
5568
+ },
5569
+ {
5570
+ "required": [
5571
+ "elementClass"
5572
+ ]
5573
+ },
5574
+ {
5575
+ "required": [
5576
+ "elementAttribute"
5577
+ ]
5578
+ },
5579
+ {
5580
+ "required": [
5581
+ "elementAria"
5582
+ ]
4709
5583
  }
4710
5584
  ],
4711
5585
  "properties": {
@@ -4717,6 +5591,49 @@
4717
5591
  "type": "string",
4718
5592
  "description": "Selector of the element to screenshot."
4719
5593
  },
5594
+ "elementId": {
5595
+ "type": "string",
5596
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
5597
+ },
5598
+ "elementTestId": {
5599
+ "type": "string",
5600
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
5601
+ },
5602
+ "elementClass": {
5603
+ "anyOf": [
5604
+ {
5605
+ "type": "string"
5606
+ },
5607
+ {
5608
+ "type": "array",
5609
+ "items": {
5610
+ "type": "string"
5611
+ }
5612
+ }
5613
+ ],
5614
+ "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."
5615
+ },
5616
+ "elementAttribute": {
5617
+ "type": "object",
5618
+ "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.",
5619
+ "additionalProperties": {
5620
+ "anyOf": [
5621
+ {
5622
+ "type": "string"
5623
+ },
5624
+ {
5625
+ "type": "number"
5626
+ },
5627
+ {
5628
+ "type": "boolean"
5629
+ }
5630
+ ]
5631
+ }
5632
+ },
5633
+ "elementAria": {
5634
+ "type": "string",
5635
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
5636
+ },
4720
5637
  "padding": {
4721
5638
  "anyOf": [
4722
5639
  {
@@ -4834,6 +5751,31 @@
4834
5751
  "required": [
4835
5752
  "elementText"
4836
5753
  ]
5754
+ },
5755
+ {
5756
+ "required": [
5757
+ "elementId"
5758
+ ]
5759
+ },
5760
+ {
5761
+ "required": [
5762
+ "elementTestId"
5763
+ ]
5764
+ },
5765
+ {
5766
+ "required": [
5767
+ "elementClass"
5768
+ ]
5769
+ },
5770
+ {
5771
+ "required": [
5772
+ "elementAttribute"
5773
+ ]
5774
+ },
5775
+ {
5776
+ "required": [
5777
+ "elementAria"
5778
+ ]
4837
5779
  }
4838
5780
  ],
4839
5781
  "properties": {
@@ -4845,6 +5787,49 @@
4845
5787
  "type": "string",
4846
5788
  "description": "Selector of the element to screenshot."
4847
5789
  },
5790
+ "elementId": {
5791
+ "type": "string",
5792
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
5793
+ },
5794
+ "elementTestId": {
5795
+ "type": "string",
5796
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
5797
+ },
5798
+ "elementClass": {
5799
+ "anyOf": [
5800
+ {
5801
+ "type": "string"
5802
+ },
5803
+ {
5804
+ "type": "array",
5805
+ "items": {
5806
+ "type": "string"
5807
+ }
5808
+ }
5809
+ ],
5810
+ "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."
5811
+ },
5812
+ "elementAttribute": {
5813
+ "type": "object",
5814
+ "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.",
5815
+ "additionalProperties": {
5816
+ "anyOf": [
5817
+ {
5818
+ "type": "string"
5819
+ },
5820
+ {
5821
+ "type": "number"
5822
+ },
5823
+ {
5824
+ "type": "boolean"
5825
+ }
5826
+ ]
5827
+ }
5828
+ },
5829
+ "elementAria": {
5830
+ "type": "string",
5831
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
5832
+ },
4848
5833
  "padding": {
4849
5834
  "anyOf": [
4850
5835
  {
@@ -4901,6 +5886,31 @@
4901
5886
  "required": [
4902
5887
  "elementText"
4903
5888
  ]
5889
+ },
5890
+ {
5891
+ "required": [
5892
+ "elementId"
5893
+ ]
5894
+ },
5895
+ {
5896
+ "required": [
5897
+ "elementTestId"
5898
+ ]
5899
+ },
5900
+ {
5901
+ "required": [
5902
+ "elementClass"
5903
+ ]
5904
+ },
5905
+ {
5906
+ "required": [
5907
+ "elementAttribute"
5908
+ ]
5909
+ },
5910
+ {
5911
+ "required": [
5912
+ "elementAria"
5913
+ ]
4904
5914
  }
4905
5915
  ],
4906
5916
  "properties": {
@@ -4912,6 +5922,49 @@
4912
5922
  "type": "string",
4913
5923
  "description": "Selector of the element to screenshot."
4914
5924
  },
5925
+ "elementId": {
5926
+ "type": "string",
5927
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
5928
+ },
5929
+ "elementTestId": {
5930
+ "type": "string",
5931
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
5932
+ },
5933
+ "elementClass": {
5934
+ "anyOf": [
5935
+ {
5936
+ "type": "string"
5937
+ },
5938
+ {
5939
+ "type": "array",
5940
+ "items": {
5941
+ "type": "string"
5942
+ }
5943
+ }
5944
+ ],
5945
+ "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."
5946
+ },
5947
+ "elementAttribute": {
5948
+ "type": "object",
5949
+ "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.",
5950
+ "additionalProperties": {
5951
+ "anyOf": [
5952
+ {
5953
+ "type": "string"
5954
+ },
5955
+ {
5956
+ "type": "number"
5957
+ },
5958
+ {
5959
+ "type": "boolean"
5960
+ }
5961
+ ]
5962
+ }
5963
+ },
5964
+ "elementAria": {
5965
+ "type": "string",
5966
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
5967
+ },
4915
5968
  "padding": {
4916
5969
  "anyOf": [
4917
5970
  {
@@ -7251,7 +8304,7 @@
7251
8304
  {
7252
8305
  "type": "array",
7253
8306
  "items": {
7254
- "oneOf": [
8307
+ "anyOf": [
7255
8308
  {
7256
8309
  "type": "integer"
7257
8310
  }
@@ -7314,7 +8367,7 @@
7314
8367
  {
7315
8368
  "type": "array",
7316
8369
  "items": {
7317
- "oneOf": [
8370
+ "anyOf": [
7318
8371
  {
7319
8372
  "type": "integer"
7320
8373
  }
@@ -7429,7 +8482,7 @@
7429
8482
  {
7430
8483
  "title": "Click element (simple)",
7431
8484
  "type": "string",
7432
- "description": "Display text or selector of the element to find."
8485
+ "description": "Identifier for the element to click. Can be a selector, element text, ARIA name, ID, or test ID."
7433
8486
  },
7434
8487
  {
7435
8488
  "title": "Click element (detailed)",
@@ -7444,6 +8497,31 @@
7444
8497
  "required": [
7445
8498
  "elementText"
7446
8499
  ]
8500
+ },
8501
+ {
8502
+ "required": [
8503
+ "elementId"
8504
+ ]
8505
+ },
8506
+ {
8507
+ "required": [
8508
+ "elementTestId"
8509
+ ]
8510
+ },
8511
+ {
8512
+ "required": [
8513
+ "elementClass"
8514
+ ]
8515
+ },
8516
+ {
8517
+ "required": [
8518
+ "elementAttribute"
8519
+ ]
8520
+ },
8521
+ {
8522
+ "required": [
8523
+ "elementAria"
8524
+ ]
7447
8525
  }
7448
8526
  ],
7449
8527
  "properties": {
@@ -7456,13 +8534,56 @@
7456
8534
  "middle"
7457
8535
  ]
7458
8536
  },
7459
- "elementText": {
7460
- "type": "string",
7461
- "description": "Display text of the element to click. If combined with `selector`, the element must match both the text and the selector."
8537
+ "elementText": {
8538
+ "type": "string",
8539
+ "description": "Display text of the element to click. If combined with other element finding fields, the element must match all specified criteria."
8540
+ },
8541
+ "selector": {
8542
+ "type": "string",
8543
+ "description": "Selector of the element to click. If combined with other element finding fields, the element must match all specified criteria."
8544
+ },
8545
+ "elementId": {
8546
+ "type": "string",
8547
+ "description": "ID attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
8548
+ },
8549
+ "elementTestId": {
8550
+ "type": "string",
8551
+ "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
8552
+ },
8553
+ "elementClass": {
8554
+ "anyOf": [
8555
+ {
8556
+ "type": "string"
8557
+ },
8558
+ {
8559
+ "type": "array",
8560
+ "items": {
8561
+ "type": "string"
8562
+ }
8563
+ }
8564
+ ],
8565
+ "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."
8566
+ },
8567
+ "elementAttribute": {
8568
+ "type": "object",
8569
+ "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.",
8570
+ "additionalProperties": {
8571
+ "anyOf": [
8572
+ {
8573
+ "type": "string"
8574
+ },
8575
+ {
8576
+ "type": "number"
8577
+ },
8578
+ {
8579
+ "type": "boolean"
8580
+ }
8581
+ ]
8582
+ }
7462
8583
  },
7463
- "selector": {
8584
+ "elementAria": {
7464
8585
  "type": "string",
7465
- "description": "Selector of the element to click. If combined with `elementText`, the element must match both the text and the selector."
8586
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
7466
8587
  }
7467
8588
  }
7468
8589
  },
@@ -7475,7 +8596,7 @@
7475
8596
  "string": {
7476
8597
  "title": "Click element (simple)",
7477
8598
  "type": "string",
7478
- "description": "Display text or selector of the element to find."
8599
+ "description": "Identifier for the element to click. Can be a selector, element text, ARIA name, ID, or test ID."
7479
8600
  },
7480
8601
  "button": {
7481
8602
  "description": "Kind of click to perform.",
@@ -7499,6 +8620,31 @@
7499
8620
  "required": [
7500
8621
  "elementText"
7501
8622
  ]
8623
+ },
8624
+ {
8625
+ "required": [
8626
+ "elementId"
8627
+ ]
8628
+ },
8629
+ {
8630
+ "required": [
8631
+ "elementTestId"
8632
+ ]
8633
+ },
8634
+ {
8635
+ "required": [
8636
+ "elementClass"
8637
+ ]
8638
+ },
8639
+ {
8640
+ "required": [
8641
+ "elementAttribute"
8642
+ ]
8643
+ },
8644
+ {
8645
+ "required": [
8646
+ "elementAria"
8647
+ ]
7502
8648
  }
7503
8649
  ],
7504
8650
  "properties": {
@@ -7513,11 +8659,54 @@
7513
8659
  },
7514
8660
  "elementText": {
7515
8661
  "type": "string",
7516
- "description": "Display text of the element to click. If combined with `selector`, the element must match both the text and the selector."
8662
+ "description": "Display text of the element to click. If combined with other element finding fields, the element must match all specified criteria."
7517
8663
  },
7518
8664
  "selector": {
7519
8665
  "type": "string",
7520
- "description": "Selector of the element to click. If combined with `elementText`, the element must match both the text and the selector."
8666
+ "description": "Selector of the element to click. If combined with other element finding fields, the element must match all specified criteria."
8667
+ },
8668
+ "elementId": {
8669
+ "type": "string",
8670
+ "description": "ID attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
8671
+ },
8672
+ "elementTestId": {
8673
+ "type": "string",
8674
+ "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
8675
+ },
8676
+ "elementClass": {
8677
+ "anyOf": [
8678
+ {
8679
+ "type": "string"
8680
+ },
8681
+ {
8682
+ "type": "array",
8683
+ "items": {
8684
+ "type": "string"
8685
+ }
8686
+ }
8687
+ ],
8688
+ "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."
8689
+ },
8690
+ "elementAttribute": {
8691
+ "type": "object",
8692
+ "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.",
8693
+ "additionalProperties": {
8694
+ "anyOf": [
8695
+ {
8696
+ "type": "string"
8697
+ },
8698
+ {
8699
+ "type": "number"
8700
+ },
8701
+ {
8702
+ "type": "boolean"
8703
+ }
8704
+ ]
8705
+ }
8706
+ },
8707
+ "elementAria": {
8708
+ "type": "string",
8709
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
7521
8710
  }
7522
8711
  }
7523
8712
  }
@@ -7616,7 +8805,7 @@
7616
8805
  {
7617
8806
  "title": "Find element (simple)",
7618
8807
  "type": "string",
7619
- "description": "Display text or selector of the element to find."
8808
+ "description": "Identifier for the element to find. Can be a selector, element text, ARIA name, ID, or test ID."
7620
8809
  },
7621
8810
  {
7622
8811
  "title": "Find element (detailed)",
@@ -7631,17 +8820,85 @@
7631
8820
  "required": [
7632
8821
  "elementText"
7633
8822
  ]
8823
+ },
8824
+ {
8825
+ "required": [
8826
+ "elementId"
8827
+ ]
8828
+ },
8829
+ {
8830
+ "required": [
8831
+ "elementTestId"
8832
+ ]
8833
+ },
8834
+ {
8835
+ "required": [
8836
+ "elementClass"
8837
+ ]
8838
+ },
8839
+ {
8840
+ "required": [
8841
+ "elementAttribute"
8842
+ ]
8843
+ },
8844
+ {
8845
+ "required": [
8846
+ "elementAria"
8847
+ ]
7634
8848
  }
7635
8849
  ],
7636
8850
  "additionalProperties": false,
7637
8851
  "properties": {
7638
8852
  "elementText": {
7639
8853
  "type": "string",
7640
- "description": "Display text of the element to find. If combined with `selector`, the element must match both the text and the selector."
8854
+ "description": "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
7641
8855
  },
7642
8856
  "selector": {
7643
8857
  "type": "string",
7644
- "description": "Selector of the element to find. If combined with `elementText`, the element must match both the text and the selector."
8858
+ "description": "Selector of the element to find. If combined with other element finding fields, the element must match all specified criteria."
8859
+ },
8860
+ "elementId": {
8861
+ "type": "string",
8862
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
8863
+ },
8864
+ "elementTestId": {
8865
+ "type": "string",
8866
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
8867
+ },
8868
+ "elementClass": {
8869
+ "anyOf": [
8870
+ {
8871
+ "type": "string"
8872
+ },
8873
+ {
8874
+ "type": "array",
8875
+ "items": {
8876
+ "type": "string"
8877
+ }
8878
+ }
8879
+ ],
8880
+ "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."
8881
+ },
8882
+ "elementAttribute": {
8883
+ "type": "object",
8884
+ "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.",
8885
+ "additionalProperties": {
8886
+ "anyOf": [
8887
+ {
8888
+ "type": "string"
8889
+ },
8890
+ {
8891
+ "type": "number"
8892
+ },
8893
+ {
8894
+ "type": "boolean"
8895
+ }
8896
+ ]
8897
+ }
8898
+ },
8899
+ "elementAria": {
8900
+ "type": "string",
8901
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
7645
8902
  },
7646
8903
  "timeout": {
7647
8904
  "type": "integer",
@@ -7664,7 +8921,7 @@
7664
8921
  {
7665
8922
  "title": "Click element (simple)",
7666
8923
  "type": "string",
7667
- "description": "Display text or selector of the element to find."
8924
+ "description": "Identifier for the element to click. Can be a selector, element text, ARIA name, ID, or test ID."
7668
8925
  },
7669
8926
  {
7670
8927
  "title": "Click element (detailed)",
@@ -7679,6 +8936,31 @@
7679
8936
  "required": [
7680
8937
  "elementText"
7681
8938
  ]
8939
+ },
8940
+ {
8941
+ "required": [
8942
+ "elementId"
8943
+ ]
8944
+ },
8945
+ {
8946
+ "required": [
8947
+ "elementTestId"
8948
+ ]
8949
+ },
8950
+ {
8951
+ "required": [
8952
+ "elementClass"
8953
+ ]
8954
+ },
8955
+ {
8956
+ "required": [
8957
+ "elementAttribute"
8958
+ ]
8959
+ },
8960
+ {
8961
+ "required": [
8962
+ "elementAria"
8963
+ ]
7682
8964
  }
7683
8965
  ],
7684
8966
  "properties": {
@@ -7693,11 +8975,54 @@
7693
8975
  },
7694
8976
  "elementText": {
7695
8977
  "type": "string",
7696
- "description": "Display text of the element to click. If combined with `selector`, the element must match both the text and the selector."
8978
+ "description": "Display text of the element to click. If combined with other element finding fields, the element must match all specified criteria."
7697
8979
  },
7698
8980
  "selector": {
7699
8981
  "type": "string",
7700
- "description": "Selector of the element to click. If combined with `elementText`, the element must match both the text and the selector."
8982
+ "description": "Selector of the element to click. If combined with other element finding fields, the element must match all specified criteria."
8983
+ },
8984
+ "elementId": {
8985
+ "type": "string",
8986
+ "description": "ID attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
8987
+ },
8988
+ "elementTestId": {
8989
+ "type": "string",
8990
+ "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
8991
+ },
8992
+ "elementClass": {
8993
+ "anyOf": [
8994
+ {
8995
+ "type": "string"
8996
+ },
8997
+ {
8998
+ "type": "array",
8999
+ "items": {
9000
+ "type": "string"
9001
+ }
9002
+ }
9003
+ ],
9004
+ "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."
9005
+ },
9006
+ "elementAttribute": {
9007
+ "type": "object",
9008
+ "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.",
9009
+ "additionalProperties": {
9010
+ "anyOf": [
9011
+ {
9012
+ "type": "string"
9013
+ },
9014
+ {
9015
+ "type": "number"
9016
+ },
9017
+ {
9018
+ "type": "boolean"
9019
+ }
9020
+ ]
9021
+ }
9022
+ },
9023
+ "elementAria": {
9024
+ "type": "string",
9025
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
7701
9026
  }
7702
9027
  }
7703
9028
  },
@@ -7710,7 +9035,7 @@
7710
9035
  "string": {
7711
9036
  "title": "Click element (simple)",
7712
9037
  "type": "string",
7713
- "description": "Display text or selector of the element to find."
9038
+ "description": "Identifier for the element to click. Can be a selector, element text, ARIA name, ID, or test ID."
7714
9039
  },
7715
9040
  "button": {
7716
9041
  "description": "Kind of click to perform.",
@@ -7734,6 +9059,31 @@
7734
9059
  "required": [
7735
9060
  "elementText"
7736
9061
  ]
9062
+ },
9063
+ {
9064
+ "required": [
9065
+ "elementId"
9066
+ ]
9067
+ },
9068
+ {
9069
+ "required": [
9070
+ "elementTestId"
9071
+ ]
9072
+ },
9073
+ {
9074
+ "required": [
9075
+ "elementClass"
9076
+ ]
9077
+ },
9078
+ {
9079
+ "required": [
9080
+ "elementAttribute"
9081
+ ]
9082
+ },
9083
+ {
9084
+ "required": [
9085
+ "elementAria"
9086
+ ]
7737
9087
  }
7738
9088
  ],
7739
9089
  "properties": {
@@ -7748,11 +9098,54 @@
7748
9098
  },
7749
9099
  "elementText": {
7750
9100
  "type": "string",
7751
- "description": "Display text of the element to click. If combined with `selector`, the element must match both the text and the selector."
9101
+ "description": "Display text of the element to click. If combined with other element finding fields, the element must match all specified criteria."
7752
9102
  },
7753
9103
  "selector": {
7754
9104
  "type": "string",
7755
- "description": "Selector of the element to click. If combined with `elementText`, the element must match both the text and the selector."
9105
+ "description": "Selector of the element to click. If combined with other element finding fields, the element must match all specified criteria."
9106
+ },
9107
+ "elementId": {
9108
+ "type": "string",
9109
+ "description": "ID attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
9110
+ },
9111
+ "elementTestId": {
9112
+ "type": "string",
9113
+ "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
9114
+ },
9115
+ "elementClass": {
9116
+ "anyOf": [
9117
+ {
9118
+ "type": "string"
9119
+ },
9120
+ {
9121
+ "type": "array",
9122
+ "items": {
9123
+ "type": "string"
9124
+ }
9125
+ }
9126
+ ],
9127
+ "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."
9128
+ },
9129
+ "elementAttribute": {
9130
+ "type": "object",
9131
+ "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.",
9132
+ "additionalProperties": {
9133
+ "anyOf": [
9134
+ {
9135
+ "type": "string"
9136
+ },
9137
+ {
9138
+ "type": "number"
9139
+ },
9140
+ {
9141
+ "type": "boolean"
9142
+ }
9143
+ ]
9144
+ }
9145
+ },
9146
+ "elementAria": {
9147
+ "type": "string",
9148
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
7756
9149
  }
7757
9150
  }
7758
9151
  }
@@ -7807,7 +9200,7 @@
7807
9200
  {
7808
9201
  "type": "array",
7809
9202
  "items": {
7810
- "oneOf": [
9203
+ "anyOf": [
7811
9204
  {
7812
9205
  "type": "string"
7813
9206
  }
@@ -7830,23 +9223,70 @@
7830
9223
  {
7831
9224
  "type": "array",
7832
9225
  "items": {
7833
- "oneOf": [
9226
+ "anyOf": [
7834
9227
  {
7835
9228
  "type": "string"
7836
9229
  }
7837
9230
  ]
7838
9231
  }
7839
- }
7840
- ]
7841
- },
7842
- "inputDelay": {
7843
- "type": "number",
7844
- "description": "Delay in milliseconds between each key press during a recording",
7845
- "default": 100
9232
+ }
9233
+ ]
9234
+ },
9235
+ "inputDelay": {
9236
+ "type": "number",
9237
+ "description": "Delay in milliseconds between each key press during a recording",
9238
+ "default": 100
9239
+ },
9240
+ "selector": {
9241
+ "type": "string",
9242
+ "description": "Selector for the element to type into. If not specified, the typing occurs in the active element."
9243
+ },
9244
+ "elementText": {
9245
+ "type": "string",
9246
+ "description": "Display text of the element to type into. If combined with other element finding fields, the element must match all specified criteria."
9247
+ },
9248
+ "elementId": {
9249
+ "type": "string",
9250
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
9251
+ },
9252
+ "elementTestId": {
9253
+ "type": "string",
9254
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
9255
+ },
9256
+ "elementClass": {
9257
+ "anyOf": [
9258
+ {
9259
+ "type": "string"
9260
+ },
9261
+ {
9262
+ "type": "array",
9263
+ "items": {
9264
+ "type": "string"
9265
+ }
9266
+ }
9267
+ ],
9268
+ "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."
9269
+ },
9270
+ "elementAttribute": {
9271
+ "type": "object",
9272
+ "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.",
9273
+ "additionalProperties": {
9274
+ "anyOf": [
9275
+ {
9276
+ "type": "string"
9277
+ },
9278
+ {
9279
+ "type": "number"
9280
+ },
9281
+ {
9282
+ "type": "boolean"
9283
+ }
9284
+ ]
9285
+ }
7846
9286
  },
7847
- "selector": {
9287
+ "elementAria": {
7848
9288
  "type": "string",
7849
- "description": "Selector for the element to type into. If not specified, the typing occurs in the active element."
9289
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
7850
9290
  }
7851
9291
  },
7852
9292
  "required": [
@@ -7867,7 +9307,7 @@
7867
9307
  {
7868
9308
  "type": "array",
7869
9309
  "items": {
7870
- "oneOf": [
9310
+ "anyOf": [
7871
9311
  {
7872
9312
  "type": "string"
7873
9313
  }
@@ -7890,7 +9330,7 @@
7890
9330
  {
7891
9331
  "type": "array",
7892
9332
  "items": {
7893
- "oneOf": [
9333
+ "anyOf": [
7894
9334
  {
7895
9335
  "type": "string"
7896
9336
  }
@@ -7907,6 +9347,53 @@
7907
9347
  "selector": {
7908
9348
  "type": "string",
7909
9349
  "description": "Selector for the element to type into. If not specified, the typing occurs in the active element."
9350
+ },
9351
+ "elementText": {
9352
+ "type": "string",
9353
+ "description": "Display text of the element to type into. If combined with other element finding fields, the element must match all specified criteria."
9354
+ },
9355
+ "elementId": {
9356
+ "type": "string",
9357
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
9358
+ },
9359
+ "elementTestId": {
9360
+ "type": "string",
9361
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
9362
+ },
9363
+ "elementClass": {
9364
+ "anyOf": [
9365
+ {
9366
+ "type": "string"
9367
+ },
9368
+ {
9369
+ "type": "array",
9370
+ "items": {
9371
+ "type": "string"
9372
+ }
9373
+ }
9374
+ ],
9375
+ "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."
9376
+ },
9377
+ "elementAttribute": {
9378
+ "type": "object",
9379
+ "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.",
9380
+ "additionalProperties": {
9381
+ "anyOf": [
9382
+ {
9383
+ "type": "string"
9384
+ },
9385
+ {
9386
+ "type": "number"
9387
+ },
9388
+ {
9389
+ "type": "boolean"
9390
+ }
9391
+ ]
9392
+ }
9393
+ },
9394
+ "elementAria": {
9395
+ "type": "string",
9396
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
7910
9397
  }
7911
9398
  },
7912
9399
  "required": [
@@ -7947,7 +9434,12 @@
7947
9434
  "type": "object",
7948
9435
  "required": [
7949
9436
  "selector",
7950
- "elementText"
9437
+ "elementText",
9438
+ "elementId",
9439
+ "elementTestId",
9440
+ "elementClass",
9441
+ "elementAttribute",
9442
+ "elementAria"
7951
9443
  ],
7952
9444
  "title": "Find element and type"
7953
9445
  }
@@ -7962,7 +9454,7 @@
7962
9454
  "string": {
7963
9455
  "title": "Find element (simple)",
7964
9456
  "type": "string",
7965
- "description": "Display text or selector of the element to find."
9457
+ "description": "Identifier for the element to find. Can be a selector, element text, ARIA name, ID, or test ID."
7966
9458
  },
7967
9459
  "object": {
7968
9460
  "title": "Find element (detailed)",
@@ -7977,17 +9469,85 @@
7977
9469
  "required": [
7978
9470
  "elementText"
7979
9471
  ]
9472
+ },
9473
+ {
9474
+ "required": [
9475
+ "elementId"
9476
+ ]
9477
+ },
9478
+ {
9479
+ "required": [
9480
+ "elementTestId"
9481
+ ]
9482
+ },
9483
+ {
9484
+ "required": [
9485
+ "elementClass"
9486
+ ]
9487
+ },
9488
+ {
9489
+ "required": [
9490
+ "elementAttribute"
9491
+ ]
9492
+ },
9493
+ {
9494
+ "required": [
9495
+ "elementAria"
9496
+ ]
7980
9497
  }
7981
9498
  ],
7982
9499
  "additionalProperties": false,
7983
9500
  "properties": {
7984
9501
  "elementText": {
7985
9502
  "type": "string",
7986
- "description": "Display text of the element to find. If combined with `selector`, the element must match both the text and the selector."
9503
+ "description": "Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria."
7987
9504
  },
7988
9505
  "selector": {
7989
9506
  "type": "string",
7990
- "description": "Selector of the element to find. If combined with `elementText`, the element must match both the text and the selector."
9507
+ "description": "Selector of the element to find. If combined with other element finding fields, the element must match all specified criteria."
9508
+ },
9509
+ "elementId": {
9510
+ "type": "string",
9511
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
9512
+ },
9513
+ "elementTestId": {
9514
+ "type": "string",
9515
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
9516
+ },
9517
+ "elementClass": {
9518
+ "anyOf": [
9519
+ {
9520
+ "type": "string"
9521
+ },
9522
+ {
9523
+ "type": "array",
9524
+ "items": {
9525
+ "type": "string"
9526
+ }
9527
+ }
9528
+ ],
9529
+ "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."
9530
+ },
9531
+ "elementAttribute": {
9532
+ "type": "object",
9533
+ "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.",
9534
+ "additionalProperties": {
9535
+ "anyOf": [
9536
+ {
9537
+ "type": "string"
9538
+ },
9539
+ {
9540
+ "type": "number"
9541
+ },
9542
+ {
9543
+ "type": "boolean"
9544
+ }
9545
+ ]
9546
+ }
9547
+ },
9548
+ "elementAria": {
9549
+ "type": "string",
9550
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
7991
9551
  },
7992
9552
  "timeout": {
7993
9553
  "type": "integer",
@@ -8010,7 +9570,7 @@
8010
9570
  {
8011
9571
  "title": "Click element (simple)",
8012
9572
  "type": "string",
8013
- "description": "Display text or selector of the element to find."
9573
+ "description": "Identifier for the element to click. Can be a selector, element text, ARIA name, ID, or test ID."
8014
9574
  },
8015
9575
  {
8016
9576
  "title": "Click element (detailed)",
@@ -8025,6 +9585,31 @@
8025
9585
  "required": [
8026
9586
  "elementText"
8027
9587
  ]
9588
+ },
9589
+ {
9590
+ "required": [
9591
+ "elementId"
9592
+ ]
9593
+ },
9594
+ {
9595
+ "required": [
9596
+ "elementTestId"
9597
+ ]
9598
+ },
9599
+ {
9600
+ "required": [
9601
+ "elementClass"
9602
+ ]
9603
+ },
9604
+ {
9605
+ "required": [
9606
+ "elementAttribute"
9607
+ ]
9608
+ },
9609
+ {
9610
+ "required": [
9611
+ "elementAria"
9612
+ ]
8028
9613
  }
8029
9614
  ],
8030
9615
  "properties": {
@@ -8039,11 +9624,54 @@
8039
9624
  },
8040
9625
  "elementText": {
8041
9626
  "type": "string",
8042
- "description": "Display text of the element to click. If combined with `selector`, the element must match both the text and the selector."
9627
+ "description": "Display text of the element to click. If combined with other element finding fields, the element must match all specified criteria."
8043
9628
  },
8044
9629
  "selector": {
8045
9630
  "type": "string",
8046
- "description": "Selector of the element to click. If combined with `elementText`, the element must match both the text and the selector."
9631
+ "description": "Selector of the element to click. If combined with other element finding fields, the element must match all specified criteria."
9632
+ },
9633
+ "elementId": {
9634
+ "type": "string",
9635
+ "description": "ID attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
9636
+ },
9637
+ "elementTestId": {
9638
+ "type": "string",
9639
+ "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
9640
+ },
9641
+ "elementClass": {
9642
+ "anyOf": [
9643
+ {
9644
+ "type": "string"
9645
+ },
9646
+ {
9647
+ "type": "array",
9648
+ "items": {
9649
+ "type": "string"
9650
+ }
9651
+ }
9652
+ ],
9653
+ "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."
9654
+ },
9655
+ "elementAttribute": {
9656
+ "type": "object",
9657
+ "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.",
9658
+ "additionalProperties": {
9659
+ "anyOf": [
9660
+ {
9661
+ "type": "string"
9662
+ },
9663
+ {
9664
+ "type": "number"
9665
+ },
9666
+ {
9667
+ "type": "boolean"
9668
+ }
9669
+ ]
9670
+ }
9671
+ },
9672
+ "elementAria": {
9673
+ "type": "string",
9674
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
8047
9675
  }
8048
9676
  }
8049
9677
  },
@@ -8056,7 +9684,7 @@
8056
9684
  "string": {
8057
9685
  "title": "Click element (simple)",
8058
9686
  "type": "string",
8059
- "description": "Display text or selector of the element to find."
9687
+ "description": "Identifier for the element to click. Can be a selector, element text, ARIA name, ID, or test ID."
8060
9688
  },
8061
9689
  "button": {
8062
9690
  "description": "Kind of click to perform.",
@@ -8080,6 +9708,31 @@
8080
9708
  "required": [
8081
9709
  "elementText"
8082
9710
  ]
9711
+ },
9712
+ {
9713
+ "required": [
9714
+ "elementId"
9715
+ ]
9716
+ },
9717
+ {
9718
+ "required": [
9719
+ "elementTestId"
9720
+ ]
9721
+ },
9722
+ {
9723
+ "required": [
9724
+ "elementClass"
9725
+ ]
9726
+ },
9727
+ {
9728
+ "required": [
9729
+ "elementAttribute"
9730
+ ]
9731
+ },
9732
+ {
9733
+ "required": [
9734
+ "elementAria"
9735
+ ]
8083
9736
  }
8084
9737
  ],
8085
9738
  "properties": {
@@ -8094,11 +9747,54 @@
8094
9747
  },
8095
9748
  "elementText": {
8096
9749
  "type": "string",
8097
- "description": "Display text of the element to click. If combined with `selector`, the element must match both the text and the selector."
9750
+ "description": "Display text of the element to click. If combined with other element finding fields, the element must match all specified criteria."
8098
9751
  },
8099
9752
  "selector": {
8100
9753
  "type": "string",
8101
- "description": "Selector of the element to click. If combined with `elementText`, the element must match both the text and the selector."
9754
+ "description": "Selector of the element to click. If combined with other element finding fields, the element must match all specified criteria."
9755
+ },
9756
+ "elementId": {
9757
+ "type": "string",
9758
+ "description": "ID attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
9759
+ },
9760
+ "elementTestId": {
9761
+ "type": "string",
9762
+ "description": "data-testid attribute of the element to click. Supports exact match or regex pattern using /pattern/ syntax."
9763
+ },
9764
+ "elementClass": {
9765
+ "anyOf": [
9766
+ {
9767
+ "type": "string"
9768
+ },
9769
+ {
9770
+ "type": "array",
9771
+ "items": {
9772
+ "type": "string"
9773
+ }
9774
+ }
9775
+ ],
9776
+ "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."
9777
+ },
9778
+ "elementAttribute": {
9779
+ "type": "object",
9780
+ "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.",
9781
+ "additionalProperties": {
9782
+ "anyOf": [
9783
+ {
9784
+ "type": "string"
9785
+ },
9786
+ {
9787
+ "type": "number"
9788
+ },
9789
+ {
9790
+ "type": "boolean"
9791
+ }
9792
+ ]
9793
+ }
9794
+ },
9795
+ "elementAria": {
9796
+ "type": "string",
9797
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
8102
9798
  }
8103
9799
  }
8104
9800
  }
@@ -8153,7 +9849,7 @@
8153
9849
  {
8154
9850
  "type": "array",
8155
9851
  "items": {
8156
- "oneOf": [
9852
+ "anyOf": [
8157
9853
  {
8158
9854
  "type": "string"
8159
9855
  }
@@ -8176,7 +9872,7 @@
8176
9872
  {
8177
9873
  "type": "array",
8178
9874
  "items": {
8179
- "oneOf": [
9875
+ "anyOf": [
8180
9876
  {
8181
9877
  "type": "string"
8182
9878
  }
@@ -8193,6 +9889,53 @@
8193
9889
  "selector": {
8194
9890
  "type": "string",
8195
9891
  "description": "Selector for the element to type into. If not specified, the typing occurs in the active element."
9892
+ },
9893
+ "elementText": {
9894
+ "type": "string",
9895
+ "description": "Display text of the element to type into. If combined with other element finding fields, the element must match all specified criteria."
9896
+ },
9897
+ "elementId": {
9898
+ "type": "string",
9899
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
9900
+ },
9901
+ "elementTestId": {
9902
+ "type": "string",
9903
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
9904
+ },
9905
+ "elementClass": {
9906
+ "anyOf": [
9907
+ {
9908
+ "type": "string"
9909
+ },
9910
+ {
9911
+ "type": "array",
9912
+ "items": {
9913
+ "type": "string"
9914
+ }
9915
+ }
9916
+ ],
9917
+ "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."
9918
+ },
9919
+ "elementAttribute": {
9920
+ "type": "object",
9921
+ "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.",
9922
+ "additionalProperties": {
9923
+ "anyOf": [
9924
+ {
9925
+ "type": "string"
9926
+ },
9927
+ {
9928
+ "type": "number"
9929
+ },
9930
+ {
9931
+ "type": "boolean"
9932
+ }
9933
+ ]
9934
+ }
9935
+ },
9936
+ "elementAria": {
9937
+ "type": "string",
9938
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
8196
9939
  }
8197
9940
  },
8198
9941
  "required": [
@@ -8213,7 +9956,7 @@
8213
9956
  {
8214
9957
  "type": "array",
8215
9958
  "items": {
8216
- "oneOf": [
9959
+ "anyOf": [
8217
9960
  {
8218
9961
  "type": "string"
8219
9962
  }
@@ -8236,23 +9979,70 @@
8236
9979
  {
8237
9980
  "type": "array",
8238
9981
  "items": {
8239
- "oneOf": [
9982
+ "anyOf": [
8240
9983
  {
8241
9984
  "type": "string"
8242
9985
  }
8243
9986
  ]
8244
9987
  }
8245
9988
  }
8246
- ]
9989
+ ]
9990
+ },
9991
+ "inputDelay": {
9992
+ "type": "number",
9993
+ "description": "Delay in milliseconds between each key press during a recording",
9994
+ "default": 100
9995
+ },
9996
+ "selector": {
9997
+ "type": "string",
9998
+ "description": "Selector for the element to type into. If not specified, the typing occurs in the active element."
9999
+ },
10000
+ "elementText": {
10001
+ "type": "string",
10002
+ "description": "Display text of the element to type into. If combined with other element finding fields, the element must match all specified criteria."
10003
+ },
10004
+ "elementId": {
10005
+ "type": "string",
10006
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
10007
+ },
10008
+ "elementTestId": {
10009
+ "type": "string",
10010
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
10011
+ },
10012
+ "elementClass": {
10013
+ "anyOf": [
10014
+ {
10015
+ "type": "string"
10016
+ },
10017
+ {
10018
+ "type": "array",
10019
+ "items": {
10020
+ "type": "string"
10021
+ }
10022
+ }
10023
+ ],
10024
+ "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."
8247
10025
  },
8248
- "inputDelay": {
8249
- "type": "number",
8250
- "description": "Delay in milliseconds between each key press during a recording",
8251
- "default": 100
10026
+ "elementAttribute": {
10027
+ "type": "object",
10028
+ "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.",
10029
+ "additionalProperties": {
10030
+ "anyOf": [
10031
+ {
10032
+ "type": "string"
10033
+ },
10034
+ {
10035
+ "type": "number"
10036
+ },
10037
+ {
10038
+ "type": "boolean"
10039
+ }
10040
+ ]
10041
+ }
8252
10042
  },
8253
- "selector": {
10043
+ "elementAria": {
8254
10044
  "type": "string",
8255
- "description": "Selector for the element to type into. If not specified, the typing occurs in the active element."
10045
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
8256
10046
  }
8257
10047
  },
8258
10048
  "required": [
@@ -8293,7 +10083,12 @@
8293
10083
  "type": "object",
8294
10084
  "required": [
8295
10085
  "selector",
8296
- "elementText"
10086
+ "elementText",
10087
+ "elementId",
10088
+ "elementTestId",
10089
+ "elementClass",
10090
+ "elementAttribute",
10091
+ "elementAria"
8297
10092
  ],
8298
10093
  "title": "Find element and type"
8299
10094
  }
@@ -8335,6 +10130,19 @@
8335
10130
  ],
8336
10131
  "inputDelay": 100
8337
10132
  }
10133
+ },
10134
+ {
10135
+ "elementId": "/^user-[0-9]+$/",
10136
+ "elementClass": [
10137
+ "admin",
10138
+ "/^level-[1-5]$/"
10139
+ ],
10140
+ "elementAttribute": {
10141
+ "data-active": true,
10142
+ "data-score": "/^[0-9]+$/"
10143
+ },
10144
+ "timeout": 8000,
10145
+ "moveTo": false
8338
10146
  }
8339
10147
  ]
8340
10148
  }
@@ -8804,7 +10612,7 @@
8804
10612
  "description": "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
8805
10613
  "type": "array",
8806
10614
  "items": {
8807
- "oneOf": [
10615
+ "anyOf": [
8808
10616
  {
8809
10617
  "type": "integer"
8810
10618
  }
@@ -9203,7 +11011,7 @@
9203
11011
  "description": "Accepted status codes. If the specified URL returns a code other than what is specified here, the action fails.",
9204
11012
  "type": "array",
9205
11013
  "items": {
9206
- "oneOf": [
11014
+ "anyOf": [
9207
11015
  {
9208
11016
  "type": "integer"
9209
11017
  }
@@ -9664,7 +11472,7 @@
9664
11472
  "type": "array",
9665
11473
  "description": "Arguments for the command.",
9666
11474
  "items": {
9667
- "oneOf": [
11475
+ "anyOf": [
9668
11476
  {
9669
11477
  "type": "string"
9670
11478
  }
@@ -9681,7 +11489,7 @@
9681
11489
  "type": "array",
9682
11490
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
9683
11491
  "items": {
9684
- "oneOf": [
11492
+ "anyOf": [
9685
11493
  {
9686
11494
  "type": "integer"
9687
11495
  }
@@ -9754,7 +11562,7 @@
9754
11562
  "type": "array",
9755
11563
  "description": "Arguments for the command.",
9756
11564
  "items": {
9757
- "oneOf": [
11565
+ "anyOf": [
9758
11566
  {
9759
11567
  "type": "string"
9760
11568
  }
@@ -9771,7 +11579,7 @@
9771
11579
  "type": "array",
9772
11580
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
9773
11581
  "items": {
9774
- "oneOf": [
11582
+ "anyOf": [
9775
11583
  {
9776
11584
  "type": "integer"
9777
11585
  }
@@ -9972,7 +11780,7 @@
9972
11780
  "type": "array",
9973
11781
  "description": "Arguments for the command.",
9974
11782
  "items": {
9975
- "oneOf": [
11783
+ "anyOf": [
9976
11784
  {
9977
11785
  "type": "string"
9978
11786
  }
@@ -9989,7 +11797,7 @@
9989
11797
  "type": "array",
9990
11798
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
9991
11799
  "items": {
9992
- "oneOf": [
11800
+ "anyOf": [
9993
11801
  {
9994
11802
  "type": "integer"
9995
11803
  }
@@ -10063,7 +11871,7 @@
10063
11871
  "type": "array",
10064
11872
  "description": "Arguments for the command.",
10065
11873
  "items": {
10066
- "oneOf": [
11874
+ "anyOf": [
10067
11875
  {
10068
11876
  "type": "string"
10069
11877
  }
@@ -10080,7 +11888,7 @@
10080
11888
  "type": "array",
10081
11889
  "description": "Expected exit codes of the command. If the command's actual exit code isn't in this list, the step fails.",
10082
11890
  "items": {
10083
- "oneOf": [
11891
+ "anyOf": [
10084
11892
  {
10085
11893
  "type": "integer"
10086
11894
  }
@@ -10251,7 +12059,7 @@
10251
12059
  {
10252
12060
  "type": "array",
10253
12061
  "items": {
10254
- "oneOf": [
12062
+ "anyOf": [
10255
12063
  {
10256
12064
  "type": "string"
10257
12065
  }
@@ -10274,7 +12082,7 @@
10274
12082
  {
10275
12083
  "type": "array",
10276
12084
  "items": {
10277
- "oneOf": [
12085
+ "anyOf": [
10278
12086
  {
10279
12087
  "type": "string"
10280
12088
  }
@@ -10291,6 +12099,53 @@
10291
12099
  "selector": {
10292
12100
  "type": "string",
10293
12101
  "description": "Selector for the element to type into. If not specified, the typing occurs in the active element."
12102
+ },
12103
+ "elementText": {
12104
+ "type": "string",
12105
+ "description": "Display text of the element to type into. If combined with other element finding fields, the element must match all specified criteria."
12106
+ },
12107
+ "elementId": {
12108
+ "type": "string",
12109
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
12110
+ },
12111
+ "elementTestId": {
12112
+ "type": "string",
12113
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
12114
+ },
12115
+ "elementClass": {
12116
+ "anyOf": [
12117
+ {
12118
+ "type": "string"
12119
+ },
12120
+ {
12121
+ "type": "array",
12122
+ "items": {
12123
+ "type": "string"
12124
+ }
12125
+ }
12126
+ ],
12127
+ "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."
12128
+ },
12129
+ "elementAttribute": {
12130
+ "type": "object",
12131
+ "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.",
12132
+ "additionalProperties": {
12133
+ "anyOf": [
12134
+ {
12135
+ "type": "string"
12136
+ },
12137
+ {
12138
+ "type": "number"
12139
+ },
12140
+ {
12141
+ "type": "boolean"
12142
+ }
12143
+ ]
12144
+ }
12145
+ },
12146
+ "elementAria": {
12147
+ "type": "string",
12148
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
10294
12149
  }
10295
12150
  },
10296
12151
  "required": [
@@ -10311,7 +12166,7 @@
10311
12166
  {
10312
12167
  "type": "array",
10313
12168
  "items": {
10314
- "oneOf": [
12169
+ "anyOf": [
10315
12170
  {
10316
12171
  "type": "string"
10317
12172
  }
@@ -10334,7 +12189,7 @@
10334
12189
  {
10335
12190
  "type": "array",
10336
12191
  "items": {
10337
- "oneOf": [
12192
+ "anyOf": [
10338
12193
  {
10339
12194
  "type": "string"
10340
12195
  }
@@ -10351,6 +12206,53 @@
10351
12206
  "selector": {
10352
12207
  "type": "string",
10353
12208
  "description": "Selector for the element to type into. If not specified, the typing occurs in the active element."
12209
+ },
12210
+ "elementText": {
12211
+ "type": "string",
12212
+ "description": "Display text of the element to type into. If combined with other element finding fields, the element must match all specified criteria."
12213
+ },
12214
+ "elementId": {
12215
+ "type": "string",
12216
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
12217
+ },
12218
+ "elementTestId": {
12219
+ "type": "string",
12220
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
12221
+ },
12222
+ "elementClass": {
12223
+ "anyOf": [
12224
+ {
12225
+ "type": "string"
12226
+ },
12227
+ {
12228
+ "type": "array",
12229
+ "items": {
12230
+ "type": "string"
12231
+ }
12232
+ }
12233
+ ],
12234
+ "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."
12235
+ },
12236
+ "elementAttribute": {
12237
+ "type": "object",
12238
+ "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.",
12239
+ "additionalProperties": {
12240
+ "anyOf": [
12241
+ {
12242
+ "type": "string"
12243
+ },
12244
+ {
12245
+ "type": "number"
12246
+ },
12247
+ {
12248
+ "type": "boolean"
12249
+ }
12250
+ ]
12251
+ }
12252
+ },
12253
+ "elementAria": {
12254
+ "type": "string",
12255
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
10354
12256
  }
10355
12257
  },
10356
12258
  "required": [
@@ -10530,6 +12432,31 @@
10530
12432
  "required": [
10531
12433
  "elementText"
10532
12434
  ]
12435
+ },
12436
+ {
12437
+ "required": [
12438
+ "elementId"
12439
+ ]
12440
+ },
12441
+ {
12442
+ "required": [
12443
+ "elementTestId"
12444
+ ]
12445
+ },
12446
+ {
12447
+ "required": [
12448
+ "elementClass"
12449
+ ]
12450
+ },
12451
+ {
12452
+ "required": [
12453
+ "elementAttribute"
12454
+ ]
12455
+ },
12456
+ {
12457
+ "required": [
12458
+ "elementAria"
12459
+ ]
10533
12460
  }
10534
12461
  ],
10535
12462
  "properties": {
@@ -10541,6 +12468,49 @@
10541
12468
  "type": "string",
10542
12469
  "description": "Selector of the element to screenshot."
10543
12470
  },
12471
+ "elementId": {
12472
+ "type": "string",
12473
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
12474
+ },
12475
+ "elementTestId": {
12476
+ "type": "string",
12477
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
12478
+ },
12479
+ "elementClass": {
12480
+ "anyOf": [
12481
+ {
12482
+ "type": "string"
12483
+ },
12484
+ {
12485
+ "type": "array",
12486
+ "items": {
12487
+ "type": "string"
12488
+ }
12489
+ }
12490
+ ],
12491
+ "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."
12492
+ },
12493
+ "elementAttribute": {
12494
+ "type": "object",
12495
+ "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.",
12496
+ "additionalProperties": {
12497
+ "anyOf": [
12498
+ {
12499
+ "type": "string"
12500
+ },
12501
+ {
12502
+ "type": "number"
12503
+ },
12504
+ {
12505
+ "type": "boolean"
12506
+ }
12507
+ ]
12508
+ }
12509
+ },
12510
+ "elementAria": {
12511
+ "type": "string",
12512
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
12513
+ },
10544
12514
  "padding": {
10545
12515
  "anyOf": [
10546
12516
  {
@@ -10658,6 +12628,31 @@
10658
12628
  "required": [
10659
12629
  "elementText"
10660
12630
  ]
12631
+ },
12632
+ {
12633
+ "required": [
12634
+ "elementId"
12635
+ ]
12636
+ },
12637
+ {
12638
+ "required": [
12639
+ "elementTestId"
12640
+ ]
12641
+ },
12642
+ {
12643
+ "required": [
12644
+ "elementClass"
12645
+ ]
12646
+ },
12647
+ {
12648
+ "required": [
12649
+ "elementAttribute"
12650
+ ]
12651
+ },
12652
+ {
12653
+ "required": [
12654
+ "elementAria"
12655
+ ]
10661
12656
  }
10662
12657
  ],
10663
12658
  "properties": {
@@ -10669,6 +12664,49 @@
10669
12664
  "type": "string",
10670
12665
  "description": "Selector of the element to screenshot."
10671
12666
  },
12667
+ "elementId": {
12668
+ "type": "string",
12669
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
12670
+ },
12671
+ "elementTestId": {
12672
+ "type": "string",
12673
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
12674
+ },
12675
+ "elementClass": {
12676
+ "anyOf": [
12677
+ {
12678
+ "type": "string"
12679
+ },
12680
+ {
12681
+ "type": "array",
12682
+ "items": {
12683
+ "type": "string"
12684
+ }
12685
+ }
12686
+ ],
12687
+ "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."
12688
+ },
12689
+ "elementAttribute": {
12690
+ "type": "object",
12691
+ "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.",
12692
+ "additionalProperties": {
12693
+ "anyOf": [
12694
+ {
12695
+ "type": "string"
12696
+ },
12697
+ {
12698
+ "type": "number"
12699
+ },
12700
+ {
12701
+ "type": "boolean"
12702
+ }
12703
+ ]
12704
+ }
12705
+ },
12706
+ "elementAria": {
12707
+ "type": "string",
12708
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
12709
+ },
10672
12710
  "padding": {
10673
12711
  "anyOf": [
10674
12712
  {
@@ -10725,6 +12763,31 @@
10725
12763
  "required": [
10726
12764
  "elementText"
10727
12765
  ]
12766
+ },
12767
+ {
12768
+ "required": [
12769
+ "elementId"
12770
+ ]
12771
+ },
12772
+ {
12773
+ "required": [
12774
+ "elementTestId"
12775
+ ]
12776
+ },
12777
+ {
12778
+ "required": [
12779
+ "elementClass"
12780
+ ]
12781
+ },
12782
+ {
12783
+ "required": [
12784
+ "elementAttribute"
12785
+ ]
12786
+ },
12787
+ {
12788
+ "required": [
12789
+ "elementAria"
12790
+ ]
10728
12791
  }
10729
12792
  ],
10730
12793
  "properties": {
@@ -10736,6 +12799,49 @@
10736
12799
  "type": "string",
10737
12800
  "description": "Selector of the element to screenshot."
10738
12801
  },
12802
+ "elementId": {
12803
+ "type": "string",
12804
+ "description": "ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
12805
+ },
12806
+ "elementTestId": {
12807
+ "type": "string",
12808
+ "description": "data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax."
12809
+ },
12810
+ "elementClass": {
12811
+ "anyOf": [
12812
+ {
12813
+ "type": "string"
12814
+ },
12815
+ {
12816
+ "type": "array",
12817
+ "items": {
12818
+ "type": "string"
12819
+ }
12820
+ }
12821
+ ],
12822
+ "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."
12823
+ },
12824
+ "elementAttribute": {
12825
+ "type": "object",
12826
+ "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.",
12827
+ "additionalProperties": {
12828
+ "anyOf": [
12829
+ {
12830
+ "type": "string"
12831
+ },
12832
+ {
12833
+ "type": "number"
12834
+ },
12835
+ {
12836
+ "type": "boolean"
12837
+ }
12838
+ ]
12839
+ }
12840
+ },
12841
+ "elementAria": {
12842
+ "type": "string",
12843
+ "description": "Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax."
12844
+ },
10739
12845
  "padding": {
10740
12846
  "anyOf": [
10741
12847
  {