Jonathan
Jonathan

Reputation: 395

Protractor passing variable between describe functions

I am trying to pass a variable representing an array between describe functions and I am having no luck. I have used protractor before but never passing variables between describes before. any help would be appreciated. I combed through the stack over flow pages and could not find a solution.

I even tried to put each describe into a function but protractor said specs not found.

describe('WFN Admin Login Test', function() {

            var EC = protractor.ExpectedConditions;


        it('Load WFN home page - completed', function() {
              browser.get('https://wfn-iat.adp.com/public/index.htm');
              expect(browser.getCurrentUrl()).toEqual('https://wfn-iat.adp.com/public/index.htm');
        });

         var fs = require("fs");
         var text = fs.readFileSync("/Users/hoflerj/Desktop/Protractor/clients/clientids.txt").toString('utf-8');
         var file = text.split("\n");
         console.log(file);
         var arrayClient = file;

         arrayClient.forEach(function(client){
           //call other describe function to pass client variable below 
         });

});


describe('Get_CycleStatus', function() {
      var EC = protractor.ExpectedConditions;

  it('Enter Client-ID ', function () {
      var search1 = ($$('input[id="toolbarQuickSearch"]').get(0));
      browser.wait(EC.elementToBeClickable(search1),20,000).then(function() {
      search1.clear().sendKeys('midrfrate'); //----client array variable here
      search1.sendKeys(protractor.Key.BACK_SPACE);
      browser.sleep(2000);
      });


      var dropdown = element(by.linkText("midrfrate"));//----client array variable
      dropdown.click();
      browser.sleep(2000);



});

enter image description here I will eventually do a loop so that I can input the next client name any help how to do this with protractor would be most helpful. Also after setting up this global variable how would i use a loop to send this to another describe statement?

Upvotes: 0

Views: 1198

Answers (1)

Eliran Assaraf
Eliran Assaraf

Reputation: 348

In your describe call the desired params with browser.params.paramName (in your case browser.params.arrayClient)

For your loop use an array or an object like so:

params: {
    array:[ {
      glob:'arrauClient',
      glob2:'blabla'
    }]

then call it in your describe with browser.params.glo

Upvotes: 1

Related Questions