Я бы попробовал изменить регулярное выражение в вашем JavaScript на строку, которая ожидает переменные, которые вы передаете в оператор Given
:
Given('I open the page with the url {string}'), function(next) {
//your code
}
Вы можете определить переменные в Gherkin Given
заявления с указанием их, как они будут представлены обычно.Например, если вы хотите передать string
:
Scenario: 0 | A User Logging In
Given I open the page with the url "http://localhost"
Передаст переменную url
в ваш файл JavaScript и будет содержать строку http://localhost
То же самоедля целых чисел:
Scenario: 0 | A User Logging In
Given I open the page with the url "http://localhost" and port 3000
Ваша функция JavaScript теперь получит 2 переменные, url
и port
.Записав их на консоль, вы увидите
http://localhost
3000
Поэтому я бы перестроил ваш код так, чтобы он выглядел следующим образом:
Огурец:
Scenario: 0 | A User Logging In
Given I open the page with the url "http://localhost:3000/login"
JavaScript:
Given('I open the page with the url {string}', (url, next) => {
console.log(url) // log to check the variable is being passed into the function
driver.get(url);
pageElement = driver.findElement(By.id("email"));
pageElement.sendKeys("example@email.co.uk");
next();
});
РЕДАКТИРОВАТЬ: Вы можете найти всю документацию по этому конкретному вопросу здесь .