playwright-cucumber-ts-steps 1.3.1 → 1.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/README.md +358 -671
  2. package/dist/backend/actions/click.d.ts +29 -29
  3. package/dist/backend/actions/click.js +59 -59
  4. package/dist/backend/actions/form.d.ts +2 -2
  5. package/dist/backend/actions/form.js +4 -4
  6. package/dist/backend/actions/formTable.d.ts +1 -1
  7. package/dist/backend/actions/formTable.js +2 -2
  8. package/dist/backend/actions/frames.d.ts +3 -3
  9. package/dist/backend/actions/frames.js +6 -6
  10. package/dist/backend/actions/inputs.d.ts +14 -14
  11. package/dist/backend/actions/inputs.js +32 -32
  12. package/dist/backend/actions/interactions.d.ts +7 -7
  13. package/dist/backend/actions/interactions.js +13 -13
  14. package/dist/backend/actions/keyboard.d.ts +6 -6
  15. package/dist/backend/actions/keyboard.js +12 -12
  16. package/dist/backend/actions/misc.d.ts +15 -15
  17. package/dist/backend/actions/misc.js +30 -30
  18. package/dist/backend/actions/mobile.d.ts +7 -7
  19. package/dist/backend/actions/mobile.js +14 -14
  20. package/dist/backend/actions/mouse.d.ts +9 -9
  21. package/dist/backend/actions/mouse.js +18 -18
  22. package/dist/backend/actions/navigation.d.ts +5 -5
  23. package/dist/backend/actions/navigation.js +10 -10
  24. package/dist/backend/actions/visual.d.ts +6 -6
  25. package/dist/backend/actions/visual.js +13 -13
  26. package/dist/backend/actions/waits.d.ts +6 -6
  27. package/dist/backend/actions/waits.js +12 -12
  28. package/dist/backend/api/assertions.d.ts +3 -3
  29. package/dist/backend/api/assertions.js +6 -6
  30. package/dist/backend/api/mock.d.ts +3 -3
  31. package/dist/backend/api/mock.js +6 -6
  32. package/dist/backend/api/network.d.ts +6 -6
  33. package/dist/backend/api/network.js +12 -12
  34. package/dist/backend/api/requests.d.ts +4 -4
  35. package/dist/backend/api/requests.js +8 -8
  36. package/dist/backend/assertions/document.d.ts +10 -10
  37. package/dist/backend/assertions/document.js +20 -20
  38. package/dist/backend/assertions/elements.d.ts +28 -28
  39. package/dist/backend/assertions/elements.js +56 -56
  40. package/dist/backend/assertions/expectVisible.d.ts +1 -1
  41. package/dist/backend/assertions/expectVisible.js +2 -2
  42. package/dist/backend/assertions/forms.d.ts +7 -7
  43. package/dist/backend/assertions/forms.js +14 -14
  44. package/dist/backend/assertions/pageState.d.ts +4 -4
  45. package/dist/backend/assertions/pageState.js +8 -8
  46. package/dist/backend/assertions/storage.d.ts +11 -11
  47. package/dist/backend/assertions/storage.js +22 -22
  48. package/dist/backend/assertions/text.d.ts +17 -17
  49. package/dist/backend/assertions/text.js +34 -34
  50. package/dist/backend/assertions/visibility.d.ts +15 -15
  51. package/dist/backend/assertions/visibility.js +30 -30
  52. package/dist/backend/auth/index.d.ts +2 -2
  53. package/dist/backend/auth/index.js +4 -4
  54. package/dist/backend/db/steps.d.ts +10 -10
  55. package/dist/backend/db/steps.d.ts.map +1 -1
  56. package/dist/backend/db/steps.js +19 -19
  57. package/dist/backend/elements/alerts.d.ts +3 -3
  58. package/dist/backend/elements/alerts.js +6 -6
  59. package/dist/backend/elements/find.d.ts +15 -15
  60. package/dist/backend/elements/find.js +41 -41
  61. package/dist/backend/elements/forms.d.ts +4 -4
  62. package/dist/backend/elements/forms.js +8 -8
  63. package/dist/backend/elements/frames.d.ts +3 -3
  64. package/dist/backend/elements/frames.js +6 -6
  65. package/dist/backend/utils/fixtures.d.ts +22 -0
  66. package/dist/backend/utils/fixtures.d.ts.map +1 -1
  67. package/dist/backend/utils/fixtures.js +76 -2
  68. package/dist/backend/utils/resolver.js +1 -1
  69. package/dist/component/runner.d.ts +1 -1
  70. package/dist/component/runner.d.ts.map +1 -1
  71. package/dist/component/runner.js +38 -5
  72. package/dist/core/runner.js +3 -3
  73. package/dist/index.d.ts +1 -0
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js +3 -1
  76. package/dist/metadata.json +270 -270
  77. package/package.json +3 -2
package/README.md CHANGED
@@ -64,7 +64,16 @@ Update `playwright.config.ts` to use the built-in reporting helper.
64
64
 
65
65
  ```typescript
66
66
  import { defineConfig } from "@playwright/test";
67
- import { getReporters } from "playwright-cucumber-ts-steps";
67
+ import { getReporters, setFixtureConfig } from "playwright-cucumber-ts-steps";
68
+
69
+ // Optional: Configure custom fixture directory and file names
70
+ setFixtureConfig({
71
+ fixturesDir: "fixtures", // Default: "fixtures"
72
+ selectorsFile: "selectors.json", // Custom selectors file name
73
+ textsFile: "texts.json", // Custom texts file name
74
+ valuesFile: "values.json", // Custom values file name
75
+ // ... other fixture files
76
+ });
68
77
 
69
78
  export default defineConfig({
70
79
  testDir: "./tests",
@@ -78,6 +87,25 @@ export default defineConfig({
78
87
  });
79
88
  ```
80
89
 
90
+ **Configurable Fixture Files:**
91
+
92
+ - `fixturesDir` - Base directory for all fixtures (default: `"fixtures"`)
93
+ - `selectorsFile` - UI selectors fixture file
94
+ - `textsFile` - Text content fixture file
95
+ - `valuesFile` - Test values fixture file
96
+ - `optionsFile` - Dropdown options fixture file
97
+ - `endpointsFile` - API endpoints fixture file
98
+ - `filesFile` - File paths fixture file
99
+ - `pathsFile` - JSON paths fixture file
100
+ - `responsesFile` - API responses fixture file
101
+ - `queriesFile` - Database queries fixture file
102
+ - `columnsFile` - Database columns fixture file
103
+ - `typesFile` - Data types fixture file
104
+ - `titlesFile` - Page titles fixture file
105
+ - `urlsFile` - URLs fixture file
106
+ - `attributesFile` - HTML attributes fixture file
107
+ - `promptsFile` - Dialog prompts fixture file
108
+
81
109
  ### 2. Create the Runner
82
110
 
83
111
  Create a file at `tests/bdd.spec.ts`. This is the entry point.
@@ -98,11 +126,11 @@ Feature: User Authentication
98
126
 
99
127
  @smoke
100
128
  Scenario: Successful Login
101
- Given I visit "[https://the-internet.herokuapp.com/login](https://the-internet.herokuapp.com/login)"
102
- When I fill "#username" with "tomsmith"
103
- And I fill "#password" with "SuperSecretPassword!"
104
- And I click "button[type='submit']"
105
- Then I expect "#flash" to contain text "You logged into a secure area!"
129
+ Given I pw visit "[https://the-internet.herokuapp.com/login](https://the-internet.herokuapp.com/login)"
130
+ When I pw fill "#username" with "tomsmith"
131
+ And I pw fill "#password" with "SuperSecretPassword!"
132
+ And I pw click "button[type='submit']"
133
+ Then I pw expect "#flash" to contain text "You logged into a secure area!"
106
134
 
107
135
  ```
108
136
 
@@ -166,9 +194,9 @@ Feature: User API
166
194
 
167
195
  @api
168
196
  Scenario: Create and Verify User
169
- When I make a POST request to "[https://reqres.in/api/users](https://reqres.in/api/users)" with body '{"name": "Morpheus", "job": "Leader"}'
170
- Then I expect the response status to be 201
171
- And I expect the response property "name" to be "Morpheus"
197
+ When I pw make a POST request to "[https://reqres.in/api/users](https://reqres.in/api/users)" with body '{"name": "Morpheus", "job": "Leader"}'
198
+ Then I pw expect the response status to be 201
199
+ And I pw expect the response property "name" to be "Morpheus"
172
200
 
173
201
  ```
174
202
 
@@ -180,11 +208,11 @@ Handling complex HTML elements is built-in.
180
208
  Feature: File Upload and Iframes
181
209
 
182
210
  Scenario: Upload Document inside Iframe
183
- Given I visit "[https://example.com/upload](https://example.com/upload)"
211
+ Given I pw visit "[https://example.com/upload](https://example.com/upload)"
184
212
  # Switch context to the iframe
185
- When I upload file "data/resume.pdf" to "#file-input" inside frame "#upload-iframe"
186
- And I click "#submit-btn" inside frame "#upload-iframe"
187
- Then I expect "div.success" inside frame "#upload-iframe" to be visible
213
+ When I pw upload file "data/resume.pdf" to "#file-input" inside frame "#upload-iframe"
214
+ And I pw click "#submit-btn" inside frame "#upload-iframe"
215
+ Then I pw expect "div.success" inside frame "#upload-iframe" to be visible
188
216
 
189
217
  ```
190
218
 
@@ -199,13 +227,13 @@ Feature: Setup
199
227
 
200
228
  @setup
201
229
  Scenario: Admin Login
202
- Given I visit "/login"
203
- When I fill "#user" with "admin"
204
- And I fill "#pass" with "1234"
205
- And I click "#login-btn"
206
- And I expect "#dashboard" to be visible
230
+ Given I pw visit "/login"
231
+ When I pw fill "#user" with "admin"
232
+ And I pw fill "#pass" with "1234"
233
+ And I pw click "#login-btn"
234
+ And I pw expect "#dashboard" to be visible
207
235
  # Saves session to ./auth/admin.json
208
- And I save the browser state to "admin.json"
236
+ And I pw save the browser state to "admin.json"
209
237
 
210
238
  ```
211
239
 
@@ -216,9 +244,9 @@ Feature: Admin Panel
216
244
 
217
245
  Scenario: Check Reports
218
246
  # Loads cookies instantly - No login UI needed!
219
- Given I load the browser state from "admin.json"
220
- When I visit "/admin/reports"
221
- Then I expect "h1" to have text "Weekly Reports"
247
+ Given I pw load the browser state from "admin.json"
248
+ When I pw visit "/admin/reports"
249
+ Then I pw expect "h1" to have text "Weekly Reports"
222
250
 
223
251
  ```
224
252
 
@@ -228,7 +256,7 @@ Fill out entire forms in a single step using a Data Table. You can type, click,
228
256
 
229
257
  ```gherkin
230
258
  Scenario: Registration
231
- When I fill the following "Registration" form data:
259
+ When I pw fill the following "Registration" form data:
232
260
  | #first-name | John |
233
261
  | #last-name | Doe |
234
262
  | #email | john@test.com |
@@ -245,11 +273,11 @@ Validate your backend directly. You can send payloads via Tables or JSON Files.
245
273
 
246
274
  ```gherkin
247
275
  Scenario: Create User (Table)
248
- When I make a POST request to "[https://reqres.in/api/users](https://reqres.in/api/users)" with data:
276
+ When I pw make a POST request to "[https://reqres.in/api/users](https://reqres.in/api/users)" with data:
249
277
  | name | Neo |
250
278
  | job | The Chosen |
251
- Then I expect the response status to be 201
252
- And I expect the response property "name" to be "Neo"
279
+ Then I pw expect the response status to be 201
280
+ And I pw expect the response property "name" to be "Neo"
253
281
  ```
254
282
 
255
283
  #### Option B: File Payload
@@ -257,8 +285,8 @@ Scenario: Create User (Table)
257
285
  ```gherkin
258
286
  Scenario: Create User (File)
259
287
  # Reads from 'data/user.json' in your project root
260
- When I make a POST request to "/api/users" with payload from "data/user.json"
261
- Then I expect the response status to be 201
288
+ When I pw make a POST request to "/api/users" with payload from "data/user.json"
289
+ Then I pw expect the response status to be 201
262
290
  ```
263
291
 
264
292
  ### 6. Network Mocking
@@ -268,11 +296,11 @@ Simulate backend responses to test UI behavior without relying on real APIs.
268
296
  ```gherkin
269
297
  Scenario: Mocking User Profile
270
298
  # Intercept calls to /api/user/1 and return fake data
271
- Given I mock the API endpoint "*/**/api/user/1" with body '{"name": "Mocked User"}'
299
+ Given I pw mock the API endpoint "*/**/api/user/1" with body '{"name": "Mocked User"}'
272
300
 
273
301
  # When the UI calls the API, it gets our fake data
274
- When I visit "/profile"
275
- Then I expect "#username-display" to have text "Mocked User"
302
+ When I pw visit "/profile"
303
+ Then I pw expect "#username-display" to have text "Mocked User"
276
304
 
277
305
  ```
278
306
 
@@ -302,9 +330,9 @@ runTests("features/*.feature", { dbQuery: queryDb });
302
330
 
303
331
  ```gherkin
304
332
  Scenario: Create User
305
- When I run the database query "INSERT INTO users (name) VALUES ('Bob')"
306
- Then I expect the database to return 1 record
307
- And I expect the first database record to contain:
333
+ When I pw run the database query "INSERT INTO users (name) VALUES ('Bob')"
334
+ Then I pw expect the database to return 1 record
335
+ And I pw expect the first database record to contain:
308
336
  | name | Bob |
309
337
  ```
310
338
 
@@ -314,53 +342,53 @@ Scenario: Create User
314
342
 
315
343
  ### 🖱️ Actions
316
344
 
317
- | Step | Usage Example |
318
- | ---------------- | -------------------------------------- |
319
- | **Visit** | `I visit "https://google.com"` |
320
- | **Click** | `I click "#submit-btn"` |
321
- | **Force Click** | `I force click "#hidden-btn"` |
322
- | **Double Click** | `I double click ".icon"` |
323
- | **Fill Input** | `I fill "#email" with "user@test.com"` |
324
- | **Press Key** | `I press "Enter"` (or "Tab", "Escape") |
325
- | **Wait** | `I wait for 2000 milliseconds` |
326
- | **Reload** | `I reload the page` |
327
- | **Go Back** | `I go back` |
345
+ | Step | Usage Example |
346
+ | ---------------- | ----------------------------------------- |
347
+ | **Visit** | `I pw visit "https://google.com"` |
348
+ | **Click** | `I pw click "#submit-btn"` |
349
+ | **Force Click** | `I pw force click "#hidden-btn"` |
350
+ | **Double Click** | `I pw double click ".icon"` |
351
+ | **Fill Input** | `I pw fill "#email" with "user@test.com"` |
352
+ | **Press Key** | `I pw press "Enter"` (or "Tab", "Escape") |
353
+ | **Wait** | `I pw wait for 2000 milliseconds` |
354
+ | **Reload** | `I pw reload the page` |
355
+ | **Go Back** | `I pw go back` |
328
356
 
329
357
  ### ✅ Assertions
330
358
 
331
- | Step | Usage Example |
332
- | ---------------- | -------------------------------------------------------------- |
333
- | **Visibility** | `I expect "#modal" to be visible` |
334
- | **Hidden** | `I expect "#loader" to be hidden` |
335
- | **Exact Text** | `I expect "#header" to have text "Welcome"` |
336
- | **Partial Text** | `I expect ".error" to contain text "Failed"` |
337
- | **Input Value** | `I expect "#username" to have value "admin"` |
338
- | **Exact URL** | `I expect the url to be "https://site.com/home"` |
339
- | **Partial URL** | `I expect the url to contain "/dashboard"` |
340
- | **Title** | `I expect the title to contain "Home Page"` |
341
- | **Attribute** | `I expect "img" to have attribute "src" with value "logo.png"` |
342
- | **Screenshot** | `I expect the page screenshot to match "home.png"` |
359
+ | Step | Usage Example |
360
+ | ---------------- | ----------------------------------------------------------------- |
361
+ | **Visibility** | `I pw expect "#modal" to be visible` |
362
+ | **Hidden** | `I pw expect "#loader" to be hidden` |
363
+ | **Exact Text** | `I pw expect "#header" to have text "Welcome"` |
364
+ | **Partial Text** | `I pw expect ".error" to contain text "Failed"` |
365
+ | **Input Value** | `I pw expect "#username" to have value "admin"` |
366
+ | **Exact URL** | `I pw expect the url to be "https://site.com/home"` |
367
+ | **Partial URL** | `I pw expect the url to contain "/dashboard"` |
368
+ | **Title** | `I pw expect the title to contain "Home Page"` |
369
+ | **Attribute** | `I pw expect "img" to have attribute "src" with value "logo.png"` |
370
+ | **Screenshot** | `I pw expect the page screenshot to match "home.png"` |
343
371
 
344
372
  ### 🧩 Forms & Elements
345
373
 
346
- | Step | Usage Example |
347
- | --------------------- | ---------------------------------------------- |
348
- | **Select (Dropdown)** | `I select option "Canada" from "#country"` |
349
- | **Check Box** | `I check "#terms-checkbox"` |
350
- | **Uncheck** | `I uncheck "#newsletter"` |
351
- | **Upload File** | `I upload file "data.csv" to "#upload"` |
352
- | **Handle Alert** | `I accept the next dialog` |
353
- | **Frame Click** | `I click "#btn" inside frame "#payment-frame"` |
374
+ | Step | Usage Example |
375
+ | --------------------- | ------------------------------------------------- |
376
+ | **Select (Dropdown)** | `I pw select option "Canada" from "#country"` |
377
+ | **Check Box** | `I pw check "#terms-checkbox"` |
378
+ | **Uncheck** | `I pw uncheck "#newsletter"` |
379
+ | **Upload File** | `I pw upload file "data.csv" to "#upload"` |
380
+ | **Handle Alert** | `I pw accept the next dialog` |
381
+ | **Frame Click** | `I pw click "#btn" inside frame "#payment-frame"` |
354
382
 
355
383
  ### 🌐 API
356
384
 
357
- | Step | Usage Example |
358
- | ---------------- | ------------------------------------------------------------- |
359
- | **GET** | `I make a GET request to "/api/users"` |
360
- | **DELETE** | `I make a DELETE request to "/api/users/1"` |
361
- | **POST** | `I make a POST request to "/api/login" with body '{"u":"1"}'` |
362
- | **Status Check** | `I expect the response status to be 200` |
363
- | **JSON Check** | `I expect the response property "data.id" to be "99"` |
385
+ | Step | Usage Example |
386
+ | ---------------- | ---------------------------------------------------------------- |
387
+ | **GET** | `I pw make a GET request to "/api/users"` |
388
+ | **DELETE** | `I pw make a DELETE request to "/api/users/1"` |
389
+ | **POST** | `I pw make a POST request to "/api/login" with body '{"u":"1"}'` |
390
+ | **Status Check** | `I pw expect the response status to be 200` |
391
+ | **JSON Check** | `I pw expect the response property "data.id" to be "99"` |
364
392
 
365
393
  ---
366
394
 
@@ -373,7 +401,7 @@ Need a step that isn't included? You can easily register your own in your spec f
373
401
  import { runTests, Step } from "playwright-cucumber-ts-steps";
374
402
 
375
403
  // 1. Define custom step
376
- Step("I scroll to the bottom of the page", async (page) => {
404
+ Step("I pw scroll to the bottom of the page", async (page) => {
377
405
  await page.evaluate(() => window.scrollTo(0, document.body.scrollHeight));
378
406
  });
379
407
 
@@ -385,8 +413,8 @@ Then use it in your feature:
385
413
 
386
414
  ```gherkin
387
415
  Scenario: Scroll Test
388
- Given I visit "[https://infinite-scroll.com](https://infinite-scroll.com)"
389
- When I scroll to the bottom of the page
416
+ Given I pw visit "[https://infinite-scroll.com](https://infinite-scroll.com)"
417
+ When I pw scroll to the bottom of the page
390
418
 
391
419
  ```
392
420
 
@@ -394,1699 +422,1358 @@ Scenario: Scroll Test
394
422
 
395
423
  ## 📘 Step Definition Documentation
396
424
 
397
-
398
- ### **When** I click
399
-
400
-
425
+ ### **When** I pw click
401
426
 
402
427
  ```gherkin
403
- When I click
428
+ When I pw click
404
429
  ```
405
430
 
406
431
  ---
407
432
 
408
- ### **When** I click on element {string}
409
-
410
-
433
+ ### **When** I pw click on element {string}
411
434
 
412
435
  ```gherkin
413
- When I click on element {string}
436
+ When I pw click on element {string}
414
437
  ```
415
438
 
416
439
  ---
417
440
 
418
- ### **When** I click on button {string}
419
-
420
-
441
+ ### **When** I pw click on button {string}
421
442
 
422
443
  ```gherkin
423
- When I click on button {string}
444
+ When I pw click on button {string}
424
445
  ```
425
446
 
426
447
  ---
427
448
 
428
- ### **When** I click on link {string}
429
-
430
-
449
+ ### **When** I pw click on link {string}
431
450
 
432
451
  ```gherkin
433
- When I click on link {string}
452
+ When I pw click on link {string}
434
453
  ```
435
454
 
436
455
  ---
437
456
 
438
- ### **When** I click on label {string}
439
-
440
-
457
+ ### **When** I pw click on label {string}
441
458
 
442
459
  ```gherkin
443
- When I click on label {string}
460
+ When I pw click on label {string}
444
461
  ```
445
462
 
446
463
  ---
447
464
 
448
- ### **When** I click on text {string}
449
-
450
-
465
+ ### **When** I pw click on text {string}
451
466
 
452
467
  ```gherkin
453
- When I click on text {string}
468
+ When I pw click on text {string}
454
469
  ```
455
470
 
456
471
  ---
457
472
 
458
- ### **When** I click on exact text {string}
459
-
460
-
473
+ ### **When** I pw click on exact text {string}
461
474
 
462
475
  ```gherkin
463
- When I click on exact text {string}
476
+ When I pw click on exact text {string}
464
477
  ```
465
478
 
466
479
  ---
467
480
 
468
- ### **When** I click on selector ([^]+)
469
-
470
-
481
+ ### **When** I pw click on selector ([^]+)
471
482
 
472
483
  ```gherkin
473
- When I click on selector ([^]+)
484
+ When I pw click on selector ([^]+)
474
485
  ```
475
486
 
476
487
  ---
477
488
 
478
- ### **When** I click all
479
-
480
-
489
+ ### **When** I pw click all
481
490
 
482
491
  ```gherkin
483
- When I click all
492
+ When I pw click all
484
493
  ```
485
494
 
486
495
  ---
487
496
 
488
- ### **When** I double click
489
-
490
-
497
+ ### **When** I pw double click
491
498
 
492
499
  ```gherkin
493
- When I double click
500
+ When I pw double click
494
501
  ```
495
502
 
496
503
  ---
497
504
 
498
- ### **When** I double click on text {string}
499
-
500
-
505
+ ### **When** I pw double click on text {string}
501
506
 
502
507
  ```gherkin
503
- When I double click on text {string}
508
+ When I pw double click on text {string}
504
509
  ```
505
510
 
506
511
  ---
507
512
 
508
- ### **When** I double click position {int} {int}
509
-
510
-
513
+ ### **When** I pw double click position {int} {int}
511
514
 
512
515
  ```gherkin
513
- When I double click position {int} {int}
516
+ When I pw double click position {int} {int}
514
517
  ```
515
518
 
516
519
  ---
517
520
 
518
- ### **When** I right click
519
-
520
-
521
+ ### **When** I pw right click
521
522
 
522
523
  ```gherkin
523
- When I right click
524
+ When I pw right click
524
525
  ```
525
526
 
526
527
  ---
527
528
 
528
- ### **When** I right click on text {string}
529
-
530
-
529
+ ### **When** I pw right click on text {string}
531
530
 
532
531
  ```gherkin
533
- When I right click on text {string}
532
+ When I pw right click on text {string}
534
533
  ```
535
534
 
536
535
  ---
537
536
 
538
- ### **When** I right click position {int} {int}
539
-
540
-
537
+ ### **When** I pw right click position {int} {int}
541
538
 
542
539
  ```gherkin
543
- When I right click position {int} {int}
540
+ When I pw right click position {int} {int}
544
541
  ```
545
542
 
546
543
  ---
547
544
 
548
- ### **When** I click on ({int})(?:st|nd|rd|th) element ([^]+)
549
-
550
-
545
+ ### **When** I pw click on ({int})(?:st|nd|rd|th) element ([^]+)
551
546
 
552
547
  ```gherkin
553
- When I click on ({int})(?:st|nd|rd|th) element ([^]+)
548
+ When I pw click on ({int})(?:st|nd|rd|th) element ([^]+)
554
549
  ```
555
550
 
556
551
  ---
557
552
 
558
- ### **When** I click on ({int})(?:st|nd|rd|th) selector ([^]+)
559
-
560
-
553
+ ### **When** I pw click on ({int})(?:st|nd|rd|th) selector ([^]+)
561
554
 
562
555
  ```gherkin
563
- When I click on ({int})(?:st|nd|rd|th) selector ([^]+)
556
+ When I pw click on ({int})(?:st|nd|rd|th) selector ([^]+)
564
557
  ```
565
558
 
566
559
  ---
567
560
 
568
- ### **When** I find element by selector {string}
569
-
570
-
561
+ ### **When** I pw find element by selector {string}
571
562
 
572
563
  ```gherkin
573
- When I find element by selector {string}
564
+ When I pw find element by selector {string}
574
565
  ```
575
566
 
576
567
  ---
577
568
 
578
- ### **When** I find element by text {string}
579
-
580
-
569
+ ### **When** I pw find element by text {string}
581
570
 
582
571
  ```gherkin
583
- When I find element by text {string}
572
+ When I pw find element by text {string}
584
573
  ```
585
574
 
586
575
  ---
587
576
 
588
- ### **When** I find element by title {string}
589
-
590
-
577
+ ### **When** I pw find element by title {string}
591
578
 
592
579
  ```gherkin
593
- When I find element by title {string}
580
+ When I pw find element by title {string}
594
581
  ```
595
582
 
596
583
  ---
597
584
 
598
- ### **When** I find element by testid {string}
599
-
600
-
585
+ ### **When** I pw find element by testid {string}
601
586
 
602
587
  ```gherkin
603
- When I find element by testid {string}
588
+ When I pw find element by testid {string}
604
589
  ```
605
590
 
606
591
  ---
607
592
 
608
- ### **When** I find element by role {string}
609
-
610
-
593
+ ### **When** I pw find element by role {string}
611
594
 
612
595
  ```gherkin
613
- When I find element by role {string}
596
+ When I pw find element by role {string}
614
597
  ```
615
598
 
616
599
  ---
617
600
 
618
- ### **When** I find element by placeholder text {string}
619
-
620
-
601
+ ### **When** I pw find element by placeholder text {string}
621
602
 
622
603
  ```gherkin
623
- When I find element by placeholder text {string}
604
+ When I pw find element by placeholder text {string}
624
605
  ```
625
606
 
626
607
  ---
627
608
 
628
- ### **When** I find element by label text {string}
629
-
630
-
609
+ ### **When** I pw find element by label text {string}
631
610
 
632
611
  ```gherkin
633
- When I find element by label text {string}
612
+ When I pw find element by label text {string}
634
613
  ```
635
614
 
636
615
  ---
637
616
 
638
- ### **When** I find element by alt text {string}
639
-
640
-
617
+ ### **When** I pw find element by alt text {string}
641
618
 
642
619
  ```gherkin
643
- When I find element by alt text {string}
620
+ When I pw find element by alt text {string}
644
621
  ```
645
622
 
646
623
  ---
647
624
 
648
- ### **When** I find link by text {string}
649
-
650
-
625
+ ### **When** I pw find link by text {string}
651
626
 
652
627
  ```gherkin
653
- When I find link by text {string}
628
+ When I pw find link by text {string}
654
629
  ```
655
630
 
656
631
  ---
657
632
 
658
- ### **When** I find heading by text {string}
659
-
660
-
633
+ ### **When** I pw find heading by text {string}
661
634
 
662
635
  ```gherkin
663
- When I find heading by text {string}
636
+ When I pw find heading by text {string}
664
637
  ```
665
638
 
666
639
  ---
667
640
 
668
- ### **When** I find element by name {string}
669
-
670
-
641
+ ### **When** I pw find element by name {string}
671
642
 
672
643
  ```gherkin
673
- When I find element by name {string}
644
+ When I pw find element by name {string}
674
645
  ```
675
646
 
676
647
  ---
677
648
 
678
- ### **When** I find elements by selector {string}
679
-
680
-
649
+ ### **When** I pw find elements by selector {string}
681
650
 
682
651
  ```gherkin
683
- When I find elements by selector {string}
652
+ When I pw find elements by selector {string}
684
653
  ```
685
654
 
686
655
  ---
687
656
 
688
- ### **When** I find headings by text {string}
689
-
690
-
657
+ ### **When** I pw find headings by text {string}
691
658
 
692
659
  ```gherkin
693
- When I find headings by text {string}
660
+ When I pw find headings by text {string}
694
661
  ```
695
662
 
696
663
  ---
697
664
 
698
- ### **When** I find buttons by text {string}
699
-
700
-
665
+ ### **When** I pw find buttons by text {string}
701
666
 
702
667
  ```gherkin
703
- When I find buttons by text {string}
668
+ When I pw find buttons by text {string}
704
669
  ```
705
670
 
706
671
  ---
707
672
 
708
- ### **When** I get first element
709
-
710
-
673
+ ### **When** I pw get first element
711
674
 
712
675
  ```gherkin
713
- When I get first element
676
+ When I pw get first element
714
677
  ```
715
678
 
716
679
  ---
717
680
 
718
- ### **When** I get last element
719
-
720
-
681
+ ### **When** I pw get last element
721
682
 
722
683
  ```gherkin
723
- When I get last element
684
+ When I pw get last element
724
685
  ```
725
686
 
726
687
  ---
727
688
 
728
- ### **When** I get ({int})(?:st|nd|rd|th) element
729
-
730
-
689
+ ### **When** I pw get ({int})(?:st|nd|rd|th) element
731
690
 
732
691
  ```gherkin
733
- When I get ({int})(?:st|nd|rd|th) element
692
+ When I pw get ({int})(?:st|nd|rd|th) element
734
693
  ```
735
694
 
736
695
  ---
737
696
 
738
- ### **When** I get focused element
739
-
740
-
697
+ ### **When** I pw get focused element
741
698
 
742
699
  ```gherkin
743
- When I get focused element
700
+ When I pw get focused element
744
701
  ```
745
702
 
746
703
  ---
747
704
 
748
- ### **When** I find input by ID {string}
749
-
750
-
705
+ ### **When** I pw find input by ID {string}
751
706
 
752
707
  ```gherkin
753
- When I find input by ID {string}
708
+ When I pw find input by ID {string}
754
709
  ```
755
710
 
756
711
  ---
757
712
 
758
- ### **When** I find input by name {string}
759
-
760
-
713
+ ### **When** I pw find input by name {string}
761
714
 
762
715
  ```gherkin
763
- When I find input by name {string}
716
+ When I pw find input by name {string}
764
717
  ```
765
718
 
766
719
  ---
767
720
 
768
- ### **When** I find input by placeholder text {string}
769
-
770
-
721
+ ### **When** I pw find input by placeholder text {string}
771
722
 
772
723
  ```gherkin
773
- When I find input by placeholder text {string}
724
+ When I pw find input by placeholder text {string}
774
725
  ```
775
726
 
776
727
  ---
777
728
 
778
- ### **When** I find input by display value {string}
779
-
780
-
729
+ ### **When** I pw find input by display value {string}
781
730
 
782
731
  ```gherkin
783
- When I find input by display value {string}
732
+ When I pw find input by display value {string}
784
733
  ```
785
734
 
786
735
  ---
787
736
 
788
- ### **When** I find textarea by label text {string}
789
-
790
-
737
+ ### **When** I pw find textarea by label text {string}
791
738
 
792
739
  ```gherkin
793
- When I find textarea by label text {string}
740
+ When I pw find textarea by label text {string}
794
741
  ```
795
742
 
796
743
  ---
797
744
 
798
745
  ### **When** I store element text as {string}
799
746
 
800
-
801
-
802
747
  ```gherkin
803
- When I store element text as {string}
748
+ When I pw store element text as {string}
804
749
  ```
805
750
 
806
751
  ---
807
752
 
808
- ### **When** I fill the following {string} form data
809
-
810
-
753
+ ### **When** I pw fill the following {string} form data
811
754
 
812
755
  ```gherkin
813
- When I fill the following {string} form data
756
+ When I pw fill the following {string} form data
814
757
  ```
815
758
 
816
759
  ---
817
760
 
818
- ### **When** I fill the following {string} test form data
819
-
820
-
761
+ ### **When** I pw fill the following {string} test form data
821
762
 
822
763
  ```gherkin
823
- When I fill the following {string} test form data
764
+ When I pw fill the following {string} test form data
824
765
  ```
825
766
 
826
767
  ---
827
768
 
828
769
  ### **When** I switch to frame {string}
829
770
 
830
-
831
-
832
771
  ```gherkin
833
- When I switch to frame {string}
772
+ When I pw switch to frame {string}
834
773
  ```
835
774
 
836
775
  ---
837
776
 
838
- ### **When** I find element {string} in frame {string}
839
-
840
-
777
+ ### **When** I pw find element {string} in frame {string}
841
778
 
842
779
  ```gherkin
843
- When I find element {string} in frame {string}
780
+ When I pw find element {string} in frame {string}
844
781
  ```
845
782
 
846
783
  ---
847
784
 
848
785
  ### **When** I switch to new tab
849
786
 
850
-
851
-
852
787
  ```gherkin
853
- When I switch to new tab
788
+ When I pw switch to new tab
854
789
  ```
855
790
 
856
791
  ---
857
792
 
858
793
  ### **When** I type {string}
859
794
 
860
-
861
-
862
795
  ```gherkin
863
- When I type {string}
796
+ When I pw type {string}
864
797
  ```
865
798
 
866
799
  ---
867
800
 
868
801
  ### **When** I type stored {string}
869
802
 
870
-
871
-
872
803
  ```gherkin
873
- When I type stored {string}
804
+ When I pw type stored {string}
874
805
  ```
875
806
 
876
807
  ---
877
808
 
878
809
  ### **When** I slowly type {string}
879
810
 
880
-
881
-
882
811
  ```gherkin
883
- When I slowly type {string}
812
+ When I pw slowly type {string}
884
813
  ```
885
814
 
886
815
  ---
887
816
 
888
817
  ### **When** I set value {string}
889
818
 
890
-
891
-
892
819
  ```gherkin
893
- When I set value {string}
820
+ When I pw set value {string}
894
821
  ```
895
822
 
896
823
  ---
897
824
 
898
825
  ### **When** I clear
899
826
 
900
-
901
-
902
827
  ```gherkin
903
- When I clear
828
+ When I pw clear
904
829
  ```
905
830
 
906
831
  ---
907
832
 
908
833
  ### **When** I press {string}
909
834
 
910
-
911
-
912
835
  ```gherkin
913
- When I press {string}
836
+ When I pw press {string}
914
837
  ```
915
838
 
916
839
  ---
917
840
 
918
841
  ### **When** I check
919
842
 
920
-
921
-
922
843
  ```gherkin
923
- When I check
844
+ When I pw check
924
845
  ```
925
846
 
926
847
  ---
927
848
 
928
849
  ### **When** I uncheck
929
850
 
930
-
931
-
932
851
  ```gherkin
933
- When I uncheck
852
+ When I pw uncheck
934
853
  ```
935
854
 
936
855
  ---
937
856
 
938
857
  ### **When** I check input
939
858
 
940
-
941
-
942
859
  ```gherkin
943
- When I check input
860
+ When I pw check input
944
861
  ```
945
862
 
946
863
  ---
947
864
 
948
865
  ### **When** I uncheck input
949
866
 
950
-
951
-
952
867
  ```gherkin
953
- When I uncheck input
868
+ When I pw uncheck input
954
869
  ```
955
870
 
956
871
  ---
957
872
 
958
873
  ### **When** I (check|uncheck) ({int})(?:st|nd|rd|th) selector ([^]+)
959
874
 
960
-
961
-
962
875
  ```gherkin
963
- When I (check|uncheck) ({int})(?:st|nd|rd|th) selector ([^]+)
876
+ When I pw (check|uncheck) ({int})(?:st|nd|rd|th) selector ([^]+)
964
877
  ```
965
878
 
966
879
  ---
967
880
 
968
- ### **When** I select option {string}
969
-
970
-
881
+ ### **When** I pw select option {string}
971
882
 
972
883
  ```gherkin
973
- When I select option {string}
884
+ When I pw select option {string}
974
885
  ```
975
886
 
976
887
  ---
977
888
 
978
- ### **When** I submit
979
-
980
-
889
+ ### **When** I pw submit
981
890
 
982
891
  ```gherkin
983
- When I submit
892
+ When I pw submit
984
893
  ```
985
894
 
986
895
  ---
987
896
 
988
- ### **When** I select file {string}
989
-
990
-
897
+ ### **When** I pw select file {string}
991
898
 
992
899
  ```gherkin
993
- When I select file {string}
900
+ When I pw select file {string}
994
901
  ```
995
902
 
996
903
  ---
997
904
 
998
- ### **When** I upload file {string}
999
-
1000
-
905
+ ### **When** I pw upload file {string}
1001
906
 
1002
907
  ```gherkin
1003
- When I upload file {string}
908
+ When I pw upload file {string}
1004
909
  ```
1005
910
 
1006
911
  ---
1007
912
 
1008
- ### **When** I click {string}
1009
-
1010
-
913
+ ### **When** I pw click {string}
1011
914
 
1012
915
  ```gherkin
1013
- When I click {string}
916
+ When I pw click {string}
1014
917
  ```
1015
918
 
1016
919
  ---
1017
920
 
1018
- ### **When** I force click {string}
1019
-
1020
-
921
+ ### **When** I pw force click {string}
1021
922
 
1022
923
  ```gherkin
1023
- When I force click {string}
924
+ When I pw force click {string}
1024
925
  ```
1025
926
 
1026
927
  ---
1027
928
 
1028
- ### **When** I fill {string} with {string}
1029
-
1030
-
929
+ ### **When** I pw fill {string} with {string}
1031
930
 
1032
931
  ```gherkin
1033
- When I fill {string} with {string}
932
+ When I pw fill {string} with {string}
1034
933
  ```
1035
934
 
1036
935
  ---
1037
936
 
1038
937
  ### **When** I press {string}
1039
938
 
1040
-
1041
-
1042
939
  ```gherkin
1043
- When I press {string}
940
+ When I pw press {string}
1044
941
  ```
1045
942
 
1046
943
  ---
1047
944
 
1048
945
  ### **When** I wait for {int} milliseconds
1049
946
 
1050
-
1051
-
1052
947
  ```gherkin
1053
- When I wait for {int} milliseconds
948
+ When I pw wait for {int} milliseconds
1054
949
  ```
1055
950
 
1056
951
  ---
1057
952
 
1058
953
  ### **When** I press key {string}
1059
954
 
1060
-
1061
-
1062
955
  ```gherkin
1063
- When I press key {string}
956
+ When I pw press key {string}
1064
957
  ```
1065
958
 
1066
959
  ---
1067
960
 
1068
961
  ### **When** I press key {string} on element
1069
962
 
1070
-
1071
-
1072
963
  ```gherkin
1073
- When I press key {string} on element
964
+ When I pw press key {string} on element
1074
965
  ```
1075
966
 
1076
967
  ---
1077
968
 
1078
969
  ### **When** I press keys {string}
1079
970
 
1080
-
1081
-
1082
971
  ```gherkin
1083
- When I press keys {string}
972
+ When I pw press keys {string}
1084
973
  ```
1085
974
 
1086
975
  ---
1087
976
 
1088
977
  ### **When** I press shortcut {string}
1089
978
 
1090
-
1091
-
1092
979
  ```gherkin
1093
- When I press shortcut {string}
980
+ When I pw press shortcut {string}
1094
981
  ```
1095
982
 
1096
983
  ---
1097
984
 
1098
985
  ### **When** I hold down key {string}
1099
986
 
1100
-
1101
-
1102
987
  ```gherkin
1103
- When I hold down key {string}
988
+ When I pw hold down key {string}
1104
989
  ```
1105
990
 
1106
991
  ---
1107
992
 
1108
993
  ### **When** I release key {string}
1109
994
 
1110
-
1111
-
1112
995
  ```gherkin
1113
- When I release key {string}
996
+ When I pw release key {string}
1114
997
  ```
1115
998
 
1116
999
  ---
1117
1000
 
1118
1001
  ### **When** I wait for {int} milliseconds
1119
1002
 
1120
-
1121
-
1122
1003
  ```gherkin
1123
- When I wait for {int} milliseconds
1004
+ When I pw wait for {int} milliseconds
1124
1005
  ```
1125
1006
 
1126
1007
  ---
1127
1008
 
1128
1009
  ### **When** I wait for {int} seconds
1129
1010
 
1130
-
1131
-
1132
1011
  ```gherkin
1133
- When I wait for {int} seconds
1012
+ When I pw wait for {int} seconds
1134
1013
  ```
1135
1014
 
1136
1015
  ---
1137
1016
 
1138
1017
  ### **When** I pause
1139
1018
 
1140
-
1141
-
1142
1019
  ```gherkin
1143
- When I pause
1020
+ When I pw pause
1144
1021
  ```
1145
1022
 
1146
1023
  ---
1147
1024
 
1148
1025
  ### **When** I debug
1149
1026
 
1150
-
1151
-
1152
1027
  ```gherkin
1153
- When I debug
1028
+ When I pw debug
1154
1029
  ```
1155
1030
 
1156
1031
  ---
1157
1032
 
1158
1033
  ### **When** I log {string}
1159
1034
 
1160
-
1161
-
1162
1035
  ```gherkin
1163
- When I log {string}
1036
+ When I pw log {string}
1164
1037
  ```
1165
1038
 
1166
1039
  ---
1167
1040
 
1168
1041
  ### **When** I focus
1169
1042
 
1170
-
1171
-
1172
1043
  ```gherkin
1173
- When I focus
1044
+ When I pw focus
1174
1045
  ```
1175
1046
 
1176
1047
  ---
1177
1048
 
1178
1049
  ### **When** I blur
1179
1050
 
1180
-
1181
-
1182
1051
  ```gherkin
1183
- When I blur
1052
+ When I pw blur
1184
1053
  ```
1185
1054
 
1186
1055
  ---
1187
1056
 
1188
1057
  ### **When** I set cookie {string} to {string}
1189
1058
 
1190
-
1191
-
1192
1059
  ```gherkin
1193
- When I set cookie {string} to {string}
1060
+ When I pw set cookie {string} to {string}
1194
1061
  ```
1195
1062
 
1196
1063
  ---
1197
1064
 
1198
1065
  ### **When** I clear all cookies
1199
1066
 
1200
-
1201
-
1202
1067
  ```gherkin
1203
- When I clear all cookies
1068
+ When I pw clear all cookies
1204
1069
  ```
1205
1070
 
1206
1071
  ---
1207
1072
 
1208
1073
  ### **When** I set local storage item {string} to {string}
1209
1074
 
1210
-
1211
-
1212
1075
  ```gherkin
1213
- When I set local storage item {string} to {string}
1076
+ When I pw set local storage item {string} to {string}
1214
1077
  ```
1215
1078
 
1216
1079
  ---
1217
1080
 
1218
- ### **When** I get local storage item {string}
1219
-
1220
-
1081
+ ### **When** I pw get local storage item {string}
1221
1082
 
1222
1083
  ```gherkin
1223
- When I get local storage item {string}
1084
+ When I pw get local storage item {string}
1224
1085
  ```
1225
1086
 
1226
1087
  ---
1227
1088
 
1228
1089
  ### **When** I clear local storage
1229
1090
 
1230
-
1231
-
1232
1091
  ```gherkin
1233
- When I clear local storage
1092
+ When I pw clear local storage
1234
1093
  ```
1235
1094
 
1236
1095
  ---
1237
1096
 
1238
1097
  ### **When** I set session storage item {string} to {string}
1239
1098
 
1240
-
1241
-
1242
1099
  ```gherkin
1243
- When I set session storage item {string} to {string}
1100
+ When I pw set session storage item {string} to {string}
1244
1101
  ```
1245
1102
 
1246
1103
  ---
1247
1104
 
1248
1105
  ### **When** I clear session storage
1249
1106
 
1250
-
1251
-
1252
1107
  ```gherkin
1253
- When I clear session storage
1108
+ When I pw clear session storage
1254
1109
  ```
1255
1110
 
1256
1111
  ---
1257
1112
 
1258
1113
  ### **When** I tap
1259
1114
 
1260
-
1261
-
1262
1115
  ```gherkin
1263
- When I tap
1116
+ When I pw tap
1264
1117
  ```
1265
1118
 
1266
1119
  ---
1267
1120
 
1268
1121
  ### **When** I tap element {string}
1269
1122
 
1270
-
1271
-
1272
1123
  ```gherkin
1273
- When I tap element {string}
1124
+ When I pw tap element {string}
1274
1125
  ```
1275
1126
 
1276
1127
  ---
1277
1128
 
1278
1129
  ### **When** I tap coordinates x:{int} y:{int}
1279
1130
 
1280
-
1281
-
1282
1131
  ```gherkin
1283
- When I tap coordinates x:{int} y:{int}
1132
+ When I pw tap coordinates x:{int} y:{int}
1284
1133
  ```
1285
1134
 
1286
1135
  ---
1287
1136
 
1288
1137
  ### **When** I resize window to width {int} and height {int}
1289
1138
 
1290
-
1291
-
1292
1139
  ```gherkin
1293
- When I resize window to width {int} and height {int}
1140
+ When I pw resize window to width {int} and height {int}
1294
1141
  ```
1295
1142
 
1296
1143
  ---
1297
1144
 
1298
1145
  ### **When** I simulate device {string}
1299
1146
 
1300
-
1301
-
1302
1147
  ```gherkin
1303
- When I simulate device {string}
1148
+ When I pw simulate device {string}
1304
1149
  ```
1305
1150
 
1306
1151
  ---
1307
1152
 
1308
1153
  ### **When** I set geolocation to lat: {float} long: {float}
1309
1154
 
1310
-
1311
-
1312
1155
  ```gherkin
1313
- When I set geolocation to lat: {float} long: {float}
1156
+ When I pw set geolocation to lat: {float} long: {float}
1314
1157
  ```
1315
1158
 
1316
1159
  ---
1317
1160
 
1318
1161
  ### **When** I grant permission {string}
1319
1162
 
1320
-
1321
-
1322
1163
  ```gherkin
1323
- When I grant permission {string}
1164
+ When I pw grant permission {string}
1324
1165
  ```
1325
1166
 
1326
1167
  ---
1327
1168
 
1328
1169
  ### **When** I scroll {string} into view
1329
1170
 
1330
-
1331
-
1332
1171
  ```gherkin
1333
- When I scroll {string} into view
1172
+ When I pw scroll {string} into view
1334
1173
  ```
1335
1174
 
1336
1175
  ---
1337
1176
 
1338
1177
  ### **When** I scroll {string} to position x:{int} y:{int}
1339
1178
 
1340
-
1341
-
1342
1179
  ```gherkin
1343
- When I scroll {string} to position x:{int} y:{int}
1180
+ When I pw scroll {string} to position x:{int} y:{int}
1344
1181
  ```
1345
1182
 
1346
1183
  ---
1347
1184
 
1348
1185
  ### **When** I scroll to coordinates x:{int} y:{int}
1349
1186
 
1350
-
1351
-
1352
1187
  ```gherkin
1353
- When I scroll to coordinates x:{int} y:{int}
1188
+ When I pw scroll to coordinates x:{int} y:{int}
1354
1189
  ```
1355
1190
 
1356
1191
  ---
1357
1192
 
1358
1193
  ### **When** I scroll mouse window to position top:{int} left:{int}
1359
1194
 
1360
-
1361
-
1362
1195
  ```gherkin
1363
- When I scroll mouse window to position top:{int} left:{int}
1196
+ When I pw scroll mouse window to position top:{int} left:{int}
1364
1197
  ```
1365
1198
 
1366
1199
  ---
1367
1200
 
1368
1201
  ### **When** I scroll to {string}
1369
1202
 
1370
-
1371
-
1372
1203
  ```gherkin
1373
- When I scroll to {string}
1204
+ When I pw scroll to {string}
1374
1205
  ```
1375
1206
 
1376
1207
  ---
1377
1208
 
1378
1209
  ### **When** I hover over the element {string}
1379
1210
 
1380
-
1381
-
1382
1211
  ```gherkin
1383
- When I hover over the element {string}
1212
+ When I pw hover over the element {string}
1384
1213
  ```
1385
1214
 
1386
1215
  ---
1387
1216
 
1388
1217
  ### **When** I move mouse to coordinates {int}, {int}
1389
1218
 
1390
-
1391
-
1392
1219
  ```gherkin
1393
- When I move mouse to coordinates {int}, {int}
1220
+ When I pw move mouse to coordinates {int}, {int}
1394
1221
  ```
1395
1222
 
1396
1223
  ---
1397
1224
 
1398
1225
  ### **When** I hover on ({int})(?:st|nd|rd|th) element ([^]+)
1399
1226
 
1400
-
1401
-
1402
1227
  ```gherkin
1403
- When I hover on ({int})(?:st|nd|rd|th) element ([^]+)
1228
+ When I pw hover on ({int})(?:st|nd|rd|th) element ([^]+)
1404
1229
  ```
1405
1230
 
1406
1231
  ---
1407
1232
 
1408
1233
  ### **When** I hover on ({int})(?:st|nd|rd|th) selector ([^]+)
1409
1234
 
1410
-
1411
-
1412
1235
  ```gherkin
1413
- When I hover on ({int})(?:st|nd|rd|th) selector ([^]+)
1236
+ When I pw hover on ({int})(?:st|nd|rd|th) selector ([^]+)
1414
1237
  ```
1415
1238
 
1416
1239
  ---
1417
1240
 
1418
1241
  ### **When** I visit {string}
1419
1242
 
1420
-
1421
-
1422
1243
  ```gherkin
1423
- When I visit {string}
1244
+ When I pw visit {string}
1424
1245
  ```
1425
1246
 
1426
1247
  ---
1427
1248
 
1428
1249
  ### **When** I reload the page
1429
1250
 
1430
-
1431
-
1432
1251
  ```gherkin
1433
- When I reload the page
1252
+ When I pw reload the page
1434
1253
  ```
1435
1254
 
1436
1255
  ---
1437
1256
 
1438
1257
  ### **When** I go back
1439
1258
 
1440
-
1441
-
1442
1259
  ```gherkin
1443
- When I go back
1260
+ When I pw go back
1444
1261
  ```
1445
1262
 
1446
1263
  ---
1447
1264
 
1448
1265
  ### **When** I go forward
1449
1266
 
1450
-
1451
-
1452
1267
  ```gherkin
1453
- When I go forward
1268
+ When I pw go forward
1454
1269
  ```
1455
1270
 
1456
1271
  ---
1457
1272
 
1458
1273
  ### **When** I navigate to {string}
1459
1274
 
1460
-
1461
-
1462
1275
  ```gherkin
1463
- When I navigate to {string}
1276
+ When I pw navigate to {string}
1464
1277
  ```
1465
1278
 
1466
1279
  ---
1467
1280
 
1468
1281
  ### **When** I wait for network idle
1469
1282
 
1470
-
1471
-
1472
1283
  ```gherkin
1473
- When I wait for network idle
1284
+ When I pw wait for network idle
1474
1285
  ```
1475
1286
 
1476
1287
  ---
1477
1288
 
1478
1289
  ### **When** I wait for load state {string}
1479
1290
 
1480
-
1481
-
1482
1291
  ```gherkin
1483
- When I wait for load state {string}
1292
+ When I pw wait for load state {string}
1484
1293
  ```
1485
1294
 
1486
1295
  ---
1487
1296
 
1488
1297
  ### **When** I wait for element to be visible
1489
1298
 
1490
-
1491
-
1492
1299
  ```gherkin
1493
- When I wait for element to be visible
1300
+ When I pw wait for element to be visible
1494
1301
  ```
1495
1302
 
1496
1303
  ---
1497
1304
 
1498
1305
  ### **When** I wait for element to be hidden
1499
1306
 
1500
-
1501
-
1502
1307
  ```gherkin
1503
- When I wait for element to be hidden
1308
+ When I pw wait for element to be hidden
1504
1309
  ```
1505
1310
 
1506
1311
  ---
1507
1312
 
1508
1313
  ### **When** I wait for URL to contain {string}
1509
1314
 
1510
-
1511
-
1512
1315
  ```gherkin
1513
- When I wait for URL to contain {string}
1316
+ When I pw wait for URL to contain {string}
1514
1317
  ```
1515
1318
 
1516
1319
  ---
1517
1320
 
1518
- ### **When** I expect the response status to be {int}
1519
-
1520
-
1321
+ ### **When** I pw expect the response status to be {int}
1521
1322
 
1522
1323
  ```gherkin
1523
- When I expect the response status to be {int}
1324
+ When I pw expect the response status to be {int}
1524
1325
  ```
1525
1326
 
1526
1327
  ---
1527
1328
 
1528
- ### **When** I expect the response body to contain {string}
1529
-
1530
-
1329
+ ### **When** I pw expect the response body to contain {string}
1531
1330
 
1532
1331
  ```gherkin
1533
- When I expect the response body to contain {string}
1332
+ When I pw expect the response body to contain {string}
1534
1333
  ```
1535
1334
 
1536
1335
  ---
1537
1336
 
1538
- ### **When** I expect the response property {string} to be {string}
1539
-
1540
-
1337
+ ### **When** I pw expect the response property {string} to be {string}
1541
1338
 
1542
1339
  ```gherkin
1543
- When I expect the response property {string} to be {string}
1340
+ When I pw expect the response property {string} to be {string}
1544
1341
  ```
1545
1342
 
1546
1343
  ---
1547
1344
 
1548
1345
  ### **When** I mock the API endpoint {string} with body {string}
1549
1346
 
1550
-
1551
-
1552
1347
  ```gherkin
1553
- When I mock the API endpoint {string} with body {string}
1348
+ When I pw mock the API endpoint {string} with body {string}
1554
1349
  ```
1555
1350
 
1556
1351
  ---
1557
1352
 
1558
1353
  ### **When** I mock the API endpoint {string} with response from {string}
1559
1354
 
1560
-
1561
-
1562
1355
  ```gherkin
1563
- When I mock the API endpoint {string} with response from {string}
1356
+ When I pw mock the API endpoint {string} with response from {string}
1564
1357
  ```
1565
1358
 
1566
1359
  ---
1567
1360
 
1568
1361
  ### **When** I mock the API endpoint {string} with status {int}
1569
1362
 
1570
-
1571
-
1572
1363
  ```gherkin
1573
- When I mock the API endpoint {string} with status {int}
1364
+ When I pw mock the API endpoint {string} with status {int}
1574
1365
  ```
1575
1366
 
1576
1367
  ---
1577
1368
 
1578
1369
  ### **When** I intercept URL ([^]+) and stub body:?
1579
1370
 
1580
-
1581
-
1582
1371
  ```gherkin
1583
- When I intercept URL ([^]+) and stub body:?
1372
+ When I pw intercept URL ([^]+) and stub body:?
1584
1373
  ```
1585
1374
 
1586
1375
  ---
1587
1376
 
1588
1377
  ### **When** I intercept URL {string} and stub body {string}
1589
1378
 
1590
-
1591
-
1592
1379
  ```gherkin
1593
- When I intercept URL {string} and stub body {string}
1380
+ When I pw intercept URL {string} and stub body {string}
1594
1381
  ```
1595
1382
 
1596
1383
  ---
1597
1384
 
1598
1385
  ### **When** I intercept URL {string}
1599
1386
 
1600
-
1601
-
1602
1387
  ```gherkin
1603
- When I intercept URL {string}
1388
+ When I pw intercept URL {string}
1604
1389
  ```
1605
1390
 
1606
1391
  ---
1607
1392
 
1608
1393
  ### **When** I make request to {string}
1609
1394
 
1610
-
1611
-
1612
1395
  ```gherkin
1613
- When I make request to {string}
1396
+ When I pw make request to {string}
1614
1397
  ```
1615
1398
 
1616
1399
  ---
1617
1400
 
1618
1401
  ### **When** I make a POST request to ([^]+) with JSON body:?
1619
1402
 
1620
-
1621
-
1622
1403
  ```gherkin
1623
- When I make a POST request to ([^]+) with JSON body:?
1404
+ When I pw make a POST request to ([^]+) with JSON body:?
1624
1405
  ```
1625
1406
 
1626
1407
  ---
1627
1408
 
1628
1409
  ### **When** I make a {word} request to {string}
1629
1410
 
1630
-
1631
-
1632
1411
  ```gherkin
1633
- When I make a {word} request to {string}
1412
+ When I pw make a {word} request to {string}
1634
1413
  ```
1635
1414
 
1636
1415
  ---
1637
1416
 
1638
1417
  ### **When** I make a GET request to {string}
1639
1418
 
1640
-
1641
-
1642
1419
  ```gherkin
1643
- When I make a GET request to {string}
1420
+ When I pw make a GET request to {string}
1644
1421
  ```
1645
1422
 
1646
1423
  ---
1647
1424
 
1648
1425
  ### **When** I make a DELETE request to {string}
1649
1426
 
1650
-
1651
-
1652
1427
  ```gherkin
1653
- When I make a DELETE request to {string}
1428
+ When I pw make a DELETE request to {string}
1654
1429
  ```
1655
1430
 
1656
1431
  ---
1657
1432
 
1658
1433
  ### **When** I make a POST request to {string} with data
1659
1434
 
1660
-
1661
-
1662
1435
  ```gherkin
1663
- When I make a POST request to {string} with data
1436
+ When I pw make a POST request to {string} with data
1664
1437
  ```
1665
1438
 
1666
1439
  ---
1667
1440
 
1668
1441
  ### **When** I make a POST request to {string} with payload from {string}
1669
1442
 
1670
-
1671
-
1672
1443
  ```gherkin
1673
- When I make a POST request to {string} with payload from {string}
1444
+ When I pw make a POST request to {string} with payload from {string}
1674
1445
  ```
1675
1446
 
1676
1447
  ---
1677
1448
 
1678
- ### **When** I expect the url to contain {string}
1679
-
1680
-
1449
+ ### **When** I pw expect the url to contain {string}
1681
1450
 
1682
1451
  ```gherkin
1683
- When I expect the url to contain {string}
1452
+ When I pw expect the url to contain {string}
1684
1453
  ```
1685
1454
 
1686
1455
  ---
1687
1456
 
1688
- ### **When** I expect the url to be {string}
1689
-
1690
-
1457
+ ### **When** I pw expect the url to be {string}
1691
1458
 
1692
1459
  ```gherkin
1693
- When I expect the url to be {string}
1460
+ When I pw expect the url to be {string}
1694
1461
  ```
1695
1462
 
1696
1463
  ---
1697
1464
 
1698
- ### **When** I expect the title to contain {string}
1699
-
1700
-
1465
+ ### **When** I pw expect the title to contain {string}
1701
1466
 
1702
1467
  ```gherkin
1703
- When I expect the title to contain {string}
1468
+ When I pw expect the title to contain {string}
1704
1469
  ```
1705
1470
 
1706
1471
  ---
1707
1472
 
1708
- ### **When** I expect the title to be {string}
1709
-
1710
-
1473
+ ### **When** I pw expect the title to be {string}
1711
1474
 
1712
1475
  ```gherkin
1713
- When I expect the title to be {string}
1476
+ When I pw expect the title to be {string}
1714
1477
  ```
1715
1478
 
1716
1479
  ---
1717
1480
 
1718
- ### **When** I expect {string} to have text {string}
1719
-
1720
-
1481
+ ### **When** I pw expect {string} to have text {string}
1721
1482
 
1722
1483
  ```gherkin
1723
- When I expect {string} to have text {string}
1484
+ When I pw expect {string} to have text {string}
1724
1485
  ```
1725
1486
 
1726
1487
  ---
1727
1488
 
1728
- ### **When** I expect {string} to contain text {string}
1729
-
1730
-
1489
+ ### **When** I pw expect {string} to contain text {string}
1731
1490
 
1732
1491
  ```gherkin
1733
- When I expect {string} to contain text {string}
1492
+ When I pw expect {string} to contain text {string}
1734
1493
  ```
1735
1494
 
1736
1495
  ---
1737
1496
 
1738
- ### **When** I expect {string} to have value {string}
1739
-
1740
-
1497
+ ### **When** I pw expect {string} to have value {string}
1741
1498
 
1742
1499
  ```gherkin
1743
- When I expect {string} to have value {string}
1500
+ When I pw expect {string} to have value {string}
1744
1501
  ```
1745
1502
 
1746
1503
  ---
1747
1504
 
1748
- ### **When** I expect {string} to have attribute {string} with value {string}
1749
-
1750
-
1505
+ ### **When** I pw expect {string} to have attribute {string} with value {string}
1751
1506
 
1752
1507
  ```gherkin
1753
- When I expect {string} to have attribute {string} with value {string}
1508
+ When I pw expect {string} to have attribute {string} with value {string}
1754
1509
  ```
1755
1510
 
1756
1511
  ---
1757
1512
 
1758
- ### **When** I expect element to be visible
1759
-
1760
-
1513
+ ### **When** I pw expect element to be visible
1761
1514
 
1762
1515
  ```gherkin
1763
- When I expect element to be visible
1516
+ When I pw expect element to be visible
1764
1517
  ```
1765
1518
 
1766
1519
  ---
1767
1520
 
1768
- ### **When** I expect {string} to be visible
1769
-
1770
-
1521
+ ### **When** I pw expect {string} to be visible
1771
1522
 
1772
1523
  ```gherkin
1773
- When I expect {string} to be visible
1524
+ When I pw expect {string} to be visible
1774
1525
  ```
1775
1526
 
1776
1527
  ---
1777
1528
 
1778
- ### **When** I expect element to be hidden
1779
-
1780
-
1529
+ ### **When** I pw expect element to be hidden
1781
1530
 
1782
1531
  ```gherkin
1783
- When I expect element to be hidden
1532
+ When I pw expect element to be hidden
1784
1533
  ```
1785
1534
 
1786
1535
  ---
1787
1536
 
1788
- ### **When** I expect element to be enabled
1789
-
1790
-
1537
+ ### **When** I pw expect element to be enabled
1791
1538
 
1792
1539
  ```gherkin
1793
- When I expect element to be enabled
1540
+ When I pw expect element to be enabled
1794
1541
  ```
1795
1542
 
1796
1543
  ---
1797
1544
 
1798
- ### **When** I expect element to be disabled
1799
-
1800
-
1545
+ ### **When** I pw expect element to be disabled
1801
1546
 
1802
1547
  ```gherkin
1803
- When I expect element to be disabled
1548
+ When I pw expect element to be disabled
1804
1549
  ```
1805
1550
 
1806
1551
  ---
1807
1552
 
1808
- ### **When** I expect element to have text {string}
1809
-
1810
-
1553
+ ### **When** I pw expect element to have text {string}
1811
1554
 
1812
1555
  ```gherkin
1813
- When I expect element to have text {string}
1556
+ When I pw expect element to have text {string}
1814
1557
  ```
1815
1558
 
1816
1559
  ---
1817
1560
 
1818
- ### **When** I expect element to contain text {string}
1819
-
1820
-
1561
+ ### **When** I pw expect element to contain text {string}
1821
1562
 
1822
1563
  ```gherkin
1823
- When I expect element to contain text {string}
1564
+ When I pw expect element to contain text {string}
1824
1565
  ```
1825
1566
 
1826
1567
  ---
1827
1568
 
1828
- ### **When** I expect element to have value {string}
1829
-
1830
-
1569
+ ### **When** I pw expect element to have value {string}
1831
1570
 
1832
1571
  ```gherkin
1833
- When I expect element to have value {string}
1572
+ When I pw expect element to have value {string}
1834
1573
  ```
1835
1574
 
1836
1575
  ---
1837
1576
 
1838
- ### **When** I expect element to have attribute {string}
1839
-
1840
-
1577
+ ### **When** I pw expect element to have attribute {string}
1841
1578
 
1842
1579
  ```gherkin
1843
- When I expect element to have attribute {string}
1580
+ When I pw expect element to have attribute {string}
1844
1581
  ```
1845
1582
 
1846
1583
  ---
1847
1584
 
1848
- ### **When** I expect element to have attribute {string} with value {string}
1849
-
1850
-
1585
+ ### **When** I pw expect element to have attribute {string} with value {string}
1851
1586
 
1852
1587
  ```gherkin
1853
- When I expect element to have attribute {string} with value {string}
1588
+ When I pw expect element to have attribute {string} with value {string}
1854
1589
  ```
1855
1590
 
1856
1591
  ---
1857
1592
 
1858
- ### **When** I expect the page screenshot to match {string}
1859
-
1860
-
1593
+ ### **When** I pw expect the page screenshot to match {string}
1861
1594
 
1862
1595
  ```gherkin
1863
- When I expect the page screenshot to match {string}
1596
+ When I pw expect the page screenshot to match {string}
1864
1597
  ```
1865
1598
 
1866
1599
  ---
1867
1600
 
1868
- ### **When** I expect the element screenshot to match {string}
1869
-
1870
-
1601
+ ### **When** I pw expect the element screenshot to match {string}
1871
1602
 
1872
1603
  ```gherkin
1873
- When I expect the element screenshot to match {string}
1604
+ When I pw expect the element screenshot to match {string}
1874
1605
  ```
1875
1606
 
1876
1607
  ---
1877
1608
 
1878
1609
  ### **When** I save the browser state to {string}
1879
1610
 
1880
-
1881
-
1882
1611
  ```gherkin
1883
- When I save the browser state to {string}
1612
+ When I pw save the browser state to {string}
1884
1613
  ```
1885
1614
 
1886
1615
  ---
1887
1616
 
1888
1617
  ### **When** I load the browser state from {string}
1889
1618
 
1890
-
1891
-
1892
1619
  ```gherkin
1893
- When I load the browser state from {string}
1620
+ When I pw load the browser state from {string}
1894
1621
  ```
1895
1622
 
1896
1623
  ---
1897
1624
 
1898
1625
  ### **When** I run the database query {string}
1899
1626
 
1900
-
1901
-
1902
1627
  ```gherkin
1903
- When I run the database query {string}
1628
+ When I pw run the database query {string}
1904
1629
  ```
1905
1630
 
1906
1631
  ---
1907
1632
 
1908
- ### **When** I expect the database to return {int} record(s)
1909
-
1910
-
1633
+ ### **When** I pw expect the database to return {int} record(s)
1911
1634
 
1912
1635
  ```gherkin
1913
- When I expect the database to return {int} record(s)
1636
+ When I pw expect the database to return {int} record(s)
1914
1637
  ```
1915
1638
 
1916
1639
  ---
1917
1640
 
1918
- ### **When** I expect the database to return no records
1919
-
1920
-
1641
+ ### **When** I pw expect the database to return no records
1921
1642
 
1922
1643
  ```gherkin
1923
- When I expect the database to return no records
1644
+ When I pw expect the database to return no records
1924
1645
  ```
1925
1646
 
1926
1647
  ---
1927
1648
 
1928
- ### **When** I expect the first database record to contain
1929
-
1930
-
1649
+ ### **When** I pw expect the first database record to contain
1931
1650
 
1932
1651
  ```gherkin
1933
- When I expect the first database record to contain
1652
+ When I pw expect the first database record to contain
1934
1653
  ```
1935
1654
 
1936
1655
  ---
1937
1656
 
1938
- ### **When** I expect database row {int} to contain
1939
-
1940
-
1657
+ ### **When** I pw expect database row {int} to contain
1941
1658
 
1942
1659
  ```gherkin
1943
- When I expect database row {int} to contain
1660
+ When I pw expect database row {int} to contain
1944
1661
  ```
1945
1662
 
1946
1663
  ---
1947
1664
 
1948
- ### **When** I expect all database records to contain
1949
-
1950
-
1665
+ ### **When** I pw expect all database records to contain
1951
1666
 
1952
1667
  ```gherkin
1953
- When I expect all database records to contain
1668
+ When I pw expect all database records to contain
1954
1669
  ```
1955
1670
 
1956
1671
  ---
1957
1672
 
1958
- ### **When** I expect database column {string} to exist
1959
-
1960
-
1673
+ ### **When** I pw expect database column {string} to exist
1961
1674
 
1962
1675
  ```gherkin
1963
- When I expect database column {string} to exist
1676
+ When I pw expect database column {string} to exist
1964
1677
  ```
1965
1678
 
1966
1679
  ---
1967
1680
 
1968
- ### **When** I expect database column {string} to contain {string}
1969
-
1970
-
1681
+ ### **When** I pw expect database column {string} to contain {string}
1971
1682
 
1972
1683
  ```gherkin
1973
- When I expect database column {string} to contain {string}
1684
+ When I pw expect database column {string} to contain {string}
1974
1685
  ```
1975
1686
 
1976
1687
  ---
1977
1688
 
1978
- ### **When** I expect database column {string} to be of type {string}
1979
-
1980
-
1689
+ ### **When** I pw expect database column {string} to be of type {string}
1981
1690
 
1982
1691
  ```gherkin
1983
- When I expect database column {string} to be of type {string}
1692
+ When I pw expect database column {string} to be of type {string}
1984
1693
  ```
1985
1694
 
1986
1695
  ---
1987
1696
 
1988
1697
  ### **When** I accept the next dialog
1989
1698
 
1990
-
1991
-
1992
1699
  ```gherkin
1993
- When I accept the next dialog
1700
+ When I pw accept the next dialog
1994
1701
  ```
1995
1702
 
1996
1703
  ---
1997
1704
 
1998
1705
  ### **When** I dismiss the next dialog
1999
1706
 
2000
-
2001
-
2002
1707
  ```gherkin
2003
- When I dismiss the next dialog
1708
+ When I pw dismiss the next dialog
2004
1709
  ```
2005
1710
 
2006
1711
  ---
2007
1712
 
2008
1713
  ### **When** I type {string} into the next prompt and accept
2009
1714
 
2010
-
2011
-
2012
1715
  ```gherkin
2013
- When I type {string} into the next prompt and accept
1716
+ When I pw type {string} into the next prompt and accept
2014
1717
  ```
2015
1718
 
2016
1719
  ---
2017
1720
 
2018
- ### **When** I select option {string} from {string}
2019
-
2020
-
1721
+ ### **When** I pw select option {string} from {string}
2021
1722
 
2022
1723
  ```gherkin
2023
- When I select option {string} from {string}
1724
+ When I pw select option {string} from {string}
2024
1725
  ```
2025
1726
 
2026
1727
  ---
2027
1728
 
2028
1729
  ### **When** I check {string}
2029
1730
 
2030
-
2031
-
2032
1731
  ```gherkin
2033
- When I check {string}
1732
+ When I pw check {string}
2034
1733
  ```
2035
1734
 
2036
1735
  ---
2037
1736
 
2038
1737
  ### **When** I uncheck {string}
2039
1738
 
2040
-
2041
-
2042
1739
  ```gherkin
2043
- When I uncheck {string}
1740
+ When I pw uncheck {string}
2044
1741
  ```
2045
1742
 
2046
1743
  ---
2047
1744
 
2048
1745
  ### **When** I upload file {string} to {string}
2049
1746
 
2050
-
2051
-
2052
1747
  ```gherkin
2053
- When I upload file {string} to {string}
1748
+ When I pw upload file {string} to {string}
2054
1749
  ```
2055
1750
 
2056
1751
  ---
2057
1752
 
2058
- ### **When** I click {string} inside frame {string}
2059
-
2060
-
1753
+ ### **When** I pw click {string} inside frame {string}
2061
1754
 
2062
1755
  ```gherkin
2063
- When I click {string} inside frame {string}
1756
+ When I pw click {string} inside frame {string}
2064
1757
  ```
2065
1758
 
2066
1759
  ---
2067
1760
 
2068
- ### **When** I fill {string} inside frame {string} with {string}
2069
-
2070
-
1761
+ ### **When** I pw fill {string} inside frame {string} with {string}
2071
1762
 
2072
1763
  ```gherkin
2073
- When I fill {string} inside frame {string} with {string}
1764
+ When I pw fill {string} inside frame {string} with {string}
2074
1765
  ```
2075
1766
 
2076
1767
  ---
2077
1768
 
2078
- ### **When** I expect {string} inside frame {string} to have text {string}
2079
-
2080
-
1769
+ ### **When** I pw expect {string} inside frame {string} to have text {string}
2081
1770
 
2082
1771
  ```gherkin
2083
- When I expect {string} inside frame {string} to have text {string}
1772
+ When I pw expect {string} inside frame {string} to have text {string}
2084
1773
  ```
2085
1774
 
2086
1775
  ---
2087
1776
 
2088
-
2089
-
2090
1777
  ## 📄 License
2091
1778
 
2092
1779
  MIT © 2024