How can I use command line arguments in Angularjs Protractor?

angularjs, javascript, protractor, selenium, webdriver

Solution

In the reference config this section can be interesting:

  // The params object will be passed directly to the protractor instance,
  // and can be accessed from your test. It is an arbitrary object and can
  // contain anything you may need in your test.
  // This can be changed via the command line as:
  //   --params.login.user 'Joe'
  params: {
    login: {
      user: 'Jane',
      password: '1234'
    }
  },

And you can access the params object like this in your code: `browser.params.login.user`

So in your case if you call protractor like this:

protractor ... --params.login.user=abc --params.login.password=123

You can access these variables in your code like this:

`browser.params.login.user` and `browser.params.login.password`

Problem

I'm using Protractor to perform some end to end tests, and I'd like to pass in login credentials through the command line instead of storing them in a spec file. I found one post where someone used `process.argv.forEach`, but how can I store those values and use them in another spec file? I have a file called `login-spec.js` where I'd like to use the command-line arguments. Thanks!

Original source

Related problems