1

I am new to protractor with cucumber. I have to automate a flow wherein on entering first name, last name, and postcode, a new user is created. I am trying to add the data to be entered in the feature file in examples in the scenario outline as follows:

Feature: Demo
 Scenario Outline: Create a customer
 Given I open the application and click on create customer button
 When I enter <firstName>, <lastName>, <postCode>
 Then customer should be created
Examples:
 | firstName | lastName | postCode |
 | Saloni | Singhal | 12345 |
 | Harry | Potter | 67890 |

For the when clause, I added the following code in the step def.:

When('I enter {string}, {string}, {int}', async function (string,string,int) {
 browser.sleep(10000);
 await BankManagerButton.click();
 await firstName.sendKeys(string);
 await lastName.sendKeys(string);
 await postCode.sendKeys(int);
 return await addCustButton.click();
 });

But on running this one, it gives me error as undefined, and suggest the following:

Undefined. Implement with the following snippet:

 When('I enter Saloni, Singhal, {int}', function (int) {
 // When('I enter Saloni, Singhal, {float}', function (float) {
 // Write code here that turns the phrase above into concrete actions
 return 'pending';
 });
Prome
1,01511 silver badges25 bronze badges
asked Jun 19, 2020 at 9:41
1
  • when you use float as mentioned , what happens ? . And if it doesn't work, try using string and see whats happening Commented Jun 19, 2020 at 11:21

1 Answer 1

2

You have to wrap string with quotes in your feature file,

Feature File:

Feature: Demo
 Scenario Outline: Create a customer
 Given I open the application and click on create customer button
 When I enter '<firstName>', '<lastName>', <postCode>
 Then customer should be created
Examples:
 | firstName | lastName | postCode |
 | Saloni | Singhal | 12345 |
 | Harry | Potter | 67890 |

Also: you need define parameters and not parameter type:

Step Definition:

When('I enter {string}, {string}, {int}', async function (a,b,c) {
 browser.sleep(10000);
 await BankManagerButton.click();
 await firstName.sendKeys(a);
 await lastName.sendKeys(b);
 await postCode.sendKeys(c);
 return await addCustButton.click();
 });

How will you know what 'string' is passed if you don't give separate name for parameters.

answered Jun 19, 2020 at 11:47
1
  • 1
    Thanks a lot! It worked.. :) Commented Jun 19, 2020 at 12:26

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.