Как передать данные из файла объекта в файл определения шага с помощью регулярных выражений? - PullRequest
0 голосов
/ 20 сентября 2018

В этом проекте используются NodeJS, Cucumber, Gherkin, Selenium.

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

Пример функции, которую я хотел бы использовать ( - это мое предположение, которое я видел в других примерах, которое, похоже, не работает)

Scenario: 0 | A User Logging In
Given I open the page with the <url> 

А также и мой файл определений шагов

Given("/^I open the page with the url? (.*)$/"), function(next){

    driver.get("http://localhost:3000/login");
    pageElement = driver.findElement(By.id("email"));
    pageElement.sendKeys("example@email.co.uk");
    next(); 
};

Я считаю, что мой файл определений шагов верен, но я не уверен.

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

Заранее благодарен за любую поддержку, Джек

1 Ответ

0 голосов
/ 20 сентября 2018

Я бы попробовал изменить регулярное выражение в вашем 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(); 
});

РЕДАКТИРОВАТЬ: Вы можете найти всю документацию по этому конкретному вопросу здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...