Я пытаюсь передать данные из таблицы в файл функций, а затем, наконец, в определения шагов сценария 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)});
});
Ошибка, которую я получаю, заключается в том, что тесты не определены, поскольку сценарий не соответствует определению шага должным образом из-за использования заголовков таблиц.
Я рассмотрел использование регулярных выражений, однако я не уверен, какой тип данных передает таблица данных при выполнении, любые рекомендации были бы полезны, я ответил на кучу разных вопросов, и ни один из них, похоже, не ответил на мой.
Любая помощь будет принята с благодарностью, я бы хотел избежать регулярных выражений, если бы мог, потому что цель состоит в том, чтобы сделать код как можно более читабельным.
Заранее спасибо.
поэтому я нашел решение, вместо того, чтобы ожидать заголовка таблицы данных, на которую я ссылался, используя {string}
When("I click the button {string}", (buttonID, next) => {
Затем в таблице данных я понял, что делал ошибку, просто не добавляя кавычек, чтобы преобразовать данные в строковый формат.
Examples:
| id | coverTypeID | bundleID | elementID |
| 1 | "coverTypeId101" | "moreDetails1" | "checkbox2" |
Благодаря этому функция теперь успешно извлекает данные из файла функции в файл JS.