Comments 2
Для чего нужен cucumber, если page object передает весь смысл шага и теста: loginPage.click(signInButton) - довольно очевидно, что происходит. Складывается ощущение, что добавление cucumber тут просто оверхэд, который ещё и нужно будет сложнее поддерживать. Может быть тут кейсы не достаточно показательные, но так и не понятно зачем?
Приветствую amarkina17.
На самом деле в ваших словах есть доля правды, cucumber уже давно не является популярным инструментом для тестирования. Но все же попробую донести мысль на следующем примере.
Существует некое веб приложение. Оно имеет множество схожих страниц с различными данными. Существуют таблицы с различными колонками и одинаковыми типом данных Стоит задача покрыть тестами данную часть приложения используя некую методику и использовать множество вариаций тестовых данных.

Достаточно создать основу с 1 тестом для 1 страницы одному опытному QA.
@test1
Scenario: Test 1 - Section 1 Page 1 - Verify table values and manufacturer filter
Given DB service insert data "Section_one_page_one.json"
When PageOne open page
Then PageOne verify table values
| Model | Type | Color |
| Test model 1 | Test type 1 | Test color 1 |
When PageOne select filter "Manufacturer" value
| Test manufacturer 1 |
Then PageOne verify table values
| Model | Type | Color |
| Test model 2 | Test type 2 | Test color 2 | Далее задача покрыть все страницы тестами может быть передана менее опытному тестировщику. Который в последующем к примеру исходя из базы тест кейсов напишет тесты для имеющейся страницы используя определенный набор тестовых данных - просто копируя имеющиеся шаги в файле .feature и изменяя вводные данные
Scenario: Test 2
...
When PageOne select filter "Manufacturer" value
| Test manufacturer 2 |
Then PageOne verify table values
| Model | Type | Color |
| Test model 3 | Test type 3 | Test color 3 |
Scenario: Test 20
...
When PageOne select filter "Date" value
| 09-09-2024 |
Then PageOne verify table values
| Model | Type | Color |
| Test model 50 | Test type 50 | Test color 50 | Для тестирования следующих, практически идентичных по строению страниц, но с немного другими элементами, достаточно создать новые файлы в step_definitions и page_objects которые будут почти идентичны имеющимся созданным для первой страницы
К примеру изменения будут выглядеть:
let PageOne: Page_One -> let PageTwo: Page_Two
await PageOne.openPage(); - > await PageTwo.openPage();
Продолжить писать тесты по аналогии в .feature
Scenario: Test 100
...
When PageTwo select filter "Side" value
| Test side 10 |
Then PageTwo verify table values
| Box | Type | Date |
| Test box 3 | Test type 3 | 01-01-2001 |
Scenario: Test 501
...
When PageSix select filter "Color" value
| Red |
Then PageOne verify table values
| User | Date | Work |
| Test user 5 | 01-01-2001 | Done | Надеюсь в данном примере мысль более детально раскрыта.
Playwright + Cucumber необычная связка. Практические примеры написания авто тестов