Передача данных из таблицы данных в файле функций в определения моих шагов (js)

Я пытаюсь передать данные из таблицы в файл функций, а затем, наконец, в определения шагов сценария java, показанные ниже.

Scenario: XX | Basket Tests: Cover Type | Building + no bundle + HE 

Given I open the page with the url "http://localhost:3000" and route "/basket"
When I click the button <coverTypeID>
And I click the button <bundleID>
Then I see the result <expectedResult>

| id |             url              | coverTypeID    | bundleID | elementID | expectedResult |
| 1  | http://localhost:3000/basket | coverTypeId101 | NoBundle | null      |                |
| 2  | http://localhost:3000/basket | coverTypeId101 | NoBundle | checkbox1 |                | 
| 3  | http://localhost:3000/basket | coverTypeId101 | NoBundle | checkbox2 |                | 
| 4  | http://localhost:3000/basket | coverTypeId101 | NoBundle | checkbox3 |                | 
| 5  | http://localhost:3000/basket | coverTypeId101 | NoBundle | checkbox4 |                | 

Это мой файл функций, я использовал для передачи данных с помощью строк, но теперь я использую таблицу данных, она не идентифицирует сценарий при запуске тестов.

    When("I click the button <coverTypeID>", (buttonID, next) => {

    driver.findElement(By.id(buttonID)).then(pageElement => {                           /////////////////////////////////////////////
        driver.wait(until.elementIsVisible(pageElement), 10000).then(async () => {      //This is to click a button using elementID//
         await driver.sleep(3000);                                                      /////////////////////////////////////////////
         pageElement.click();
         next();
         })
         .catch(ex => {
            console.info(ex.message, ex.stack)
         });
    }).catch(ex => {console.info(ex.message, ex.stack)});
});

Ошибка, которую я получаю, заключается в том, что тесты не определены, поскольку сценарий не соответствует определению шага должным образом из-за использования заголовков таблиц.

Я рассмотрел использование регулярных выражений, однако я не уверен, какой тип данных передает таблица данных при выполнении, любые рекомендации были бы полезны, я ответил на кучу разных вопросов, и ни один из них, похоже, не ответил на мой.

Любая помощь будет принята с благодарностью, я бы хотел избежать регулярных выражений, если бы мог, потому что цель состоит в том, чтобы сделать код как можно более читабельным.

Заранее спасибо.

Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Если вы являетесь веб-разработчиком или тестировщиком, вы можете быть знакомы с Selenium, популярным инструментом для автоматизации работы...
0
0
547
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

поэтому я нашел решение, вместо того, чтобы ожидать заголовка таблицы данных, на которую я ссылался, используя {string}

When("I click the button {string}", (buttonID, next) => {

Затем в таблице данных я понял, что делал ошибку, просто не добавляя кавычек, чтобы преобразовать данные в строковый формат.

Examples:
| id | coverTypeID      | bundleID       | elementID   | 
| 1  | "coverTypeId101" | "moreDetails1" | "checkbox2" |

Благодаря этому функция теперь успешно извлекает данные из файла функции в файл JS.

Другие вопросы по теме