playwright-cucumber-ts-steps 1.3.0 → 1.3.1

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 (64) hide show
  1. package/dist/backend/actions/click.d.ts +84 -0
  2. package/dist/backend/actions/click.d.ts.map +1 -1
  3. package/dist/backend/actions/click.js +152 -2
  4. package/dist/backend/actions/form.d.ts +6 -0
  5. package/dist/backend/actions/form.d.ts.map +1 -1
  6. package/dist/backend/actions/form.js +16 -0
  7. package/dist/backend/actions/index.d.ts +2 -0
  8. package/dist/backend/actions/index.d.ts.map +1 -1
  9. package/dist/backend/actions/index.js +2 -0
  10. package/dist/backend/actions/interactions.d.ts +14 -5
  11. package/dist/backend/actions/interactions.d.ts.map +1 -1
  12. package/dist/backend/actions/interactions.js +65 -9
  13. package/dist/backend/actions/misc.d.ts +8 -2
  14. package/dist/backend/actions/misc.d.ts.map +1 -1
  15. package/dist/backend/actions/misc.js +52 -4
  16. package/dist/backend/actions/visual.d.ts +47 -0
  17. package/dist/backend/actions/visual.d.ts.map +1 -0
  18. package/dist/backend/actions/visual.js +97 -0
  19. package/dist/backend/actions/waits.d.ts +6 -0
  20. package/dist/backend/actions/waits.d.ts.map +1 -1
  21. package/dist/backend/actions/waits.js +13 -0
  22. package/dist/backend/assertions/document.d.ts +61 -0
  23. package/dist/backend/assertions/document.d.ts.map +1 -0
  24. package/dist/backend/assertions/document.js +166 -0
  25. package/dist/backend/assertions/elements.d.ts +163 -0
  26. package/dist/backend/assertions/elements.d.ts.map +1 -0
  27. package/dist/backend/assertions/elements.js +441 -0
  28. package/dist/backend/assertions/forms.d.ts +43 -0
  29. package/dist/backend/assertions/forms.d.ts.map +1 -0
  30. package/dist/backend/assertions/forms.js +126 -0
  31. package/dist/backend/assertions/index.d.ts +10 -0
  32. package/dist/backend/assertions/index.d.ts.map +1 -1
  33. package/dist/backend/assertions/index.js +10 -0
  34. package/dist/backend/assertions/storage.d.ts +67 -0
  35. package/dist/backend/assertions/storage.d.ts.map +1 -0
  36. package/dist/backend/assertions/storage.js +220 -0
  37. package/dist/backend/assertions/text.d.ts +103 -12
  38. package/dist/backend/assertions/text.d.ts.map +1 -1
  39. package/dist/backend/assertions/text.js +207 -28
  40. package/dist/backend/assertions/visibility.d.ts +18 -0
  41. package/dist/backend/assertions/visibility.d.ts.map +1 -1
  42. package/dist/backend/assertions/visibility.js +46 -0
  43. package/dist/backend/db/steps.d.ts +1 -1
  44. package/dist/backend/db/steps.d.ts.map +1 -1
  45. package/dist/backend/db/steps.js +1 -1
  46. package/dist/backend/elements/find.js +2 -0
  47. package/dist/backend/utils/fixtures.js +1 -1
  48. package/dist/backend/utils/resolver.d.ts +6 -0
  49. package/dist/backend/utils/resolver.d.ts.map +1 -0
  50. package/dist/backend/utils/resolver.js +19 -0
  51. package/dist/component/index.d.ts +3 -0
  52. package/dist/component/index.d.ts.map +1 -0
  53. package/dist/component/index.js +6 -0
  54. package/dist/component/runner.d.ts +18 -0
  55. package/dist/component/runner.d.ts.map +1 -0
  56. package/dist/component/runner.js +58 -0
  57. package/dist/core/runner.d.ts +1 -0
  58. package/dist/core/runner.d.ts.map +1 -1
  59. package/dist/core/runner.js +178 -123
  60. package/dist/index.d.ts +2 -0
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js +3 -1
  63. package/dist/metadata.json +401 -9
  64. package/package.json +2 -2
@@ -1,90 +1,174 @@
1
1
  /**
2
2
  * Clicks on the currently stored (active) element.
3
+ * @param page - The Playwright page object
4
+ * @param table - Optional table data for click options
3
5
  * @example When I click
4
6
  */
5
7
  export declare function clickStoredElement(page: any, table?: any): Promise<void>;
6
8
  /**
7
9
  * Clicks on an element matching the given CSS/XPath selector.
8
10
  * Supports fixtures for reusable selectors.
11
+ * @param page - The Playwright page object
12
+ * @param selectorKey - The selector key (can be a fixture key or raw CSS/XPath selector)
13
+ * @param table - Optional table data for click options
9
14
  * @example When I click on element ".my-element"
10
15
  * When I click on element "login.submitButton"
11
16
  */
12
17
  export declare function clickElementBySelector(page: any, selectorKey: string, table?: any): Promise<void>;
13
18
  /**
14
19
  * Clicks on a button role element with the specified label.
20
+ * @param page - The Playwright page object
21
+ * @param label - The button label text
22
+ * @param table - Optional table data for click options
15
23
  * @example When I click on button "Submit"
16
24
  */
17
25
  export declare function clickButtonByLabel(page: any, label: string, table?: any): Promise<void>;
26
+ /**
27
+ * Clicks on a button role element with the EXACT specified text.
28
+ * @example When I click on exact button text "Submit"
29
+ */
30
+ export declare function clickButtonByExactText(page: any, exactText: string, table?: any): Promise<void>;
18
31
  /**
19
32
  * Clicks on a link role element with the specified text.
33
+ * @param page - The Playwright page object
34
+ * @param text - The link text
35
+ * @param table - Optional table data for click options
20
36
  * @example When I click on link "Home"
21
37
  */
22
38
  export declare function clickLinkByText(page: any, text: string, table?: any): Promise<void>;
23
39
  /**
24
40
  * Clicks on a form label element.
41
+ * @param page - The Playwright page object
42
+ * @param labelText - The label text
43
+ * @param table - Optional table data for click options
25
44
  * @example When I click on label "Email"
26
45
  */
27
46
  export declare function clickLabelByText(page: any, labelText: string, table?: any): Promise<void>;
28
47
  /**
29
48
  * Clicks on the first visible element containing the specified text (partial match).
49
+ * @param page - The Playwright page object
50
+ * @param rawText - The text to search for (can be a variable alias starting with @)
51
+ * @param table - Optional table data for click options
30
52
  * @example When I click on text "Login"
31
53
  */
32
54
  export declare function clickByText(page: any, rawText: string, table?: any): Promise<void>;
33
55
  /**
34
56
  * Clicks on an element containing the EXACT specified text.
57
+ * @param page - The Playwright page object
58
+ * @param exactText - The exact text to match
59
+ * @param table - Optional table data for click options
35
60
  * @example When I click on exact text "Submit"
36
61
  */
37
62
  export declare function clickByExactText(page: any, exactText: string, table?: any): Promise<void>;
38
63
  /**
39
64
  * Clicks on a selector provided via Regex match.
65
+ * @param page - The Playwright page object
66
+ * @param selector - The CSS selector string
40
67
  * @example When I click on selector "#btn-id"
41
68
  */
42
69
  export declare function clickByRegexSelector(page: any, selector: string): Promise<void>;
43
70
  /**
44
71
  * Iterates through ALL currently stored active elements and clicks them one by one.
72
+ * @param page - The Playwright page object
73
+ * @param table - Optional table data for click options
45
74
  * @example When I click all
46
75
  */
47
76
  export declare function clickAllStoredElements(page: any, table?: any): Promise<void>;
48
77
  /**
49
78
  * Double-clicks on the currently stored (active) element.
79
+ * @param page - The Playwright page object
80
+ * @param table - Optional table data for click options
50
81
  * @example When I double click
51
82
  */
52
83
  export declare function doubleClickStoredElement(page: any, table?: any): Promise<void>;
53
84
  /**
54
85
  * Double-clicks on the first element containing the specified text.
86
+ * @param page - The Playwright page object
87
+ * @param text - The text to search for
88
+ * @param table - Optional table data for click options
55
89
  * @example When I double click on text "Button"
56
90
  */
57
91
  export declare function doubleClickByText(page: any, text: string, table?: any): Promise<void>;
92
+ /**
93
+ * Double-clicks on the first element containing the EXACT specified text.
94
+ * @example When I double click on exact text "Button"
95
+ */
96
+ export declare function doubleClickByExactText(page: any, exactText: string, table?: any): Promise<void>;
58
97
  /**
59
98
  * Double-clicks at specific X, Y coordinates on the page.
99
+ * @param page - The Playwright page object
100
+ * @param x - The X coordinate
101
+ * @param y - The Y coordinate
102
+ * @param table - Optional table data for click options
60
103
  * @example When I double click position 100 200
61
104
  */
62
105
  export declare function doubleClickPosition(page: any, x: number, y: number, table?: any): Promise<void>;
63
106
  /**
64
107
  * Right-clicks (Context Click) on the currently stored element.
108
+ * @param page - The Playwright page object
109
+ * @param table - Optional table data for click options
65
110
  * @example When I right click
66
111
  */
67
112
  export declare function rightClickStoredElement(page: any, table?: any): Promise<void>;
68
113
  /**
69
114
  * Right-clicks on the first element containing the specified text.
115
+ * @param page - The Playwright page object
116
+ * @param text - The text to search for
117
+ * @param table - Optional table data for click options
70
118
  * @example When I right click on text "Menu"
71
119
  */
72
120
  export declare function rightClickByText(page: any, text: string, table?: any): Promise<void>;
73
121
  /**
74
122
  * Right-clicks at specific X, Y coordinates on the page.
123
+ * @param page - The Playwright page object
124
+ * @param x - The X coordinate
125
+ * @param y - The Y coordinate
126
+ * @param table - Optional table data for click options
75
127
  * @example When I right click position 100 200
76
128
  */
77
129
  export declare function rightClickPosition(page: any, x: number, y: number, table?: any): Promise<void>;
78
130
  /**
79
131
  * Clicks on the Nth element containing the specified text.
80
132
  * Handles 1st, 2nd, 3rd, 4th, etc.
133
+ * @param page - The Playwright page object
134
+ * @param indexStr - The index string (1st, 2nd, 3rd, etc.)
135
+ * @param text - The text to search for
136
+ * @param table - Optional table data for click options
81
137
  * @example When I click on 1st element "Login"
82
138
  * When I click on 2nd element "Submit"
83
139
  */
84
140
  export declare function clickNthElementByText(page: any, indexStr: string, text: string, table?: any): Promise<void>;
85
141
  /**
86
142
  * Clicks on the Nth element matching a CSS or XPath selector.
143
+ * @param page - The Playwright page object
144
+ * @param indexStr - The index string (1st, 2nd, 3rd, etc.)
145
+ * @param selectorKey - The selector key (can be a fixture key or raw CSS/XPath selector)
146
+ * @param table - Optional table data for click options
87
147
  * @example When I click on 1st selector ".btn"
88
148
  */
89
149
  export declare function clickNthElementBySelector(page: any, indexStr: string, selectorKey: string, table?: any): Promise<void>;
150
+ /**
151
+ * Clicks on a specific column in a specific row of a table.
152
+ * @param page - The Playwright page object
153
+ * @param columnIndex - The 1-based index of the column to click (1st, 2nd, 3rd, etc.)
154
+ * @param rowIndex - The selector key for the row (can be a fixture key or raw CSS selector)
155
+ * @param table - Optional table data for click options
156
+ * @example And I click on column 1 in row 1
157
+ * @example And I click on column 2 in row 3
158
+ * @example And I click on column 3 in row 2
159
+ * @example And I click on column 4 in row 5
160
+ */
161
+ export declare function clickOnColumnInRow(page: any, columnIndex: number, rowIndex: number, table?: any): Promise<void>;
162
+ /**
163
+ * Clicks on a specific column in a row identified by a selector.
164
+ * @param page - The Playwright page object
165
+ * @param columnIndex - The 1-based index of the column to click
166
+ * @param rowSelectorKey - The selector key for the row (can be a fixture key or raw CSS selector)
167
+ * @param table - Optional table data for click options
168
+ * @example When I click on 1st column in row "table#users tbody tr:first-child"
169
+ * @example When I click on 2nd column in row "tr.user-row"
170
+ * @example When I click on 3rd column in row ".data-table tbody tr:last-child"
171
+ * @example When I click on 4th column in row "tr[data-id='123']"
172
+ */
173
+ export declare function clickOnNthColumnInRow(page: any, columnIndex: number, rowSelectorKey: string, table?: any): Promise<void>;
90
174
  //# sourceMappingURL=click.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"click.d.ts","sourceRoot":"","sources":["../../../src/backend/actions/click.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"click.d.ts","sourceRoot":"","sources":["../../../src/backend/actions/click.ts"],"names":[],"mappings":"AAeA;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAK9E;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,GAAG,EACT,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,GAAG,GACV,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAM7F;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAMrG;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAMzF;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAM/F;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBxF;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ/F;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKrF;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAclF;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAKpF;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAK3F;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAKrG;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,GAAG,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,CAAC,EAAE,GAAG,GACV,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAKnF;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAK1F;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,GAAG,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,CAAC,EAAE,GAAG,GACV,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,GAAG,EACT,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,GAAG,GACV,OAAO,CAAC,IAAI,CAAC,CAYf;AAED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,GAAG,EACT,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,GAAG,GACV,OAAO,CAAC,IAAI,CAAC,CAef;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,GAAG,EACT,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,GAAG,GACV,OAAO,CAAC,IAAI,CAAC,CAef;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,GAAG,EACT,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,KAAK,CAAC,EAAE,GAAG,GACV,OAAO,CAAC,IAAI,CAAC,CAmBf"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.clickStoredElement = clickStoredElement;
4
4
  exports.clickElementBySelector = clickElementBySelector;
5
5
  exports.clickButtonByLabel = clickButtonByLabel;
6
+ exports.clickButtonByExactText = clickButtonByExactText;
6
7
  exports.clickLinkByText = clickLinkByText;
7
8
  exports.clickLabelByText = clickLabelByText;
8
9
  exports.clickByText = clickByText;
@@ -11,12 +12,15 @@ exports.clickByRegexSelector = clickByRegexSelector;
11
12
  exports.clickAllStoredElements = clickAllStoredElements;
12
13
  exports.doubleClickStoredElement = doubleClickStoredElement;
13
14
  exports.doubleClickByText = doubleClickByText;
15
+ exports.doubleClickByExactText = doubleClickByExactText;
14
16
  exports.doubleClickPosition = doubleClickPosition;
15
17
  exports.rightClickStoredElement = rightClickStoredElement;
16
18
  exports.rightClickByText = rightClickByText;
17
19
  exports.rightClickPosition = rightClickPosition;
18
20
  exports.clickNthElementByText = clickNthElementByText;
19
21
  exports.clickNthElementBySelector = clickNthElementBySelector;
22
+ exports.clickOnColumnInRow = clickOnColumnInRow;
23
+ exports.clickOnNthColumnInRow = clickOnNthColumnInRow;
20
24
  //src/backend/actions/click.ts
21
25
  const registry_1 = require("../../core/registry");
22
26
  const fixtures_1 = require("../utils/fixtures");
@@ -26,6 +30,8 @@ const state_1 = require("../utils/state");
26
30
  // ==================================================
27
31
  /**
28
32
  * Clicks on the currently stored (active) element.
33
+ * @param page - The Playwright page object
34
+ * @param table - Optional table data for click options
29
35
  * @example When I click
30
36
  */
31
37
  async function clickStoredElement(page, table) {
@@ -37,6 +43,9 @@ async function clickStoredElement(page, table) {
37
43
  /**
38
44
  * Clicks on an element matching the given CSS/XPath selector.
39
45
  * Supports fixtures for reusable selectors.
46
+ * @param page - The Playwright page object
47
+ * @param selectorKey - The selector key (can be a fixture key or raw CSS/XPath selector)
48
+ * @param table - Optional table data for click options
40
49
  * @example When I click on element ".my-element"
41
50
  * When I click on element "login.submitButton"
42
51
  */
@@ -52,6 +61,9 @@ async function clickElementBySelector(page, selectorKey, table) {
52
61
  }
53
62
  /**
54
63
  * Clicks on a button role element with the specified label.
64
+ * @param page - The Playwright page object
65
+ * @param label - The button label text
66
+ * @param table - Optional table data for click options
55
67
  * @example When I click on button "Submit"
56
68
  */
57
69
  async function clickButtonByLabel(page, label, table) {
@@ -61,8 +73,22 @@ async function clickButtonByLabel(page, label, table) {
61
73
  (0, state_1.setActiveElement)(page, button);
62
74
  console.log(`🖱️ Clicked on button "${label}"`);
63
75
  }
76
+ /**
77
+ * Clicks on a button role element with the EXACT specified text.
78
+ * @example When I click on exact button text "Submit"
79
+ */
80
+ async function clickButtonByExactText(page, exactText, table) {
81
+ const options = (0, state_1.parseClickOptions)(table);
82
+ const button = page.getByRole("button", { name: exactText });
83
+ await button.click(options);
84
+ (0, state_1.setActiveElement)(page, button);
85
+ console.log(`🖱️ Clicked on exact button text "${exactText}"`);
86
+ }
64
87
  /**
65
88
  * Clicks on a link role element with the specified text.
89
+ * @param page - The Playwright page object
90
+ * @param text - The link text
91
+ * @param table - Optional table data for click options
66
92
  * @example When I click on link "Home"
67
93
  */
68
94
  async function clickLinkByText(page, text, table) {
@@ -74,6 +100,9 @@ async function clickLinkByText(page, text, table) {
74
100
  }
75
101
  /**
76
102
  * Clicks on a form label element.
103
+ * @param page - The Playwright page object
104
+ * @param labelText - The label text
105
+ * @param table - Optional table data for click options
77
106
  * @example When I click on label "Email"
78
107
  */
79
108
  async function clickLabelByText(page, labelText, table) {
@@ -85,6 +114,9 @@ async function clickLabelByText(page, labelText, table) {
85
114
  }
86
115
  /**
87
116
  * Clicks on the first visible element containing the specified text (partial match).
117
+ * @param page - The Playwright page object
118
+ * @param rawText - The text to search for (can be a variable alias starting with @)
119
+ * @param table - Optional table data for click options
88
120
  * @example When I click on text "Login"
89
121
  */
90
122
  async function clickByText(page, rawText, table) {
@@ -107,6 +139,9 @@ async function clickByText(page, rawText, table) {
107
139
  }
108
140
  /**
109
141
  * Clicks on an element containing the EXACT specified text.
142
+ * @param page - The Playwright page object
143
+ * @param exactText - The exact text to match
144
+ * @param table - Optional table data for click options
110
145
  * @example When I click on exact text "Submit"
111
146
  */
112
147
  async function clickByExactText(page, exactText, table) {
@@ -119,6 +154,8 @@ async function clickByExactText(page, exactText, table) {
119
154
  }
120
155
  /**
121
156
  * Clicks on a selector provided via Regex match.
157
+ * @param page - The Playwright page object
158
+ * @param selector - The CSS selector string
122
159
  * @example When I click on selector "#btn-id"
123
160
  */
124
161
  async function clickByRegexSelector(page, selector) {
@@ -129,6 +166,8 @@ async function clickByRegexSelector(page, selector) {
129
166
  }
130
167
  /**
131
168
  * Iterates through ALL currently stored active elements and clicks them one by one.
169
+ * @param page - The Playwright page object
170
+ * @param table - Optional table data for click options
132
171
  * @example When I click all
133
172
  */
134
173
  async function clickAllStoredElements(page, table) {
@@ -147,6 +186,8 @@ async function clickAllStoredElements(page, table) {
147
186
  }
148
187
  /**
149
188
  * Double-clicks on the currently stored (active) element.
189
+ * @param page - The Playwright page object
190
+ * @param table - Optional table data for click options
150
191
  * @example When I double click
151
192
  */
152
193
  async function doubleClickStoredElement(page, table) {
@@ -157,6 +198,9 @@ async function doubleClickStoredElement(page, table) {
157
198
  }
158
199
  /**
159
200
  * Double-clicks on the first element containing the specified text.
201
+ * @param page - The Playwright page object
202
+ * @param text - The text to search for
203
+ * @param table - Optional table data for click options
160
204
  * @example When I double click on text "Button"
161
205
  */
162
206
  async function doubleClickByText(page, text, table) {
@@ -165,8 +209,22 @@ async function doubleClickByText(page, text, table) {
165
209
  await element.dblclick(options);
166
210
  console.log(`🖱️ Double-clicked on text "${text}"`);
167
211
  }
212
+ /**
213
+ * Double-clicks on the first element containing the EXACT specified text.
214
+ * @example When I double click on exact text "Button"
215
+ */
216
+ async function doubleClickByExactText(page, exactText, table) {
217
+ const options = (0, state_1.parseClickOptions)(table);
218
+ const element = page.getByText(exactText, { exact: true });
219
+ await element.dblclick(options);
220
+ console.log(`🖱️ Double-clicked on exact text "${exactText}"`);
221
+ }
168
222
  /**
169
223
  * Double-clicks at specific X, Y coordinates on the page.
224
+ * @param page - The Playwright page object
225
+ * @param x - The X coordinate
226
+ * @param y - The Y coordinate
227
+ * @param table - Optional table data for click options
170
228
  * @example When I double click position 100 200
171
229
  */
172
230
  async function doubleClickPosition(page, x, y, table) {
@@ -176,6 +234,8 @@ async function doubleClickPosition(page, x, y, table) {
176
234
  }
177
235
  /**
178
236
  * Right-clicks (Context Click) on the currently stored element.
237
+ * @param page - The Playwright page object
238
+ * @param table - Optional table data for click options
179
239
  * @example When I right click
180
240
  */
181
241
  async function rightClickStoredElement(page, table) {
@@ -186,6 +246,9 @@ async function rightClickStoredElement(page, table) {
186
246
  }
187
247
  /**
188
248
  * Right-clicks on the first element containing the specified text.
249
+ * @param page - The Playwright page object
250
+ * @param text - The text to search for
251
+ * @param table - Optional table data for click options
189
252
  * @example When I right click on text "Menu"
190
253
  */
191
254
  async function rightClickByText(page, text, table) {
@@ -196,6 +259,10 @@ async function rightClickByText(page, text, table) {
196
259
  }
197
260
  /**
198
261
  * Right-clicks at specific X, Y coordinates on the page.
262
+ * @param page - The Playwright page object
263
+ * @param x - The X coordinate
264
+ * @param y - The Y coordinate
265
+ * @param table - Optional table data for click options
199
266
  * @example When I right click position 100 200
200
267
  */
201
268
  async function rightClickPosition(page, x, y, table) {
@@ -206,6 +273,10 @@ async function rightClickPosition(page, x, y, table) {
206
273
  /**
207
274
  * Clicks on the Nth element containing the specified text.
208
275
  * Handles 1st, 2nd, 3rd, 4th, etc.
276
+ * @param page - The Playwright page object
277
+ * @param indexStr - The index string (1st, 2nd, 3rd, etc.)
278
+ * @param text - The text to search for
279
+ * @param table - Optional table data for click options
209
280
  * @example When I click on 1st element "Login"
210
281
  * When I click on 2nd element "Submit"
211
282
  */
@@ -221,6 +292,10 @@ async function clickNthElementByText(page, indexStr, text, table) {
221
292
  }
222
293
  /**
223
294
  * Clicks on the Nth element matching a CSS or XPath selector.
295
+ * @param page - The Playwright page object
296
+ * @param indexStr - The index string (1st, 2nd, 3rd, etc.)
297
+ * @param selectorKey - The selector key (can be a fixture key or raw CSS/XPath selector)
298
+ * @param table - Optional table data for click options
224
299
  * @example When I click on 1st selector ".btn"
225
300
  */
226
301
  async function clickNthElementBySelector(page, indexStr, selectorKey, table) {
@@ -235,12 +310,75 @@ async function clickNthElementBySelector(page, indexStr, selectorKey, table) {
235
310
  (0, state_1.setActiveElement)(page, locator);
236
311
  console.log(`🖱️ Clicked on ${indexStr} selector "${selector}"`);
237
312
  }
313
+ /**
314
+ * Clicks on a specific column in a specific row of a table.
315
+ * @param page - The Playwright page object
316
+ * @param columnIndex - The 1-based index of the column to click (1st, 2nd, 3rd, etc.)
317
+ * @param rowIndex - The selector key for the row (can be a fixture key or raw CSS selector)
318
+ * @param table - Optional table data for click options
319
+ * @example And I click on column 1 in row 1
320
+ * @example And I click on column 2 in row 3
321
+ * @example And I click on column 3 in row 2
322
+ * @example And I click on column 4 in row 5
323
+ */
324
+ async function clickOnColumnInRow(page, columnIndex, rowIndex, table) {
325
+ const options = (0, state_1.parseClickOptions)(table);
326
+ // Adjust for 0-based indexing
327
+ const adjustedRowIndex = rowIndex - 1;
328
+ const adjustedColumnIndex = columnIndex - 1;
329
+ // Assuming standard table structure: table > tbody > tr > td/th
330
+ const cellLocator = page.locator(`tbody tr:nth-child(${adjustedRowIndex + 1}) td:nth-child(${adjustedColumnIndex + 1}), tbody tr:nth-child(${adjustedRowIndex + 1}) th:nth-child(${adjustedColumnIndex + 1})`);
331
+ await cellLocator.waitFor({ state: "visible", timeout: options.timeout || 5000 });
332
+ await cellLocator.click(options);
333
+ (0, state_1.setActiveElement)(page, cellLocator);
334
+ console.log(`🖱️ Clicked on column ${columnIndex} in row ${rowIndex}`);
335
+ }
336
+ /**
337
+ * Clicks on a specific column in a row identified by a selector.
338
+ * @param page - The Playwright page object
339
+ * @param columnIndex - The 1-based index of the column to click
340
+ * @param rowSelectorKey - The selector key for the row (can be a fixture key or raw CSS selector)
341
+ * @param table - Optional table data for click options
342
+ * @example When I click on 1st column in row "table#users tbody tr:first-child"
343
+ * @example When I click on 2nd column in row "tr.user-row"
344
+ * @example When I click on 3rd column in row ".data-table tbody tr:last-child"
345
+ * @example When I click on 4th column in row "tr[data-id='123']"
346
+ */
347
+ async function clickOnNthColumnInRow(page, columnIndex, rowSelectorKey, table) {
348
+ const options = (0, state_1.parseClickOptions)(table);
349
+ // Resolve selector from fixtures or use raw value
350
+ const selectors = (0, fixtures_1.loadFixture)("selectors.json");
351
+ const rowSelector = (0, fixtures_1.getFixtureValue)(selectors, rowSelectorKey);
352
+ // Adjust for 0-based indexing
353
+ const adjustedColumnIndex = columnIndex - 1;
354
+ // Find the specific row and then the nth column within that row
355
+ const rowLocator = page.locator(rowSelector);
356
+ const cellLocator = rowLocator.locator(`td:nth-child(${adjustedColumnIndex + 1}), th:nth-child(${adjustedColumnIndex + 1})`);
357
+ await cellLocator.waitFor({ state: "visible", timeout: options.timeout || 5000 });
358
+ await cellLocator.click(options);
359
+ (0, state_1.setActiveElement)(page, cellLocator);
360
+ console.log(`🖱️ Clicked on ${columnIndex}${getOrdinalSuffix(columnIndex)} column in row "${rowSelector}"`);
361
+ }
362
+ /**
363
+ * Helper function to get the ordinal suffix (st, nd, rd, th) for a number
364
+ */
365
+ function getOrdinalSuffix(num) {
366
+ if (num > 3 && num < 21)
367
+ return 'th';
368
+ switch (num % 10) {
369
+ case 1: return 'st';
370
+ case 2: return 'nd';
371
+ case 3: return 'rd';
372
+ default: return 'th';
373
+ }
374
+ }
238
375
  // ==================================================
239
376
  // GLUE STEPS
240
377
  // ==================================================
241
378
  (0, registry_1.Step)("I click", clickStoredElement, "When");
242
379
  (0, registry_1.Step)("I click on element {string}", clickElementBySelector, "When");
243
380
  (0, registry_1.Step)("I click on button {string}", clickButtonByLabel, "When");
381
+ (0, registry_1.Step)("I click on exact button text {string}", clickButtonByExactText, "When");
244
382
  (0, registry_1.Step)("I click on link {string}", clickLinkByText, "When");
245
383
  (0, registry_1.Step)("I click on label {string}", clickLabelByText, "When");
246
384
  (0, registry_1.Step)("I click on text {string}", clickByText, "When");
@@ -249,9 +387,21 @@ async function clickNthElementBySelector(page, indexStr, selectorKey, table) {
249
387
  (0, registry_1.Step)("I click all", clickAllStoredElements, "When");
250
388
  (0, registry_1.Step)("I double click", doubleClickStoredElement, "When");
251
389
  (0, registry_1.Step)("I double click on text {string}", doubleClickByText, "When");
390
+ (0, registry_1.Step)("I double click on exact text {string}", doubleClickByExactText, "When");
252
391
  (0, registry_1.Step)("I double click position {int} {int}", doubleClickPosition, "When");
253
392
  (0, registry_1.Step)("I right click", rightClickStoredElement, "When");
254
393
  (0, registry_1.Step)("I right click on text {string}", rightClickByText, "When");
255
394
  (0, registry_1.Step)("I right click position {int} {int}", rightClickPosition, "When");
256
- (0, registry_1.Step)("I click on {int}(?:st|nd|rd|th) element {string}", clickNthElementByText, "When");
257
- (0, registry_1.Step)("I click on {int}(?:st|nd|rd|th) selector {string}", clickNthElementBySelector, "When");
395
+ (0, registry_1.Step)("I click on {int}st element {string}", clickNthElementByText, "When");
396
+ (0, registry_1.Step)("I click on {int}nd element {string}", clickNthElementByText, "When");
397
+ (0, registry_1.Step)("I click on {int}rd element {string}", clickNthElementByText, "When");
398
+ (0, registry_1.Step)("I click on {int}th element {string}", clickNthElementByText, "When");
399
+ (0, registry_1.Step)("I click on {int}st selector {string}", clickNthElementBySelector, "When");
400
+ (0, registry_1.Step)("I click on {int}nd selector {string}", clickNthElementBySelector, "When");
401
+ (0, registry_1.Step)("I click on {int}rd selector {string}", clickNthElementBySelector, "When");
402
+ (0, registry_1.Step)("I click on {int}th selector {string}", clickNthElementBySelector, "When");
403
+ (0, registry_1.Step)("I click on column {int} in row {int}", clickOnColumnInRow, "And");
404
+ (0, registry_1.Step)("I click on {int}st column in row {string}", clickOnNthColumnInRow, "When");
405
+ (0, registry_1.Step)("I click on {int}nd column in row {string}", clickOnNthColumnInRow, "When");
406
+ (0, registry_1.Step)("I click on {int}rd column in row {string}", clickOnNthColumnInRow, "When");
407
+ (0, registry_1.Step)("I click on {int}th column in row {string}", clickOnNthColumnInRow, "When");
@@ -16,4 +16,10 @@
16
16
  * @param table - The Data Table provided in the step definition.
17
17
  */
18
18
  export declare function fillFormData(page: any, formName: string, table: any): Promise<void>;
19
+ /**
20
+ * Selects an option from a React select component.
21
+ * This handles React's custom select implementations that may not use standard <select> elements.
22
+ * @example When I select react option "Option 3" from "#react-select-id"
23
+ */
24
+ export declare function selectReactOption(page: any, optionText: string, selectorKey: string): Promise<void>;
19
25
  //# sourceMappingURL=form.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../../src/backend/actions/form.ts"],"names":[],"mappings":"AA4FA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAmIzF"}
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../../src/backend/actions/form.ts"],"names":[],"mappings":"AA4FA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAmIzF;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWzG"}
@@ -34,6 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.fillFormData = fillFormData;
37
+ exports.selectReactOption = selectReactOption;
37
38
  //src/backend/actions/form.ts
38
39
  const fs = __importStar(require("fs"));
39
40
  const path = __importStar(require("path"));
@@ -222,7 +223,22 @@ async function fillFormData(page, formName, table) {
222
223
  console.log(`✍️ Filled ${target} with "${resolvedValue}"`);
223
224
  }
224
225
  }
226
+ /**
227
+ * Selects an option from a React select component.
228
+ * This handles React's custom select implementations that may not use standard <select> elements.
229
+ * @example When I select react option "Option 3" from "#react-select-id"
230
+ */
231
+ async function selectReactOption(page, optionText, selectorKey) {
232
+ const selectors = (0, fixtures_1.loadFixture)("selectors.json");
233
+ const selector = (0, fixtures_1.getFixtureValue)(selectors, selectorKey);
234
+ // Click the select dropdown to reveal options
235
+ await page.locator(selector).click();
236
+ // Wait for options to appear and then click the desired option
237
+ await page.locator(`text=${optionText}`).click();
238
+ console.log(`✅ Selected react option "${optionText}" from "${selector}"`);
239
+ }
225
240
  // ==================================================
226
241
  // GLUE STEPS
227
242
  // ==================================================
228
243
  (0, registry_1.Step)("I fill the following {string} form data", fillFormData, "When");
244
+ (0, registry_1.Step)("I select react option {string} from {string}", selectReactOption, "When");
@@ -7,6 +7,7 @@ export * from "./form";
7
7
  export * from "./mouse";
8
8
  export * from "./misc";
9
9
  export * from "./mobile";
10
+ export * from "./visual";
10
11
  export * from "./waits";
11
12
  export * from "./frames";
12
13
  export * from "./keyboard";
@@ -19,6 +20,7 @@ import "./form";
19
20
  import "./mouse";
20
21
  import "./misc";
21
22
  import "./mobile";
23
+ import "./visual";
22
24
  import "./waits";
23
25
  import "./frames";
24
26
  import "./keyboard";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/backend/actions/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAI3B,OAAO,cAAc,CAAC;AACtB,OAAO,gBAAgB,CAAC;AACxB,OAAO,aAAa,CAAC;AACrB,OAAO,SAAS,CAAC;AACjB,OAAO,UAAU,CAAC;AAClB,OAAO,QAAQ,CAAC;AAChB,OAAO,SAAS,CAAC;AACjB,OAAO,QAAQ,CAAC;AAChB,OAAO,UAAU,CAAC;AAClB,OAAO,SAAS,CAAC;AACjB,OAAO,UAAU,CAAC;AAClB,OAAO,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/backend/actions/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAI3B,OAAO,cAAc,CAAC;AACtB,OAAO,gBAAgB,CAAC;AACxB,OAAO,aAAa,CAAC;AACrB,OAAO,SAAS,CAAC;AACjB,OAAO,UAAU,CAAC;AAClB,OAAO,QAAQ,CAAC;AAChB,OAAO,SAAS,CAAC;AACjB,OAAO,QAAQ,CAAC;AAChB,OAAO,UAAU,CAAC;AAClB,OAAO,UAAU,CAAC;AAClB,OAAO,SAAS,CAAC;AACjB,OAAO,UAAU,CAAC;AAClB,OAAO,YAAY,CAAC"}
@@ -24,6 +24,7 @@ __exportStar(require("./form"), exports);
24
24
  __exportStar(require("./mouse"), exports);
25
25
  __exportStar(require("./misc"), exports);
26
26
  __exportStar(require("./mobile"), exports);
27
+ __exportStar(require("./visual"), exports);
27
28
  __exportStar(require("./waits"), exports);
28
29
  __exportStar(require("./frames"), exports);
29
30
  __exportStar(require("./keyboard"), exports);
@@ -37,6 +38,7 @@ require("./form");
37
38
  require("./mouse");
38
39
  require("./misc");
39
40
  require("./mobile");
41
+ require("./visual");
40
42
  require("./waits");
41
43
  require("./frames");
42
44
  require("./keyboard");
@@ -30,10 +30,19 @@ export declare function fillElement(page: any, selectorKey: string, value: strin
30
30
  */
31
31
  export declare function pressKeyGlobal(page: any, key: string): Promise<void>;
32
32
  /**
33
- * Pauses the test execution for a fixed amount of time.
34
- * Avoid using this unless absolutely necessary; prefer dynamic waits instead.
35
- * @example When I wait for 5000 milliseconds
36
- * @param ms - The duration to wait in milliseconds.
33
+ * Drags one element and drops it onto another.
34
+ * Supports fixtures for reusable selectors.
35
+ * @example When I drag "droppable.draggable" to "droppable.dropZone"
36
+ * @param sourceKey - The selector of the element to drag.
37
+ * @param targetKey - The selector of the drop target element.
38
+ */
39
+ export declare function dragElementTo(page: any, sourceKey: string, targetKey: string): Promise<void>;
40
+ /**
41
+ * Continues a drag operation from a previously selected element to a target.
42
+ * This is meant to be used after selecting an element to drag.
43
+ * Supports fixtures for reusable selectors.
44
+ * @example And I drag to "droppable.dropZone"
45
+ * @param targetKey - The selector of the drop target element.
37
46
  */
38
- export declare function hardWait(page: any, ms: number): Promise<void>;
47
+ export declare function dragToTarget(page: any, targetKey: string): Promise<void>;
39
48
  //# sourceMappingURL=interactions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interactions.d.ts","sourceRoot":"","sources":["../../../src/backend/actions/interactions.ts"],"names":[],"mappings":"AAWA;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMhF;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMrF;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM9F;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG1E;AAED;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGnE"}
1
+ {"version":3,"file":"interactions.d.ts","sourceRoot":"","sources":["../../../src/backend/actions/interactions.ts"],"names":[],"mappings":"AAWA;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMhF;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMrF;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM9F;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG1E;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOlG;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW9E"}